Ардуино перестает отправлять данные в serial port и выполнять код
- Войдите на сайт для отправки комментариев
Ср, 14/07/2021 - 17:56
Здравствуйте, возникла проблемма, небольшая програмка на ардуино, в зависимости от значений с датчика температуры включается или выключается реле, все работает нормально, но через какое-то время перестает включатся и выключатся реле, и в serial port перестают отправлятся данные с датчика. В чем может быть проблемма?
Вот код:
#include "DHT.h"
#define DHTPIN 2
#define PIN_RELAY 5
DHT dht(DHTPIN, DHT22);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(PIN_RELAY, OUTPUT);
digitalWrite(PIN_RELAY, LOW);
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Ошибка считывания");
return;
}
Serial.print("Влажность: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Температура: ");
Serial.print(t);
Serial.println(" *C ");
if(t>37.5)
{
digitalWrite(PIN_RELAY, HIGH);
}
else if(t<37.2)
{
digitalWrite(PIN_RELAY, LOW);
}
}
Вот код:
Это не код. Вернее, код, но работать с ним невозможно. Где номера строк? Как его обсуждать?
Вставьте код как положено, тогда поговорим.
Заодно, вставьте Вашу схему! Только именно Вашу схему, а не "картинко из инета".
И приведите характеристик ВСЕХ компонентов: что за ардуина, что за реле, что за блок питания и т.д.
Ардуинка у меня Нано стоит, модуль реле jqc-3ff-s-z, датчик температуры DHT22(На схеме он "голый" у меня он на плате с 3 выходами).
может температура стабильна в диапазоне 37.2 - 37.5 ?
в коде криминала не вижу, кроме строки 23. Вообще использование return в loop() - это глупость
По сути вопроса - проблема банальная, реле при включении дает наводки и ардуина перегружается. Или реле включает что-то мощное и оно просаживает питание. Результат тот же.
Чем у вас реле управляет, кстати?
Лампа накаливания, у меня бывает все работает и лампочка tx моргает, потом перестает и все ардуинка ничего не делает, еще бывает лампочка моргает очень быстро и в мониторе порта одни и те же значения пишет.
Если проблемма в реле, то если отодвинуть ардуинку подальше, проблемма должна уйти?
Она не может быть стабильна, постоянно остывает
бывает лампочка моргает очень быстро и в мониторе порта одни и те же значения пишет.
в этом коде лампочка чаще чем в 2 сек моргать не может. Или у вас в ардуине "не совсем этот код"?
Попробуйте добавить на питание реле диод обратной полярности(если на плате реле нет), а на питание ардуино - конденсатор 100-1000 мкф
бывает лампочка моргает очень быстро и в мониторе порта одни и те же значения пишет.
в этом коде лампочка чаще чем в 2 сек моргать не может. Или у вас в ардуине "не совсем этот код"?
Попробуйте добавить на питание реле диод обратной полярности(если на плате реле нет), а на питание ардуино - конденсатор 100-1000 мкф
Хорошо, попробую, спасибо,
Мой вопрос
Не замечен или проигнорирован?
Мой вопрос
Не замечен или проигнорирован?
Извините, не заметил, блок питания от светодиодной ленты на 12В/3А, через преобразователь напряжения на 5в.
DHT-шке нужен резистор на +
Если на модуле его нет, то чтение будет нестабильно (да и с ним тоже - например плохой контакт), и по условию проверки на nan МК будет выскакивать из лупа, пропуская все остальное.
Извините, не заметил, блок питания от светодиодной ленты на 12В/3А, через преобразователь напряжения на 5в.
Вы опять не поняли. Нужны характеристики. Что за блок питания. что за преобразователь. Есть подозрение, то проблема как раз в них, что там просадка возникает (и Вам про это уже писали), но Вы как партизан - из Вас клещами надо всё тянуть.
Извините, не заметил, блок питания от светодиодной ленты на 12В/3А, через преобразователь напряжения на 5в.
Вы опять не поняли. Нужны характеристики. Что за блок питания. что за преобразователь. Есть подозрение, то проблема как раз в них, что там просадка возникает (и Вам про это уже писали), но Вы как партизан - из Вас клещами надо всё тянуть.
Блок питания Lemanso LM819 36W и понижающий преобразователь XL4015 5A.
#7 пробовали? Что получилось? Конденсатор как можно ближе к ардуине.
Если не поможет, скажите, попробуем совсем отвязать реле от ардуины. Но это уже ultima ratio, по идее и без этого должно заработать.
#7 пробовали? Что получилось? Конденсатор как можно ближе к ардуине.
Если не поможет, скажите, попробуем совсем отвязать реле от ардуины. Но это уже ultima ratio, по идее и без этого должно заработать.
Пробовал, конденсатор поставил как можно ближе, не помогло, взял другую ардуино(уно), попробую может решится проблема.
И еще такой вопрос, с твердотельным реле таких проблем быть не должно?
И еще такой вопрос, с твердотельным реле таких проблем быть не должно?
Пока непонятно, что у Вас за проблемы, ничего сказать нельзя.
Вы не могли бы сфоткать модуль реле как можно крупнее сверху и снизу, чтобы посмотреть что там?
Пробовал, конденсатор поставил как можно ближе, не помогло
характеристики конденсатора?
Пробовал, конденсатор поставил как можно ближе, не помогло
характеристики конденсатора?
10V 470мкф