LiquidCrystal
- Войдите на сайт для отправки комментариев
Вс, 24/10/2021 - 21:50
Есть проблема, возможно, кто-то решал.
Имеются платы и экраны. Обычный "blink" OK(связь есть(13 пин)). Подключаю дисплей, связь есть, при инициализации происходит сбой, начинает моргать случайный сегмент дисплея. Ардуинок 3, дисплеев 3. Что было сделано:
1. замена плат местами
2. замена дисплеев
3. физическая смена COM порта и шнура
4. смена тактовых частот в ...\arduino-1.8.10\hardware\arduino\avr\boards.txt на 9600 для плат
Система: Windows 10. Версия 1903. Сборка 18362.295
Arduino: 1.8.10
Среда разработки просто была перенесена.
Код:
#include <LiquidCrystal.h> LiquidCrystal lcd(4,5,6,7,8,9); void setup() { lcd.begin(16, 2); //delay(500); lcd.print("sx123"); } void loop() { lcd.print("sx123"); }
Спасибо.
а если строчку 13 закомментировать?
А если 7 раскомментировать и после 13 продублировать. Можно много интересного увидеть.
Пробовал. На этапе инициализации происходит какая-то ерунда(мое мнение). Каждая заливка одной прошивки(кода) дает разные результаты.
В LiquidCrystal.cpp в методах clear и home увеличьте задержку, хотя бы до 2500.
В LiquidCrystal.cpp в методах clear и home увеличьте задержку, хотя бы до 2500.
Сделал, полная ерунда получилась. До смены параметров работало(криво), после смены перестало работать совсем(ошибка компиляции), вернул на место параметры, опять не работает(ошибка компиляции). Переустановил среду разработки, с новой работает криво.
Вот так сделал:
https://ibb.co/HrpJvd9
Спасибо.
перестало работать совсем(ошибка компиляции), вернул на место параметры, опять не работает(ошибка компиляции)
что за фигню вы пишете, различайте "не работает" и "не компилируется", это совсем разные ошибки.
Когда происходит "ошибка компиляции" - значит вы (лично ВЫ!) что-то налажали в коде
перестало работать совсем(ошибка компиляции), вернул на место параметры, опять не работает(ошибка компиляции)
что за фигню вы пишете, различайте "не работает" и "не компилируется", это совсем разные ошибки.
Когда происходит "ошибка компиляции" - значит вы (лично ВЫ!) что-то налажали в коде
Порядок действий:
1. Подключил
2. Залил прошивку(работает некорректно)
3. По совету из четвертого поста "В LiquidCrystal.cpp в методах clear и home увеличьте задержку, хотя бы до 2500", изменил до 2500-2700(скрин прилагается) с 2000
4. Началась "ошибка компиляции"
5. Вернул обратно
6. Ошибка компиляции
7. Переустановил среду разработки, залил код(ошибок нет, работает некорректно)
Как это описать по-другому?
С уважением.
Видимо что-то ещё изменили, пока меняли время.
А точно контраст тут ни при чем? Фото или видео поведения дисплея можете показать?
Вы бы ещё Windows переустановили.( Ошибку выкладывайте.
Только текстом, а не картинкой.
3. По совету из четвертого поста "В LiquidCrystal.cpp в методах clear и home увеличьте задержку, хотя бы до 2500", изменил до 2500-2700(скрин прилагается) с 2000
4. Началась "ошибка компиляции"
5. Вернул обратно
6. Ошибка компиляции
Чудес не бывает.
Если на п.6 "ошибка компиляции" не исчезла - значит на п.5 "вернули обратно" не полностью.
Переставлять среду было совсем не обязательно, достаточно просто внимательно посмотреть, что вы налажали в коде
Ошибка ушла, было сделано:
1. Переустановил еще раз среду разработки(ушла "ошибка компиляции")
2. В коде изменил
На
Надеюсь, другим поможет
Ошибка компиляции ушла, неисправность самоустранилась.
Переставляя lcd пины можно получить ещё множество работоспособных комбинаций.)
Переставляя lcd пины можно получить ещё множество работоспособных комбинаций.)
Ты хотел сказать НЕРАБОТОСПОСОБНЫХ?
ТС, порядок пинов в скетче должен соответствовать порядку подключения на модуле. Если вы тасуете пины как попало - нечего удивляться, что у вас глючит.
И не стоит думать, что ваши безграмотные примеры кода могут быть кому-то полезны. Чтобы давать другим советы, надо самому разбираться в предмете.
Ошибка компиляции ушла, неисправность самоустранилась.
Переставляя lcd пины можно получить ещё множество работоспособных комбинаций.)
Главное, работает )
осталось выяснить почему не работало
осталось выяснить почему не работало
В 11м посте описал. Нашел в интернете пример, в нем был неправильный порядок аргументов функции LiquidCrystal, поэтому дисплей не инициализировался. Потом на другом компьютере нашел код(с другого проекта), который работал когда-то, поправил, все починилось.
В 11м посте описал. Нашел в интернете пример, в нем был неправильный порядок аргументов функции LiquidCrystal, поэтому дисплей не инициализировался. Потом на другом компьютере нашел код(с другого проекта), который работал когда-то, поправил, все починилось.
я так понимаю, советовать вам самому разобраться, что значит каждая цифра в аргументах - без толку? Будете продолжать "искать примеры", составленные такими же безграмотными балбесами - и пробовать методом тыка, какой подойдет?
ну радуйтесь - вы добавили в свалку интернета еще один бестолковый пример... "может кому пригодится"... ага
осталось выяснить почему не работало
В 11м посте описал. Нашел в интернете пример, в нем был неправильный порядок аргументов функции LiquidCrystal, поэтому дисплей не инициализировался. Потом на другом компьютере нашел код(с другого проекта), который работал когда-то, поправил, все починилось.
нет никакого неправильного порядка
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Номера пинов могут быть иными
Да перестаньте! ТС виднее куда и какие цЫфры пИсать и из каких примероФ. Ещё учить вздумали... )))
Меня ещё фраза:
смутила сильно.
ЗЫ: И никто схему соединения не спросил, прям поверили ТС изначально )))
ЗЫ: И никто схему соединения не спросил, прям поверили ТС изначально )))
Да уж, лопухнулись.( И хоть и учит нас ЕвгенийП всю дорогу, а всё равно на грабли наступаем.
ЗЫ: И никто схему соединения не спросил, прям поверили ТС изначально )))
Да уж, лопухнулись.( И хоть и учит нас ЕвгенийП всю дорогу, а всё равно на грабли наступаем.
Так Петрович законы Мэрфи хорошо знает )))
ЗЫ: И никто схему соединения не спросил, прям поверили ТС изначально )))
У меня с заказчиком был случай. У него новый дисплей не работает с моим скетчем. И так, и эдак, никак он не может сдвинуться с места... Я уже не выдержал, нашел 2004, включаю... Ну у меня то должно работать! Бац, не работает.( Даже штатный hello word не выводит. Ну не могут же одновременно оба дисплея не работать! Начал ковырять инициализацию, методом тыка обнаружил что в clear() когда изменяешь delay на 2500 всё ОК. При том что по ДШ для HD44780 нужно 1530! "Вот и верь после этого людям!" Теперь, при похожих симптомах сразу советую увеличить задержку в clear() и home().)
ЗЫ: И никто схему соединения не спросил, прям поверили ТС изначально )))
У меня с заказчиком был случай. У него новый дисплей не работает с моим скетчем. И так, и эдак, никак он не может сдвинуться с места... Я уже не выдержал, нашел 2004, включаю... Ну у меня то должно работать! Бац, не работает.( Даже штатный hello word не выводит. Ну не могут же одновременно оба дисплея не работать! Начал ковырять инициализацию, методом тыка обнаружил что в clear() когда изменяешь delay на 2500 всё ОК. При том что по ДШ для HD44780 нужно 1530! "Вот и верь после этого людям!" Теперь, при похожих симптомах сразу советую увеличить задержку в clear() и home().)
у меня с дисплеями 0802 проблема была, на некоторых девайсах стартуют нормально, на некоторых надо резет нажать, чтобы стартануло, видимо этот косяк