Как стать автором
Обновить

Управление 74hc595 с помощью Visual Studio

Привет всем читателям Хабра. Поскольку я новичок, то моя статья может быть не очень правильной, но я считаю, что материал предоставленный мной, может представлять определенный интерес. Тема моей статьи посвящена взаимодействию микроконтроллеров arduino и среды разработки visual studio. В данной статье я приведу пример управления регистром 74hc595 с помощью приложения windows forms создаваемом в visual studio.

В своем примере я использовал светодиодную шкалу, но вместо нее можно использовать и обычные светодиоды.

Ниже приведена схема подключения регистра к шкале и контроллеру. В данном случае использовались резисторы сопротивлением 240 ом.



Я извиняюсь за неточность в изображение и отмечу, что схему подключения регистра сдвига можно найти в интернете. В среде arduino ide нужно создать следующий скетч, с помощью которого будет осуществляться управление регистром сдвига.

int regim[]={//массив для выбора используемых светодиодов
  0b00000000,//0
  0b10000000,//1
  0b11000000,//2
  0b11100000,//3
  0b11110000,//4
  0b11111000,//5
  0b11111100,//6
  0b11111110,//7
  0b11111111,//8
  };
  int chislo;int prow=11;
  #define DATA 13 // контакт SER регистра
  #define LATCH 12 // контакт RCLK регистра
  #define CLOCK 11 // контакт SRCLK регистра
void setup() {
  //Открытие последовательного порта
Serial.begin(9600);
//Установка выходов контроллера в режим выхода 
pinMode(DATA,OUTPUT);
pinMode(LATCH,OUTPUT);
pinMode(CLOCK,OUTPUT);
}

void loop() {
  chislo=Serial.parseInt()-1;// прием данных serial  порта
  if(chislo!=prow){//пролверка на повторение значения
digitalWrite(LATCH,LOW);
shiftOut(DATA,CLOCK,MSBFIRST,regim[chislo]/*установка режима выбранных светодиодов*/);
digitalWrite(LATCH,HIGH);
prow=chislo;
  }
}

После загрузки скетча в контроллер нужно перейти в среду разработки visual studio.

В visual studio необходимо выбрать проект Windows Forms (.net Framework).



В данном проекте необходимо создать форму состоящею из 3 элементов: кнопки, трекбара и прогресбара.



Файл Form1.cs необходимо изменить следующим образом:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp8
{
  public partial class Form1 : Form{
        public Form1()
        {
            InitializeComponent();
            progressBar1.Maximum = 8;progressBar1.Minimum = 0;
            trackBar1.Minimum = 1;trackBar1.Maximum = 9;
            serialPort1.PortName = "COM10";//Номер com порта к которому подключен контроллер
            serialPort1.BaudRate = 9600;//Скорость обмена данными с контроллером
            button1.Text = "Close";//Задание текста отображаемого на кнопке 
            while (serialPort1.IsOpen != true) serialPort1.Open();//открыть serialport если он закрыт
        }
        private void trackBar1_Scroll(object sender, EventArgs e)//действия происходящие при
           // перемещение ползунка trackbar
        {
            progressBar1.Value = trackBar1.Value - 1;//Установить положение индикатора в соответствии с положением ползунка
            serialPort1.WriteLine(trackBar1.Value.ToString());//оправить данные о положение ползунка в Serialport
        }
        private void button1_Click(object sender, EventArgs e)
        {
            serialPort1.Close();//выключить соединение
            this.Close();//выключить приложение 
        }
    }
}


Запустив приложение, вы увидите, что количество включенных светодиодов изменяется при перемещение ползунка трекбара.

Спасибо за внимание.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.