nRF24L01+ tm1637+ds18b20 =?
- Войдите на сайт для отправки комментариев
Втр, 26/01/2016 - 12:10
Есть беспроводной термометр на дуине мини, ds18b20, семисегменте tm1637, передатчик(приемник) nrf24. Все работает, сигнал принимается, корректно отображается. Но как только передатчик перестает передавать сигнал - на приемнике отображается последнее показание температуры и так и висит, покуда не перезагрузишь. Помогите, пожалуйста, с этой проблемкой!
#include <SPI.h> #include <nRF24L01.h> #include <RF24.h> // https://github.com/maniacbug/RF24 #include <Wire.h> #include "TM1637.h" // Подключаем библиотеку #define CLK 15 // К этому пину подключаем CLK #define DIO 14 // К этому пину подключаем DIO TM1637 disp(CLK, DIO); const uint64_t pipe01 = 0xF0F1F2F3F4LL; // идентификатор передачи, "труба" RF24 radio(7, 8); // CE, CSN void setup() { disp.set(7); disp.init(D4056A); Serial.begin(9600); radio.begin(); delay(2); radio.setChannel(9); // канал (0-127) radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_HIGH); radio.openReadingPipe(1, pipe01); // открываем трубу с индитификатором "pipe01" // radio.openReadingPipe(0,pipe01); // или открываем все трубы разом radio.startListening(); // включаем приемник, начинаем слушать трубу } // radio.stopListening(); // останавливает приём (нужно перед началом передачи) void loop() { uint8_t pipeNum = 0; if (radio.available(&pipeNum)) { // проверяем не пришло ли чего в буфер. if (pipeNum == 1) { float temperature = 0; radio.read(&temperature, sizeof(temperature)); int Temp = temperature; Serial.println(Temp); disp.display(Temp); delay(500); } } }
Проблему решил, спасибо)
Но как только передатчик перестает передавать сигнал - на приемнике отображается последнее показание температуры и так и висит, покуда не перезагрузишь. Помогите, пожалуйста, с этой проблемкой!
А что должно быть? Сообщение, что "давно ничего не поступало"? Или что?
Тухнуть должен семисегмент
Ну, как я понял, уже протух, так что все пучком! :)))