Принимаем данные по радиоканалу и отображаем их на LCD дисплее 1602A
[ Скачать с сервера (37.8 Kb) ] | 07.11.2016, 13:33 |
Прием данных из радиоканала и отображение их на LCD дисплееПередатчик передает данные по радиоканалу, а приемник принимает и отображает в 1-ой строке номер принятого сообщения, во 2-ой строке - сообщение. /* Принимаем данные по радиоканалу и отображаем их на LCD дисплее 1602A */ #include <LiquidCrystal.h> // Лобавляем необходимую библиотеку LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) ////////////////////////// #include <VirtualWire.h> //название библиотеки должно быть заключено в угловые скобки <> byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messages byte messageLength = VW_MAX_MESSAGE_LEN; // the size of the message #define RECEIVER_PIN 11 int count; #define BUF_SIZE 16 char buf[BUF_SIZE+1]; void setup() { // put your setup code here, to run once: lcd.begin(16,2); lcd.setCursor(0,0); lcd.print("Hello world!"); lcd.setCursor(0,1); lcd.print("Arduino World!!!"); // delay(1000); //lcd.clear(); // count=0; // // приемник Serial.begin(9600); Serial.println("Device is ready"); // Initialize the IO and ISR vw_set_rx_pin(RECEIVER_PIN); vw_setup(2000); // Bits per sec vw_rx_start(); // Start the receiver } void loop() { int i, l; // put your main code here, to run repeatedly: // в первой строке lcd.setCursor(0,0); itoa(count, buf, 10); lcd.print(buf); // отобразим кол-во принятых сообщений delay(200); // получили сообщение? if (vw_get_message(message, &messageLength)) { count++; // скопируем сообщение в буфер l=messageLength; if(l>BUF_SIZE) l=BUF_SIZE; for (i = 0; i < l; i++) { buf[i]=message[i]; } // дополним буфер пробелами while(i<BUF_SIZE) { buf[i++]=' '; } buf[i]=0; // отобразим буфер Serial.print(count); Serial.print(") Received: "); Serial.println(buf); // во второй строке LCD - принятое сообщение lcd.setCursor(0,1); lcd.print(buf); } }
| |
Категория: Arduino | | |
Просмотров: 481 | Загрузок: 4 |