Скетч передатчика почти в самом начале, там только адрес датчика неправильный мы потом здесь разбирали и я поставил правильный… Выложить еще раз?
01 #include <SPI.h>
02 #include "nRF24L01.h"
03 #include "RF24.h"
04 #include <OneWire.h> //библиотека работы шины для ds18b20
05 #include <DallasTemperature.h> //библиотека для считывания температуры с ds18b20
06
07 const uint64_t pipe = 0xF0F1F2F3F4LL; //идентификатор передачи данных.
08 RF24 radio(9, 10); //указываем пины подключения передатчика.
09 OneWire oneWire(2); //указываем пины для подключения датчика ds18b20.
10 DallasTemperature ds(&oneWire); //активируем библиотеку ds.
11
12 DeviceAddress sensor = {0x28, 0x17, 0x7B, 0x56, 0xB5, 0x01, 0x3C, 0x5C}; //адрес датчика.
13
14
15 void setup(){
16 Serial.begin(9600); //открываем пот обмена данными.
17 ds.begin(); //запускаем функцию считывания температуры ds.
18 radio.begin(); //делаем инициализацию.
19 delay(2); //ждем реакции модуля передачи данных.
20 radio.setChannel(5); // канал для передачи данных (0-127).
21 radio.setDataRate(RF24_1MBPS); //указываем на какой скорости будут общаться модули.
22 radio.setPALevel(RF24_PA_HIGH); //указываем мощность передатчика.
23 radio.openWritingPipe(pipe); // открываем трубу на передачу.
24 }
25
26
27 void loop(){
28 ds.requestTemperatures(); // считываем температуру с датчика
29 float data ; //создаем массив.
30 data = float(ds.getTempC(sensor)); //присваиваем значению массива данные с sensor (за один раз можно отправить до 32 байт).
31
32 radio.write(&data, sizeof(data)); // передаем массив и его размер.
33 Serial.println(data); //выводим данные в сериал порт для проверки.
34
35 Serial.println(); //пробел.
36 delay(500); //ждем пол секунды.
37 }
Добрый день всем! Русификацию пока отложил. Рано сказал, что все нормально. Выявилась проблема. Я проверял, на 5 мин включил и все. Сейчас собрал все в коробок, запустил и появилась проблема в часах. Каждый час как минуты однозначные, т.е. 0,1, …9 сохраняется вторая цифра от 59, то есть вместо 0 показывает 09, вместо 1 - 19, и так до 10 с10 до конца часа показывает правильно. То же самое с часами, только вторая цифра 3, т.е. от 23 часов. Подскажите что не так в скетче.
#include <Wire.h>
#include "RTClib.h"
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup ()
{
Serial.begin(9600);
delay(3000); // ждать открытия консоли
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, lets set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop ()
{
DateTime now = rtc.now();
Serial.println("Current Date & Time: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Можете матерными, но я писал, что в программировании я ноль, и все скетчи составлял на основе примеров из инета, и этот тоже. И одной строкой мне не надо, дата и время и день недели выводятся в разных окошках. Я задал только вопрос как выводить часы и минуты двузначно и все . Остальное меня все устраивает.