Arduino и Serial LCD: перезагрузка раз в 30 секунд.
- Войдите на сайт для отправки комментариев
Чт, 14/01/2016 - 22:52
Доброго!
Подключил к Ардуине ЖК-дисплей, двухстрочный по I2C. Выводит показания датчика температуры DHT11.
Проблема такая: раз в 30 секунд мигает 3-4 раза зелёный светодиод на Arduino, и ЖК-дисплей перезагружается.
Не могу найти причину перезагрузки.
Скетч:
#include <Wire.h> #include <LiquidCrystal_I2C.h> // библиотека ЖК-экрана #include "DHT.h" // Библиотека датчика DHT dht(2, DHT11); // Определяем пин датчика LiquidCrystal_I2C lcd(0x27,20,2); // установки дисплея void setup() { lcd.init(); // инициализация ЖК-экрана lcd.backlight(); } void loop() { int h = dht.readHumidity(); // чтение влажности DTH11 int t = dht.readTemperature(); // чтение температуры DTH11 String StrH = String(h); String Str1 = String("HYDR: " + StrH + "%"); String StrT = String(t); String Str2 = String("TEMP: " + StrT + "*C"); lcd.setCursor(0,0); lcd.print(Str1); delay(1000); lcd.setCursor(0,1); lcd.print(Str2); delay(1000); }
Зачем тебе аж 4 строки и целая куча преобразований?
Объяви одну и используй.
В коде не разбирался, но вполне возможно что просто память кончается.
Упростил код. !9% памяти устройства, 22% динамической памяти.
То же самое: перезагрузка раз в 30 секунд.
Тогда питание смотри.
Питание пока по USB
Пробовал отключать подсветку ЖК - то же самое, перезагрузка раз в 30 сек.
Попробуйте строку 7 как LiquidCrystal_I2C lcd(0x27, 16, 2);
Попробуйте строку 7 как LiquidCrystal_I2C lcd(0x27, 16, 2);
Не помогло.
Проблемму вижу в питании:
1. Поменял провод USB на провод USB с 3-мя RC, проблема перезагрузки осталась.
2. Попробовал запустить от внешнего БП 12В через разъём питания - не стартует.
3. Подал питание +5В по USB-разъёму без подключения к компьютеру - работает, УРА! не перезагружается!
Осталось 2 вопроса:
?1: Почему перезагружается через 30 сек при подключении к компьютеру?
?2: Почему не работает через разъём 12В? Думаю на дохлые конденсаторы, полез искать другую плату Arduino похожей ревизии...
Кто-то дергает DTR у com-порта.
Подключил родную ардуину уно - при подаче питания в 9 вольт всё работает.
Видать, палёный питальник у китайской ардуины :(