Когда приемник включается первым то горит светодиод
- Войдите на сайт для отправки комментариев
Пт, 22/02/2019 - 12:35
Приемник и передатчик на Arduino Nano и NRF24L01. Проблема в следующем, если включить первым приемник то светодиод D2 будет светится пока не включить передатчик. Включаю передатчик светодиод тухнет. Кнопки работают так- 1-я нажал отпустил горит D1, нажал отпустил D1 потух. 2-я нажал D2 горит отпустил D2 потух. Как подправить скетч(и), чтобы независимо что первое включить(приемник или передатчик) светодиод D2 изначально не светился. Помогите лузеру.
#include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #define CE_PIN 9 #define CSN_PIN 10 const uint64_t pipe = 0xE8E8F0F0E1LL; RF24 radio(CE_PIN, CSN_PIN); int datos[2]; void setup(void) { radio.begin(); radio.openWritingPipe( pipe); Serial.begin(9600); pinMode(4, INPUT);//левая кнопка digitalWrite(4, HIGH);//левая кнопка нажал отпустил горит pinMode(3, INPUT);//правая кнопка digitalWrite(3, HIGH); } void loop() { datos[0] = digitalRead(4);//кнопка D4 левая datos[1] = digitalRead(3);//кнопка D3 правая bool ok = radio.write(datos, sizeof(datos)); //Serial.println(datos[0]); }
#include <SPI.h> #include <nRF24L01.h> #include <RF24.h> const uint64_t pipe = 0xE8E8F0F0E1LL; #define CE_PIN 9 #define CSN_PIN 10 RF24 radio(CE_PIN, CSN_PIN); int datos[2]; byte IsConnect; void setup() { pinMode(14, OUTPUT); pinMode(15, OUTPUT); radio.begin(); Serial.begin(9600); radio.openReadingPipe(1, pipe); radio.startListening(); } void loop() { static int8_t buttonState = LOW; uint8_t numero_canal; if ( radio.available()) { radio.read(datos, sizeof(datos)); IsConnect = HIGH; } else{ IsConnect = LOW; } if (buttonState == HIGH && datos[0] == LOW) digitalWrite(14, ! digitalRead(14)); buttonState = datos[0]; digitalWrite(15, !datos[1]); }
Попралюсь в описании проблемы в часности работы кнопок
Кнопки работают так- SV2 нажал отпустил горит D1, нажал отпустил D1 потух. SV1 нажал D2 горит отпустил D2 потух
Как подправить скетч(и), чтобы независимо что первое включить(приемник или передатчик) светодиод D2 изначально не светился.
Никак. По Вашей схеме светодиоды подключены на аналоговые ВХОДЫ и, соответственно, не управляются. Правьте схему и потом спрашивайте.
Спасибо!
Никак. По Вашей схеме светодиоды подключены на аналоговые ВХОДЫ и, соответственно, не управляются. Правьте схему и потом спрашивайте.
Не гони. Пины А0-А5 могут использоваться как обычные цифровые входы/выходы
Не гони. Пины А0-А5 могут использоваться как обычные цифровые входы/выходы
Согласен, ступил. Даташит поверхностно посмотрел.
Госпаде, флуда то скока!!!
2ТС: в приемнике в setup задайте начальное состояние вывола на светик = погасите на старте. 33 строку приемника измените , а то она у Вас только выключает.
и вообще, чему равно datos[1] когда передатчик выключен?
Госпаде, флуда то скока!!!
2ТС: в приемнике в setup задайте начальное состояние вывола на светик = погасите на старте. 33 строку приемника измените , а то она у Вас только выключает.
и вообще, чему равно datos[1] когда передатчик выключен?
33 строка работает она к d2 не относится. А вот дольше я ниче не понял
Да, насчет 33 - был не прав, не вчитался
попробуйте 8 строку приемника написать так : int datos[2] = {0,0};
Да спасибо попробую! Это только часть кода масив больше на 5 элементов. Там идет управление сервоприводом и пропорциональное управление 2-мя двигателями через L298N. А нельзя ли как в 23 строке приемника прописать изначально, что кнопка не нажата? Вот только дальше в коде не пойму как прописать(33 и 34 строки это для первой кнопки ).
Да спасибо попробую! Это только часть кода масив больше на 5 элементов. Там идет управление сервоприводом и пропорциональное управление 2-мя двигателями через L298N. А нельзя ли как в 23 строке приемника прописать изначально, что кнопка не нажата? Вот только дальше в коде не пойму как прописать(33 и 34 строки это для первой кнопки ).
После этого стесняюсь спросить, а Вы под белый дом ничего не подложили с сервоприводами? Настолько секретная программа, что просто - УХ! И на форуме не опубликовать? 007 - а нахрена Вы сюда пришли?
Я сыну игрушку делаю, прошу совета помощи ,а ваши отвыте помогают так что дело "двигается".
Да, насчет 33 - был не прав, не вчитался
попробуйте 8 строку приемника написать так : int datos[2] = {0,0};
Не неработает.
а если int datos[2] = {0,1}; ?
а если int datos[2] = {0,1}; ?
Да все работает коректно. А как Эту запись int datos[2] = {0,1} применить к масиву из 5 элементов
Передатчик
Приемник
А как Эту запись int datos[2] = {0,1} применить к масиву из 5 элементов
Ну наверное так {0,0,0,0,1}. Смотрите чему у вас должен быть равен каждый элемент массива когда от передатчика еще ничего не прилетело.
А как Эту запись int datos[2] = {0,1} применить к масиву из 5 элементов
Ну наверное так {0,0,0,0,1}. Смотрите чему у вас должен быть равен каждый элемент массива когда от передатчика еще ничего не прилетело.
Да спасибо все работает!Затупил скетч в передатчик не перезалил.Спасибо!