как подружить NRF24L01+ и датчик DS18B20
- Войдите на сайт для отправки комментариев
Втр, 19/06/2018 - 10:01
Привет ребята! Помогите пожалуйста с кодом. Собираю беспроводной датчик температуры на ардуино нано. Сделал передачу данных по аналогии с датчиком DHT22 но на принимающей стороне когда вывожу данные пишет просто 75 градусов цельсия.. когда вывожу с передающей ардуинки в ком порт пишет 85 градусов. Но если сделать просто без NRF то все показывает нормально. Вот у меня такой вопрос как сделать так чтобы температуру нормально передвать с датчика этого?
вопрос как сделать так чтобы температуру нормально передвать с датчика этого?
дегенерал, надо просто подключить нормально и правильно написать скетч.
Хрустальный шар сегодня ничего не показывает: ни твоей схемы подключения, ни кода скетчей.
Вот у меня такой ответ: нужно выполнить четыре пункта:
1. сесть за стол;
2. почесать репу;
3. собрать схему;
4. написать код.
Всё, профит!
Большинство задающих такие вопросы, опускают пункт №2, считая его необязательным. Это большая ошибка. Собственно, это главная причина, почему ничего не работает.
Если ты это проделал, но что-то не получилось, схему, код и копипасту отладочной печати в студию.
Если ты хочешь, чтобы за тебя это проделал кто-то другой, добро пожаловать в рыночные отношения.
Эх, жалко Клапа заработал пожизненный эцик с гвоздями, он бы тебе подсказал что да как.
Бро. я нормально подключил...
VCC к 2 цифровому.
DQ к 3 цифровому.
рез 4.7КОМ как положено.
по этому коду все хорошо показывает...
#include <OneWire.h> #include <DallasTemperature.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); #define ONE_WIRE_BUS 3 // Указываем пин подключения data-вывода датчика температуры #define term_power 2 // Указываем пин подключения питания датчика температуры OneWire oneWire(ONE_WIRE_BUS); // Сообщаем библиотеке об устройстве, работающем по протоколу 1-Wire DallasTemperature sensors(&oneWire); // Связываем функции библиотеки DallasTemperature с нашим 1-Wire устройством (DS18B20) void setup(void) { Serial.begin(9600); lcd.init(); // инициализируем дисплей lcd.backlight(); // Включаем подсветку дисплея pinMode(term_power, OUTPUT); // Определяем пин подключения питания датчика температуры } float temperature() { // Измеряем температуру 10 секунд digitalWrite(term_power, HIGH); // Включаем питание датчика температуры delay(100); // Задержка перед первым измерением sensors.requestTemperatures(); // Запрос на измерение температуры (1-й ошибочный) delay(500); // Задержка перед поторным измерением sensors.requestTemperatures(); // Запрос на измерение температуры (повторный) float t = float(sensors.getTempCByIndex(0)); // Получаем значение температуры digitalWrite(term_power, LOW); // Отключаем питание датчика температуры delay(1400); // Задержка, чтобы датчик не нагревался от частых измерений return (t); // Возвращаем значение температуры в место вызова функции } void loop(void) { Serial.println("Temp: " + String(temperature())); tk(); temp(); } void tk() { lcd.setCursor(3, 0); lcd.print ("TERMOKING"); } void temp() { lcd.setCursor(0, 1); lcd.print("Temp: " + String(temperature())); }Вот у меня такой ответ: нужно выполнить четыре пункта:
1. сесть за стол;
2. почесать репу;
3. собрать схему;
4. написать код.
Всё, профит!
Большинство задающих такие вопросы, опускают пункт №2, считая его необязательным. Это большая ошибка. Собственно, это главная причина, почему ничего не работает.
Если ты это проделал, но что-то не получилось, схему, код и копипасту отладочной печати в студию.
Если ты хочешь, чтобы за тебя это проделал кто-то другой, добро пожаловать в рыночные отношения.
подключил я все...
вот по этому коду все ок... но как подключишь NRF то все.. выводит 85
[code] #include <OneWire.h> #include <DallasTemperature.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); #define ONE_WIRE_BUS 3 // Указываем пин подключения data-вывода датчика температуры #define term_power 2 // Указываем пин подключения питания датчика температуры OneWire oneWire(ONE_WIRE_BUS); // Сообщаем библиотеке об устройстве, работающем по протоколу 1-Wire DallasTemperature sensors(&oneWire); // Связываем функции библиотеки DallasTemperature с нашим 1-Wire устройством (DS18B20) void setup(void) { Serial.begin(9600); lcd.init(); // инициализируем дисплей lcd.backlight(); // Включаем подсветку дисплея pinMode(term_power, OUTPUT); // Определяем пин подключения питания датчика температуры } float temperature() { // Измеряем температуру 10 секунд digitalWrite(term_power, HIGH); // Включаем питание датчика температуры delay(100); // Задержка перед первым измерением sensors.requestTemperatures(); // Запрос на измерение температуры (1-й ошибочный) delay(500); // Задержка перед поторным измерением sensors.requestTemperatures(); // Запрос на измерение температуры (повторный) float t = float(sensors.getTempCByIndex(0)); // Получаем значение температуры digitalWrite(term_power, LOW); // Отключаем питание датчика температуры delay(1400); // Задержка, чтобы датчик не нагревался от частых измерений return (t); // Возвращаем значение температуры в место вызова функции } void loop(void) { Serial.println("Temp: " + String(temperature())); tk(); temp(); } void tk() { lcd.setCursor(3, 0); lcd.print ("TERMOKING"); } void temp() { lcd.setCursor(0, 1); lcd.print("Temp: " + String(temperature())); } [/code]Денгенерал, ты читаешь, что тебе пишут? Выкладывай свой код, КОТОРЫЙ НЕ РАБОТАЕТ, а не библиотечные примеры. Нафига они нам?
И укажи полную схему подключения, а не только две ноги датчика.
Без этого разбиратся будешь сам, никто помогать не станет.
Денгенерал, ты читаешь, что тебе пишут? Выкладывай свой код, КОТОРЫЙ НЕ РАБОТАЕТ, а не библиотечные примеры. Нафига они нам?
И укажи полную схему подключения, а не только две ноги датчика.
Без этого разбиратся будешь сам, никто помогать не станет.
Читаю читаю =). Зачем так орать то? ))
В общем вот 2 кода.. передатчик и приемник... Вроде как все заработало.. начал передовать правильную температуру... но только в челых числах. помоги пожялуйста округлить до 10-х. непойму как сделать.. или что то в коде не так... коды нашел на просторах инета... вот сижу туплю над ними )
а потомучто, надо, по-хорошему, не тупить над кодами из интернетов, а думать над своими кодами. Светлодиодиком помигать, релюшечкой пощелкать, для начала. Потом попытаться прочитать и вывести в сериал/экранчик температуру с даччика ds18b20, потом NRF подключить. Так, ступенька за ступенькой, придуть и знания. Только надо многачитать.
а потомучто, надо, по-хорошему, не тупить над кодами из интернетов, а думать над своими кодами. Светлодиодиком помигать, релюшечкой пощелкать, для начала. Потом попытаться прочитать и вывести в сериал/экранчик температуру с даччика ds18b20, потом NRF подключить. Так, ступенька за ступенькой, придуть и знания. Только надо многачитать.
А я думал форумы для того чтобы друг другу помогать... ну ладно че...........
А я думал форумы для того чтобы друг другу помогать... ну ладно че...........
А я думал, что форумы для того, чтобы общаться по интересам... ну ладно че...........
Я так понял тут ловить нечего... Злые все какието.. и дофига умные...
Интеллегенция сплошная, ёпт.
Иди на Амперку, там тебе помогут...
Абидели навичка :(((((((((((
А я думал форумы для того чтобы друг другу помогать...
Штоты-штоты, форумы - они для того, чтоб разъяснять и исправлять всяким разным дегенералам чужой код.