Главная > Arduino > Arduino com-port echo

Arduino com-port echo


30 апреля 2013. Разместил: dimon
Посмотрим как осуществляется передача данных на 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);     // задержка перед повторением 


 }


Arduino com-port echo

Вернуться назад