код из видео
/// пример из видео http://youtu.be/1M04kcHcRlw // #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> // https://github.com/maniacbug/RF24 #include <Wire.h> #include <LiquidCrystal_I2C.h> const uint64_t pipe01 = 0xF0F1F2F3F4LL; volatile boolean flag_tx, flag_fail, flag_rx; int i; //// RF24 radio(9, 10); // CE, CSN LiquidCrystal_I2C lcd(0x27, 16, 2); void setup(){ // настраиваем прерывание на 3 ноге attachInterrupt(1, check_radio, FALLING); Serial.begin(9600); lcd.begin(); lcd.backlight(); radio.begin(); delay(2); radio.setChannel(9); // канал (0-127) radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_HIGH); radio.openReadingPipe(1,pipe01); // открываем трубу с индитификатором "pipe01" radio.startListening(); // включаем приемник, начинаем слушать трубу } // radio.stopListening(); // останавливает приём (нужно перед началом передачи) void check_radio(){ // обработчик прерывания bool tx, fail, rx; radio.whatHappened(tx,fail,rx); // читаем регистр flag_tx = tx; // 1 если успешно отправили данные flag_fail = fail; // 1 если данные не отправленны flag_rx = rx; // 1 если пришли данные для чтения } void loop(){ if (flag_rx){ // если пришли данные для чтения float temperature = 0; // забераем их и выводим на экран radio.read(&temperature, sizeof(temperature)); lcd.setCursor(0, 0); if (temperature > 0) lcd.print("+"); lcd.print(temperature); lcd.print(" "); // Serial.println(temperature); // Serial.println(); flag_rx = 0; } if (flag_fail){ // если данные не отправленны flag_fail = 0; } if (flag_tx){ // если данные отправленны flag_tx = 0; } /////////////////// // можно занятся другими делами. lcd.setCursor(0, 1); i++; lcd.print(i); delay(250); }