MEGA2560 +WH2004D = крокозяблы
- Войдите на сайт для отправки комментариев
Привет всему сообществу.
Помогите советом, плиз.
Делаю контроллер имитации климата в теплице на МЕГЕ2560. По условию проекта на шлейфе длиной 40см подключается индикатор WH2004D-TMI-CTV# с ШИМ управлением контрастностью.
Поставил подтягивающие резисторы 1 кОм по питанию.
Проба подключения осуществлялась на простейшем скетче взятого на форуме:
// Подключаем стандартную библиотеку LiquidCrystal
#include <LiquidCrystal.h>
// Инициализируем объект-экран, передаём использованные
// для подключения контакты на Arduino в порядке:
// RS, E, DB5, DB6, DB7, DB8
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
pinMode(9, OUTPUT); //управление контрастностью дисплея (конт3 LCD)
analogWrite(9, 40); // устанавливаем PWM выход
// устанавливаем размер (количество столбцов и строк) экрана
lcd.begin(20, 4);
lcd.setCursor(0, 0);
// печатаем первую строку
lcd.print("Hello world!");
lcd.setCursor(0, 3);
// печатаем вторую строку
lcd.print("foo bar baz");
}
void loop() {
// устанавливаем курсор в 12-ом столбце, 3 строка (начинается с 0)
lcd.setCursor(12, 3);
lcd.print(millis()/1000); // печать числа секунд после сброса
}
Запускается и работает нормально первые 10 сек, далее появляются крокозяблы в различных частях экрана.
Далее полоски, затем экран очищается.
Всегда это начинается на 11 секунде и далее развивается по одному и тому же сценарию
Пробовал различные версии библиотек LiquidCrystal, скетчей и сред разработки.
Питал и от USB и от 12в 2А. Укорачивал шлейф до 20 см
Результат примерно тот же
Пробовал выводить в другие области экрана (разваливаться начинало на 47 секунде)
Переключение разъемов на Arduino UNO приводит к стабильной работе при любом питании и длине шлейфа (пробовал около 5 часов).
Если в мегу вставить плату LСD Shield 1602 от sheedstudio все отображается корректно. Напрягает то что изображение на экране разваливается всегда в одно и тоже время, хотя до этого циклов прошло много
Пособите советом кто чем может, плиз, в какую сторону копать. У меня больше конструктивных идей нет. (я из начинающих Ардуинщиков, хотя по образованию радиоинженер)
Sorry, конфуз вышел. Проблема решилась тревиально - усилил провода питания от ардуино до дисплея и все нормализовалось. Спасибо всем.