Arduino Nano-комбо NRF2401
Я использую два нано-комбо для автомобиля с радиоуправлением, и когда батарея удаленного излучателя слишком разряжена, если машина работала, а батарея, наконец, разряжена, машина все еще работала... есть ли какой-либо способ с помощью программирования проверить связь между два nanos и решить эту проблему??. Спасибо.
вот код: //Программа-получатель
#include <SPI.h> #include "Mirf.h" #include "nRF24L01.h" #include "MirfHardwareSpiDriver.h" Nrf24l Mirf = Nrf24l(10, 9);
аннулировать установку() { Серийный.начать(9600); Mirf.spi = &MirfHardwareSpi; Мирф.инит(); Mirf.setRADDR((байт *)"FGHIJ"); //Установите свой собственный адрес (адрес получателя) с помощью 5 символов Mirf.payload = размер (данные); Мирф.канал = 90; //Устанавливаем используемый канал Мирф.config(); //Serial.println("Прослушивание..."); //Начать прослушивание полученных данных
void loop()
{
if (Mirf.dataReady()) { //Когда программа получена, полученные данные
выход из последовательного порта
Mirf.getData(данные);
delay(5);
if (datos[7] >= 150) { //двигаться вперед
analogWrite(3,0);
analogWrite(5,255);
if (datos[7] <= 90) { двигатель назад
analogWrite(3,255);
analogWrite(5,0);
if (datos[7] > 90 && datos[7] < 150 или datos[7] == 0) { //двигатель остановлен
analogWrite(5,0);
analogWrite(3,0);
} }
он работает отлично, я могу управлять двигателем постоянного тока без проблем, но если батарея пульта дистанционного управления разряжена или разряжена, тогда нет связи с приемником NANO, и двигатель вращается без остановки.
Я пробую разные вещи в цикле void, например:
если (!Mirf.dataReady()) { аналоговая запись (5,0); аналоговая запись (3,0);
но все та же проблема. Так вот почему в библиотеке Rf должно быть что-то, чтобы проверить, отключена ли связь удаленного управления NANO, я не знаю...
Спасибо
@ANGEL , 👍-1
Обсуждение1 ответ
Вы можете сделать что-то вроде:
while(radio.hasData()){
}
Это работает в библиотеке NRFLite. Я не знаю о других библиотеках, таких как RF24 и т. д.
- Пустое значение не игнорируется, как должно быть.
- Проблема с NRF24L01
- NRF24L01+ (библиотека TMRH20): Получатель получает пустые данные
- Как автоматически сбросить модуль NRF24L01
- nRF24L01 - Измерение расстояния по прошедшему времени
- Проблемы передачи NRF24L01 между Arduino UNO и Arduino Nano
- Проблемы nRF24l01+. Данные принимаются как 0
- Интерфейс Arduino nano ,adxl335 ,nrf24l01
Конечно. Вы можете запрограммировать Arduino на остановку, если данные не были получены в течение определенного периода времени. Хотя мы не можем дать вам больше советов без дополнительной информации от вас. Пожалуйста, включите свой код в вопрос (и правильно отформатируйте его как код). Также, пожалуйста, дайте нам больше информации, как все связано., @chrisl
использовать сигнал сердцебиения, @jsotola