Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Проблемы с подключением LCD1602

Пн авг 19, 2019 10:53:22

Странные проблемы с подключением LCD1602 конкретно у меня WH1602D-YGH-CT(K)
Собирая схему управления ванной для травления плат: управление подогревом, подачей воздуха и вывод инфы о режиме работы на этот самый экран.
Схема вот такая.

Изображение

В целом плата работоспособна, в контроллер я могу залить софт, экодер управление нагревом и компрессором работают. В последовательный порт все выводиться правильно (для отладки). Но вот на экран лезит всякая фигня.
Вот при таком скетче:
Код:
#include <Arduino.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // (RS, E, DB4, DB5, DB6, DB7)

void setup() {
    Serial.begin(115200);
    while(! Serial) {
        delay(20);
    }

    Serial.println("Start MCU ");

    lcd.begin(16, 2);
    lcd.clear();
}

void loop() {
    unsigned long a = millis()/1000;

    Serial.print("Uptime :");
    Serial.println(a);

    lcd.clear();
    lcd.print("Uptime : ");   
    lcd.print(a);         

    delay(1000);
}


На экране имеем вот это. Повторюсь, что в последовательный порт все выводиться правильно.
Изображение

Если я заливаю этот же скетч в Arduino uno и подключаю дисплей к тем же пинам, то все работает замечательно!
Изображение

Вот собственно и прибываю в полном недоумение что не так....
Дисплей подключен проводами которые припаяны к дисплею, с другой стороны собрана колодка вот так
Изображение

Цепи подключения дисплея проверил от контакта на экране до ножки контроллера. Все хорошо.

Вот собственно и вопрос что не так в моей плате, что с ней не работает? Куда копать дальше?

Ну и вот так выглядит плата....
Изображение Изображение

Re: Проблемы с подключением LCD1602

Пн авг 19, 2019 19:43:24

Первое что бросилось в глаза, это неправильное подключение вывода 3 (управление контрастностью). Он подключается таким вот образом:
1.png
(46.28 KiB) Скачиваний: 182

Всё остальное смотрите в алгоритме…

Re: Проблемы с подключением LCD1602

Вт авг 20, 2019 11:45:57

Если от адуриньи работает, а от самопального устройства не хочет - смотрим схему (при абсолютной аналогии тест программы).
8)
Зачем было такой вариант собирать?
Можно ведь про-мини в качестве DIP микросборки поставить.
А уже остальное - делаем как собственную плату.
Тогда и проверка проще выполняться будет.
Обычные ошибки при попытках самостоятельного проектирования при базировании
на ардуино-IDE.
:sleep:

Ну и с какого бодуна у кварцевого резонатора кондейки 0,1uF!
:shock:
Да и сам кварц надоть под "стандарт" подгонять - 16МГц.
:wink:

Re: Проблемы с подключением LCD1602

Вт авг 20, 2019 13:17:07

Первое что бросилось в глаза, это неправильное подключение вывода 3 (управление контрастностью). Он подключается таким вот образом:
1.png


Да, эта проблема была осознана уже после изготовления платы. И решена вот таким образом.
Изображение

Сейчас дело похоже в чем то другом.

Всё остальное смотрите в алгоритме…

А что с ним не так?
У меня была мысль, что контроллер не инициализируется правильно. На фотках видно, что в случае подключения к ардуино на экране светятся две строки, а с моей платой только одна...
Изображение Изображение

Думал, что может задержек при инициализации не хватает. Поменял код вот так, но это ничего не дает.

Код:
#include <Arduino.h>
#include <LiquidCrystal.h>

LiquidCrystal* lcd;

void setup() {
    Serial.begin(115200);
    while(! Serial) {
        delay(20);
    }
    Serial.println("Start MCU ");

    delay(1000);
    lcd = new LiquidCrystal(2, 3, 4, 5, 6, 7); // (RS, E, DB4, DB5, DB6, DB7)
    delay(1000);
    lcd->begin(16, 2); // Инициализируем LCD 1602
    delay(1000);
    lcd->clear();

}

void loop() {
    unsigned long a = millis()/1000;

    Serial.print("Uptime :");
    Serial.println(a);

    lcd->clear();
    delay(500);
    lcd->print("Uptime : ");       // Выводим текст
    delay(500);
    lcd->print(a);         // Выводим текст
    delay(1000);
}


Добавлено after 6 minutes 7 seconds:
Если от адуриньи работает, а от самопального устройства не хочет - смотрим схему (при абсолютной аналогии тест программы).
8)
Зачем было такой вариант собирать?
Можно ведь про-мини в качестве DIP микросборки поставить.

Хотелось в устройстве одну управляющую плату иметь, да и место меньше занимает, да и кучу проводов не надо тянуть, что тоже качество результата ухудшает...

Обычные ошибки при попытках самостоятельного проектирования при базировании
на ардуино-IDE.
:sleep:


Вы имеете в виду при использование библиотек от Arduino?

Ну и с какого бодуна у кварцевого резонатора кондейки 0,1uF!
:shock:
Да и сам кварц надоть под "стандарт" подгонять - 16МГц.
:wink:

Да, на схеме ошибка. Реально там конденсаторы на 32pF. На схеме поправил. И кварц на 16MHz как у ардуины.
Изображение

