Посмотрим как осуществляется передача данных на Arduino через com-port. Для этого напишем простенький скетч, который будет принимать строку по com-порту, выводить ее на экранчик 1602 и отправлять обратно через com-порт на компьютер.
/*
Баловство с com-портом
Будем принимать по com-порту строку, выводим ее на экран и эхом в com-порт
дисплей 1602, потенциометр для подсветки дисплея
Подключение дисплея 1602:
Контакт дисплея Контакт Arduino Значение
1 GND Vss
2 5V Vdd
3 GND Vo (контрастность)
4 digital 12 RS
5 digital 11 R/W
6 digital 10 ENABLE
11 digital 5 DB4
12 digital 4 DB5
13 digital 3 DB6
14 digital 2 DB7
15 5V LED+
16 GND LED-
*/
// подключаем библиотеку для работы с LCD
#include <LiquidCrystal.h>
// инициализируем LCD, указывая контакты данных
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
// задаем переменные
boolean receiveFlag = false; // флаг что было что-то принято через com-порт
String myString; // строка
int Count = 0; // счетчик
void setup() {
// красивая "загрузка" программы при старте :)
lcd.begin(16, 2);
lcd.print("Loading");
delay(500); // ждем 0.5 секунды
lcd.print(".");
delay(500); // ждем 0.5 секунды
lcd.print(".");
delay(1000); // ждем 1 секунду
lcd.clear(); //очистка экрана
// инициализируем передачу данных по COM-порту на скорости 9600 бод
Serial.begin(9600);
Serial.println("Start "); //
// Задаем режим работы портов
}
void loop() {
// проверяем буфер com-порта - было ли что-то принято
if (Serial.available() > 0) //если есть доступные данные считываем строку
{
while (Serial.available() > 0)
{
int inChar = Serial.read(); // считываем символ
myString += (char)inChar; // формируем строку
}
// устанавливаем флаг что нужно обработать принятые данные
receiveFlag = true;
// Serial.flush(); // очистим буфер
}
// выводим принятую переменную на экран и в com-порт
if (receiveFlag == true)
{
lcd.clear(); //очистка экрана
lcd.setCursor(13, 0); // устанавливаем курсор в 12-ом столбце, 1 строке
lcd.print(Count); // выводим кол-во итераций
lcd.setCursor(0, 1); // устанавливаем курсор в 0-ом столбце, 2 строке
lcd.print(myString); // выводим myString на экран
Serial.print("String: "); //
Serial.println(myString); // эхо myString в com-порт
receiveFlag = false; // сбрасываем флаг
myString = ""; // очистка строки
Count++; // инкремент счетчика
}
delay(1000); // задержка перед повторением
}
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Чтобы Вам были доступны все функции Вам необходимо либо зарегистрироваться, либо зайти на сайт под своим именем.