УПРАВЛЕНИЕ СВЕТОДИОДАМИ ПРИ ПОМОЩИ ПРОГРАММЫ НА C# И ARDUINO

Вам никогда не хотелось управлять СИД, подключенными к Arduino, с помощью программы, которую вы же и написали? Так вот, я здесь, чтобы помочь вам с этим. Это моя первая статья, так что, прошу подсказать, если я что-то напутал. Ну и можете спокойно изменять мой код под свои нужды.

Нам потребуется:

  1. Плата Arduino
  2. Макетная плата
  3. Провода папа-папа

ШАГ 1.

Откройте Microsoft Visual Studio 2010 или Microsoft Visual Studio С# 2010 и создайте новый C# проект. Назовите его произвольным именем/названием. После этого нажмите ОК

ШАГ 2.

Для этого примера я сделаю две простеньких кнопки, чтобы управлять включением и выключением СИД, подключенного на 13 пин. Для начала откройте «Панель элементов» и перетащите элемент «кнопка» на рабочую область. Повторите. Добавьте две панели и измените их размеры, должно получиться приблизительно как на рисунке.

Так же добавьте последовательный порт из той же «Панели элементов»

ШАГ 3. ПЕРЕИМЕНУЕМ КНОПКИ

Вы можете переименовать свои кнопки или оставить как есть. Я оставил как есть, но изменил текст на них. Чтобы сделать это, нажимаете на кнопку, затем в правой части окна, в окне «Свойства», в строке «Текст» изменяете текст. На скриншоте можно увидеть это поле. В локализованных версиях название может отличаться.  Убедитесь, что изменяете именно ту кнопку.

ШАГ 4. ДОБАВЛЯЕМ КОД

Дважды нажмите на кнопку «On». У вас должно будет появиться окно похожее на то, что на скриншоте. Теперь, в блоке для кода вставьте следующее:

 

serialPort1.Open();

if (serialPort1.IsOpen)

{

serialPort1.WriteLine("A");

}

serialPort1.Close();

panel1.BackColor = Color.Lime;

panel2.BackColor = Color.Transparent;

 

Поднимитесь выше по коду до:

public Form1()

{

 

}

 

Ивставьтеследующее

InitializeComponent();

serialPort1.PortName = "    ";

serialPort1.BaudRate = 9600;

междускобками.

Параметры для PortName мы добавим позже.

 

Теперь вернемся в «Конструктор», выделим кнопку «Off» и добавим следующий код:

 

serialPort1.Open();

if (serialPort1.IsOpen)

{

serialPort1.WriteLine("a");

}

serialPort1.Close();

panel2.BackColor = Color.Red;

panel1.BackColor = Color.Transparent;

ШАГ 5. КОД ДЛЯ ARDUINO

Так, хорошо, для того, чтобы написать код под Arduino, нам необходимо получать сообщения через последовательный порт. И есть только один путь осуществления этого, который я знаю. Извините, если есть и другие варианты – я только начинаю работать с Arduino.

 

int message = 0;    // Резерв одного байта для сообщений через последовательный порт

int LEDPin = 13;    // Пин, к которому подключен СИД

int LED = 0;        // Параметр значения яркости СИД, может принимать значения 0-255

 

 

void setup() { 

  Serial.begin(9600);  //открытие последовательного порта со скоростью передачи данных 9600 бит/с

}

 

void loop(){

    if (Serial.available() > 0) { //  Проверка, нет ли новых сообщений

      message = Serial.read();    //  Послатьсообщениенапоследовательныйпорт Put the serial input into the message

 

   if (message == 'A'){  //  Если буква «А» получена в верхнем регистре

     LED = 255;       //  Установить яркость СИД 255 (включить его)

     Serial.println("LED on");  // Отправить «LED on»

   }

   if (message == 'a'){  //  Если буква «А» получена в нижнем регистре

     LED = 0;         //  Установить яркость СИД 0 (выключить его)

     Serial.println("LED off");  // Отправить «LED off»

   }

    }

}

 

ШАГ 6. УСТАНОВКА

Для начала вам нужно взять СИД и подключить его к Arduino, как показано на фото. Убедитесь, что анод (+) подключен к 13 пину, а катод (-) к земле.

Затем откройте Arduino IDE и вставьте код из вложения ниже. Затем в меню выберите «Инструменты». В разделе «Плата» убедитесь, что выбрана та, которую вы используете. У меня это – Dueminelove. В разделе «Порт» убедитесь, что выбран верный порт. У меня это - COM4.

Простите, за плохое качество фотографий, но делал я их на телефон. Фотоаппарат сломался этим утром.

ШАГ 7. ДОБАВЛЯЕМ ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ В ПРОГРАММУ C#

Вернитесь к C# проекту и найдите там строку

serialPort1.PortName = "   ";

и в пустое место между кавычками вставьте номер последовательного порта.

Затем вам нужно вернуться в конструктор и нажать на изображение последовательного порта в левом нижнем углу. В окне свойств измените PortName на то, что вы вписали в код. В моем случае это – СОМ4.

ШАГ 8. ТЕСТИРОВАНИЕ.

Загрузите скетч на плату Arduino и проверьте его с помощью монитора последовательного порта. Напечатайте букву «А» в верхнем регистре, чтобы включить СИД, и в нижнем, чтобы выключить. Вернитесь в C# программу и запустите отладку. Это можно сделать, нажав значок проигрывания на панели меню, или нажав F5. Затем нажмите на кнопку «On». Должен загореться СИД. Нажмите на «Off» – и он потухнет. Вуаля! Вы создали программу, которая может общаться с Arduino!

Можете добавить еще несколько СИД и даже функционала! Развлекайтесь!

Ниже я прикрепил фото моего контроллера. Было весело!

Я прикрепил код и то, что не было освещено в статье.

Материалы для данной статьи и скриншоты в высоком качестве можно найти тут: https://yadi.sk/d/6LxChdD1kvjpK

Перевод статьи: http://www.instructables.com/id/Controll-Leds-With-an-Arduino-From-a-C-Program/?ALLSTEPS

Лицензия: CC BY-SA-2.5