Re: Проблемы с подключением LCD1602

Вт авг 20, 2019 14:19:52

Там не 32пика, а 22-27 обычно ставится.
В случае теста на "чистокровной адуринье" остальная часть программы как я понимаю НЕ ЗАДЕЙСТВОВАНА?
Следовательно ошибка во взаимодействии различных фрагментов программы.
Если тестовый фрагмент одинаков (без излишних частей) то тогда явный намек на ошибку разводки самоделки.
Возможны и ошибки монтажа на самодельной плате.
Чудес не бывает.
8)
Кстати... Схемотехника сброса платки НЕВЕРНА.
Конденсатор С9 стоит не на том конце резистора R6 - должно быть от вывода reset на GND, а не дополнением к фильтру пульсаций/помехогашения.
:wink:

Re: Проблемы с подключением LCD1602

Вт авг 20, 2019 14:32:06

Там не 32пика, а 22-27 обычно ставится.
В случае теста на "чистокровной адуринье" остальная часть программы как я понимаю НЕ ЗАДЕЙСТВОВАНА?


Ну как не задействована. Она в последовательный порт тот же "Uptime" пишет. Причем эта часть работает хорошо...

Следовательно ошибка во взаимодействии различных фрагментов программы.
Если тестовый фрагмент одинаков (без излишних частей) то тогда явный намек на ошибку разводки самоделки.
Возможны и ошибки монтажа на самодельной плате.
Чудес не бывает.
8)


Есть одна версия.... сегодня уже коллеги после рассмотрения фоток обратили внимание.
Изображение
Это D7 экрана который возможно закорочен на землю.... Вечером проверю.

Re: Проблемы с подключением LCD1602

Вт авг 20, 2019 14:39:33

Ну и кондей сброса переставить не помешает.
Да повнимательнее самому и качество сборки и правильность разводки дорожек проверить.
При "вечно нулевом" бите (а при тетрадном обмене это два нулевых на байт данных)
вряд-ли вообще работа с дисплеем возможна, а в Вашем случае некорректность не столь уж высока - где-то еще ошибки имеются.
8)

Re: Проблемы с подключением LCD1602

Вт авг 20, 2019 16:09:45

Ну и кондей сброса переставить не помешает.


Ну кажется логичным, посмотрел откуда этот кондей появился, а вот отсюда
Изображение
т.е. это как бы не совсем кондей сброса :) Хотя по схеме все очень на это похоже...
Собственно сама статья http://easyelectronics.ru/podklyuchenie ... ikbez.html

Да повнимательнее самому и качество сборки и правильность разводки дорожек проверить.
При "вечно нулевом" бите (а при тетрадном обмене это два нулевых на байт данных)
вряд-ли вообще работа с дисплеем возможна, а в Вашем случае некорректность не столь уж высока - где-то еще ошибки имеются.
8)


Вот под правильностью разводки вы что подразумеваете? Соответствие логической схеме? Или реальное размещение дорожек и возникновение в следствии этого всяких помех?

Re: Проблемы с подключением LCD1602

Вт авг 20, 2019 17:50:09

Вообще-то в стандартной адуринке вида про-мини (ободранный до минимума UNO) конденсатор в цепи сброса нету (а следовательно под такую конфигурацию и фузы выставлены)...
Arduino-Pro-Mini-schematic.pdf
(59.12 KiB) Скачиваний: 66

Кондей там только для работы бутлоадера (вывод DTR СОМ порта ПК).
А вот касательно монтажа самодельной печатки... да еще в двустороннем варианте...
Размещение полевика "под брюхом" у МК... как-то .... МНДЯ....
:roll:
Ну и AVCC соединять через дроссель, ежли не требуется особой предвзятости к работе АЦП явно излишнее...
:roll:

Re: Проблемы с подключением LCD1602

Вт авг 20, 2019 18:47:06

Ну в общем проблема решилась.....
Опять же проблема была в качестве монтажа, если конкретнее то контакт D7 бы о закорочен на землю каплей припоя.... ((

Изображение

Добавлено after 4 minutes 23 seconds:
Вообще-то в стандартной адуринке вида про-мини (ободранный до минимума UNO) конденсатор в цепи сброса нету (а следовательно под такую А вот касательно монтажа самодельной печатки... да еще в двустороннем варианте...
Размещение полевика "под брюхом" у МК... как-то .... МНДЯ....
:roll:


Да, про это не подумал....
Надо вообще уже общими усилиями свод полезных советом ну или методику какую то формировать....
Конкретно моя проблема с некачественным монтажом и не очевидным поиском что не так....

Я же контакты проверил от контактов дисплея до ножек контроллера.... Все было ОК. Проверял прозвонкой.
И то что соседние контакты (на контроллере и на дисплее) не закорочены тоже проверил. Проверял тоже прозвонкой.
А вот то что какой то контакт на землю закорочен, естественно не проверял....
:(

Re: Проблемы с подключением LCD1602

Ср авг 21, 2019 08:47:30

Ну этакая проблема не столь и страшная -
хуже ежли питание наоборот тыкнуть и пару минут разбираться
"чего это моя самоделка вместо работы вдруг попахивает"??
"Вроде все правильно собрано...?"
:shock:
:beer:
Ответить