Включение и выключение одного светодиода разным числом в пакете данных nrf24+ Ардуино
- Войдите на сайт для отправки комментариев
Вопрос в чём есть ардуино мега с nrf24, и есть ардуино про мини тоже с nrf24. Мне нужно что бы когда пришёл пакет данных допустим с числом 111, что бы включить светодиод по 2пину ардуины, а если пришёл пакет допустим с числом 112 то светодиод потух.
Пока делаю так но светодиод мигает и тухнет при приёме данных, то есть мне нужно запомнить состояние светодиода при приёмё разного числа в пакете
#include <SPI.h> #include "RF24.h" int msg[1]; // Set up nRF24L01 radio on SPI bus plus pins 9 & 10 //Контакты от радиомодуля NRF24L01 подключаем к пинамнам -> Arduino //SCK -> 13 //MISO -> 12 //MOSI -> 11 //CSN -> 10 //CE -> 9 RF24 radio(9,10); //светодиоды подключены к этим пинам int LEDpin1 = 2; // адреса каналов приема и передачи const uint64_t pipes[2] = { 0xF0F0F0F000LL, 0xF0F0F0F0FFLL}; void setup(void){ radio.begin(); radio.setDataRate(RF24_250KBPS); // Скорость передачи radio.setChannel(100); // Номер канала от 0 до 127 radio.setRetries(15,15); // Кол-во попыток и время между попытками radio.openWritingPipe(pipes[0]); // Открываем канал передачи radio.openReadingPipe(1, pipes[1]); // Открываем один из 6-ти каналов приема radio.startListening(); // Начинаем слушать эфир pinMode(LEDpin1, OUTPUT); digitalWrite(LEDpin1, 0);
} void loop(void){ if (radio.available()){ bool done = false; while (!done){ done = radio.read(msg, 1); //если пришел пакет от Arduino №1 (111) вКлючается светодиод (горит)LEDpin1, HIGH if (msg[0] == 111){ delay(10); digitalWrite(LEDpin1, 1); } else if(msg[0] == 112){ delay(10); digitalWrite(LEDpin1, 0); } } } }
Вопрос в чём есть ардуино мега с nrf24, и есть ардуино про мини тоже с nrf24. Мне нужно что бы когда пришёл пакет данных допустим с числом 111, что бы включить светодиод по 2пину ардуины, а если пришёл пакет допустим с числом 112 то светодиод потух.
Вообщем набросал две проги с сохранением в EEPROM, а светодиод начинает мигать при приходе числа 111, и всё
Вот только как сделать что бы нормально работало?
Набросал код с while, но не работает
Ра
void
loop
(
void
)
42
{
if
(radio.available())
43
{
radio.read(msg, 1);
6
70
}
if
(msg[0] == 111)
digitalWrite(LEDpin1, 1);
48
if
(msg[0] == 113)
digitalWrite(LEDpin1, 0);
51
71
}