Официальный сайт компании Arduino по адресу arduino.cc
подсветка дисплея 1602 i2c
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пнд, 15/07/2019 - 14:22
Помогите пожалуйста реализовать подсветку дисплея. Нужно чтобы при бездействии примерно 2 мин подсветка затухала на 50% а при нажатии на любую кнопку подсветка была на 100%.
Заранее всем спосибо.
с дисплеем с модулем i2c так не получится - подсветка или горит или нет.
можно подсветку вывести на отдельный пин - но это уже геморрррр.
Вывести управленик подсветкой можно через транзистор, это не проблема. А вот как быть дальше? Не очень силен в програмировании.
Между выводом "К" экрана (№16) и землей припаяй резистор, лучше переменный, регулировочный - 50К или 20К или 100К... и покрути. У тебя получится, что подсветка не выключается полностью. То еть либо горит, либо "вполнакала". Яркость темной фазы - подбери.
Вот и всё. Ни какого дополнительного кода. lcd.backlight(); lcd.noBacklight().
Спасибо. буду пробовать.
резистор подобрал но как правильно вписать в скеч "lcd.backlight(); lcd.noBacklight()" не понимаю. подскажите пожалуйста.
1. Пока ты не показал попыток решения ты не получишь никаких советов. Решать школьные задачки за тебя никто не станет.
2. Не знаю зачем ты дал некую ссылку на облако, но код размещают тут, и размещают по правилам.
Госпада помогите ни как не могу понять как и куда вставить стороки "lcd.backlight(); lcd.noBacklight()" перепробовал вроде все но никак. Я в програмировании новичек и прошу сильно не пинать.
С одностраничным скечем вроде все получается а тут нет
Похоже это ваша программа это эволюция моего кода. Так что их надо ставить внутрь функции Menu_setup(). Но мне больше нравиться организовывать меню через автомат с лямда функциями - отсюда и далее #55
ПС: Я уже не помню описание задачи что в программе надо получить. Так что Вам придется сначало найти место на форуме, где я этот код писал или же заново описать техническое задание.
ПСС: строка 410 где вкл подсветки есть.
Код для многостраничного меню по мне надо начинать так
Спорить не буду. Код точно не мой. Переделал кое-что под себя. Интересует как можно сделать чтобы при бездействии выключалась подсветка.
через лямду автомат легко. там даже переход на главную страницу есть. А подсветка это подобно оргназовывается.
Спасибо. Буду дальше разбираться.
можно сделать спомощью вот этой библиотеки - https://github.com/enjoyneering/LiquidCrystal_I2C
для этого на i2c шильде надо снять перемычку в пластиковом корусе и подключить верхний или нижний (не помню уже) пин к PWM пину ардуино чеез рзистор в 470 Ом и в скетче вызвать функцию setBrightness(pin, value, polarity); где value - 0..255, polarity = POSITIVE или NEGATIVE
Спасибо. Буду пробовать.
А можно ведь и просто analogWrite() сделать на пин подсветки.
Можно.
А можно ведь и просто analogWrite() сделать на пин подсветки.
так и сделано
Мозг кипит! ничего не выходит.
[qwone]
Чем я больше читаю ваши статьи тем больше ухожу в тупик. Програмирование тяжелая штука.
[qwone]
Чем я больше читаю ваши статьи тем больше ухожу в тупик. Програмирование тяжелая штука.
Пух - знатный аратор.
Ничего сложного там нет. Меню это простейший автомат с состояниями. При переходе на ноаое состояние надо просто вывесть информацию даной страницы меню и поменять обработчики кнопок для даной страницы . Все логично и ничего лишнего.
Для вашей задачи надо выделить еще одно состояние - Выключеный экран. В этом состоянии экран должен быть погашен и обрабочики кнопок должны настроены на переход страницы с вкл экраном.
Вот некая эмуляция решения вашей задачи.
ПС: конечно код сыроват, но банально дает направление для решения задачи
Я вроде это все понимаю но куда и как все это вставить не могу понять. Буду дальше разбираться.
Соберите плату с двумя кнопками и залейте скетч и банально протестируйте добавляя и убавляя свои строчки
Буду пробовать
не могу понять. Куда и как вможно вставить. нНе могу разобраться много страниц в скетче. Сидел до 5 утра а толку 0! Помогите плиз!!!!
Мошт ты начнешь с маленького скетча, пока Пух тебя в дурдом не отправил со своими автоматами и лямбдами? Потестируешь, разберешься как работает, будешь остальную функциональность прикручивать.
да пробовал я на одностроничном скетче. там все работает. а тут уже охото нажраться.
уже охото нажраться.
Just do it.
make sure.
Ну немного не до конца скетч сделан.
Дальная модификация скетча
Окончательный результат . Проверку с насосом и настройку не проводил, так как этой хни у меня нет ;))
Спасибо за труд.
Подскажите пожалуйста. Проблема "не записываются настройки в EEPROM", "при изменение значения макс плохо реагирует на нажтие кнопки нужно нажать много раз чтобы понизить или повысить хотябы на единицу", "как убрать мерцание экрана а то мерцает примерно раз в сек". Заранее спасибо!
Спасибо за труд.
Подскажите пожалуйста. Проблема "не записываются настройки в EEPROM", "при изменение значения макс плохо реагирует на нажтие кнопки нужно нажать много раз чтобы понизить или повысить хотябы на единицу", "как убрать мерцание экрана а то мерцает примерно раз в сек". Заранее спасибо!
С EEPROM разобрался.
С мерцанием экрана тоже разобрался
С мерцанием экрана тоже разобрался
Вот это терпение у ТС )))
библиотеку менять не стал. просто немного изменил скеч. А вот с тормозом по мах не могу пока понять.
основной тормоз это lcd.clear(); Ну аппаратно это вышло. Потом I2C потому что печать отдельных строчек и переход на другую позицию это время. Быстрее завести буфер в ОЗУ и там печатать. А потом когда надо отправить в два пакета для обновление нового экрана. Могранния не будет. Я же не тупому решил подправить эту библиотеку. Тоже моргание задрало.
Это понятно. Поэтому и убрал lcd.clear(); моргание пропало. А вот как решить проблему с тормозом изменения параметра мах не пойму.