Есть ли возможность менять яркость LCD1602 через модуль i2c?

Sakolua
Offline
Зарегистрирован: 13.08.2019

В стандартной LiquidCrystal_I2C функция setBacklight работает только на вкл/выкл и не передает ШИМ. Значит не может?
На i2c модуле с краю есть перемычка LED, можно на нее ШИМ с дополнительного пина подавать?

nik182
Offline
Зарегистрирован: 04.05.2015

Есть несколько схем i2c-LCD модуля. Которые получал я с али собраны по схеме как здесь http://robotchip.ru/obzor-interfeysnogo-modulya-i2c/ .По ней видно, что прямо с пина подать нельзя. Дисплей кушает 80мА. Нога столько не выдаст. Надо городить транзистор. 

Sakolua
Offline
Зарегистрирован: 13.08.2019

Почему 80? Разве диод (тот что на схеме внизу, это же он?) подклчюеный через 1кОм не будет потребялть меньше ток чем обычный диод через 220 Ом?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Sakolua пишет:

Почему 80? Разве диод (тот что на схеме внизу, это же он?) подклчюеный через 1кОм не будет потребялть меньше ток чем обычный диод через 220 Ом?

 

Это тот диод что на плате контроллера установлен. Подсветка 1602 не имеет токоограничивающего резистора. Можно подать ШИМ с пина Ардуины через резистор в 220 Ом на пин 1 перемычки LED, но тогда не получится добиться максиммальной яркости. 

Sakolua
Offline
Зарегистрирован: 13.08.2019

"не имеет токоограничивающего резистора"
это получается другйо тип диода? более мощный?

 

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Стандарта на мощность подсветки в 1602 нет. Каждый ставит во что горазд. Вот для этого, например, - https://www.mouser.com/datasheet/2/244/LCM-S01602DSF_D-Y-1176264.pdf

Рабочий ток подсветки 220мА. Напрямую от ардуины засветить (через резистор) можно, но яркость будет далека от максимальной.

nik182
Offline
Зарегистрирован: 04.05.2015

Там не один диод. Это рисуют один. А на самом деле несколько. И резистор стоит, но 50 Ом. Этого слишком мало для ноги. Было дело, менял его на 220 Ом, но яркость становилась совсем никакой.   

Pyotr
Offline
Зарегистрирован: 12.03.2014

Не сильно понял в чем сложность вопроса. 
Транзистор уже стоит на плате. Токоограничительный резистор к базе подключен. Отрезаем резистор от питания и подаем через него  ШИМ.

Можно базу отрезать от PCF, а можно просто  включить подсветку по I2C. Но тут надо на схему смотреть.

Sakolua
Offline
Зарегистрирован: 13.08.2019

На плате чего?

b707
Offline
Зарегистрирован: 26.05.2017

Sakolua пишет:
На плате чего?

экрана

Sakolua
Offline
Зарегистрирован: 13.08.2019

на плате экрана не вижу транзисторов
наверное все под крышками

Pyotr
Offline
Зарегистрирован: 12.03.2014

Sakolua пишет:
На плате чего?

модуля I2C. Какой он? Его схема?

Sakolua
Offline
Зарегистрирован: 13.08.2019

У меня нет никакой о нем информации, он был на экране, экран шел в комплекте. Похож на тот, что по ссылке. С "К" идет на транзистор j3y одинокую ногу, рядом 4.7 ком с 1-ой ноги, а потом не понятно как вся связано, черное же

Pyotr
Offline
Зарегистрирован: 12.03.2014

Sakolua пишет:
У меня нет никакой о нем информации, он был на экране, экран шел в комплекте. Похож на тот, что по ссылке. С "К" идет на транзистор j3y одинокую ногу, рядом 4.7 ком с 1-ой ноги, а потом не понятно как вся связано, черное же

Ну если похож,  то варианты

1) пин ардуино подключить через диод шоттки на базу транзистора (катод на пин ардуино, анод на базу).
В сетап() включить подсветку по I2C, а дальше рулить ШИМ.

2) R7 отпаять и подключить пин ардуино через резистор 1-2 кОм на  базу транзистора.
 В сетап() включить подсветку по I2C, а дальше рулить ШИМ.

3)  R7 отпаять, отрезать базу от ноги 7 PCF8574 и подключить пин ардуино через резистор 1-10 кОм на  базу транзистора.

Maka
Offline
Зарегистрирован: 24.10.2015

Я вот такой вариант нашел - http://zelectro.cc/Z-LCD_I2C_module по моему логично.

Sakolua
Offline
Зарегистрирован: 13.08.2019

а как же "Рабочий ток подсветки 220мА"?

Maka
Offline
Зарегистрирован: 24.10.2015

Я понимаю так - мы ШИМом с ноги контроллера управляем тем самым транзистором, о котором тут писали. Чтобы открыть транзистор больших токов не нужно. Правда я так не делал, просто не думал что так можно.