Lcd1602 iic i2c регулировка яркости

Arduino.ru

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Arduino.ru

Управление подсветкой дисплея 1602 I2C

Добрый день. Прошу помощи, пнуть в нужном направлении. Есть связка ардуино нано, LCD 1602 на шине I2C, DHT22, часы реального времени на базе DS3231 (тоже I2C). Подсветка включается посредством команды lcd.backlight(); Отключить ее можно командой lcd.noBacklight(); Основную задумку по коду почти реализовал кроме листинга выводимой на дисплей информации (код прилагаю), основная проблема с реализацией задумки вкл. и выкл. подсветки кнопкой. Идея такая, есть кнопка подключенная к пину D2 при ее нажатии подсветка должна отключится и при повторном нажатии снова включится. Планировалась реализация без коственно програмно без использования транзистора. Я перечитал много тем, примеров, но так и не нашел как реализовать это. Если не сложно подскажите пожалуйста. Буду очень благодарен.

Читайте также:  Регулировка фазы на моноблоке

А в чем проблема? Команды lcd.noBacklight(); / lcd.backlight(); работают?

Естественно работают. Я писал выше что не нашел информации как реализовать включение и выключение подсветки кнопкой не прибегая к отрезанию подсветки и управлению ею через транзистор.

» Идея такая, есть кнопка подключенная к пину D2 при ее нажатии подсветка должна отключится и при повторном нажатии снова включится. «

Причем здесь транзистор?

Я пробовал, но видать где то я туплю. Не до конца понимаю как подставить эту команду. За основу взял этот кусок кода. Но не могу понять как правильно подсунуть команду, отладчик все время ругается на приставку lcd.

Я писал его для отработки флагов на кнопке, но как всунуть ему команду не могу понять((

ПС. Если вдруг что я не студент и курсак не пишу, я еще в 2015 закончил институт)) Я просто изучаю ардуинки.

Ну в коде от сообщения №1 на lcd же не ругается. Посмотрите там на строку 8 и помедетируйте.

Ну да, а еще на 2 и 13.

Попробую впарить ТСу свою кнопку)) Пусть разбирается.

Я писал выше что не нашел информации как реализовать включение и выключение подсветки кнопкой не прибегая к отрезанию подсветки и управлению ею через транзистор.

без транзистора и даже без МК

В перерывах от выходных забот немного занимался этой задачей в итоге основной код приобрел такой вид. Теперь подсветка включается и выключается тактовой кнопкой.

Единственный момент. Т.к. задействовал прерывание attachInterrupt(); вылез жесткий дребезг контактов кнопки, пытался избавится путем задержки но что то не выходит. Возможно где то не так делаю. Посмотрите, будьте любезны.

задействовать для кнопки целое прерывание не очень хорошая идея

Подскажите пожалуйста как надо. И почему идея плоха? Хочется понять. Буду очень признателен.

задействовать для кнопки целое прерывание не очень хорошая идея

Внешние прерывания attachInterrupt служат для отлавливания и обработки коротких импульсов, поэтому с кнопками, которые дают дребезг и относительно длительный импульс, их не используют.

Ну не хочешь самый простой вариант, тогда пробуй так

Поставьте кнопку с фиксацией или тумблер, зачем извращаться-то в данном вопросе?

Поставьте кнопку с фиксацией или тумблер, зачем извращаться-то в данном вопросе?

Замена возможности программного управления (в данном случае: вкл-выкл) на аппаратное, конечно упрощает решение, но не прибавляет мыслей для развития проекта. С помощью той же (одной) кнопки довольно просто реализовать не только включение-выключение подсветки, но и изменение яркости подсветки с помощью ШИМ. Или сделать то же самое дистанционно на IR. Или сделать автоматическое выключение подсветки через заданное время, чтобы лишний раз не давить на кнопку.

Можно даже этой кнопкой в космос запускать ракету.

Спасибо. Вот именно исходя из этих соображений (пробовать руками и научится, понять) я вникаю в этот момент. Тумблер беспорно простое решение, но это шаг назад в развитии.

Ну не хочешь самый простой вариант, тогда пробуй так

Спасибо. Вот оно, как говорится рядом было. Я ковырял вот этот кусок кода. Только у меня подсвет включался по нажатию и отключался когда я отпускал кнопку.

Добрый день! Я начинающий программист-любитель.Ни одного скетча еще не написал. Но встретил в сети любопытную систему программирования FLProg называется. Программирование с помощью соединения графических изображений элементов. Таких систем видимо существует несколько, но я попал на эту. Захотелось сделать на базе Ардуино нано схему управления насосом пневомобака установленного в колодце, дабы заменить механические реле давления аналоговым датчиком давления. И, о чудо, все получилось с нескольких попыток.

Читайте также:  Mazda 626 регулировка зажигания

Попробовал порешать Вашу проблему, получился вот такой скетч:

Немедленно выкинь каку.

Во, во, и руки с мылом помой.))))

Система FLProg генерит монструозный, абсолютно нечитаемый код, который содержит много корявых конструкций и не слишком эффективно работает. Зачем пользоваться этим костылем, когда вручную можно написать короче и красивее? 🙂

Источник

Подключение дисплея LCD 1602 к arduino по i2c / IIC

LCD дисплей – частый гость в проектах ардуино. Но в сложных схемах у нас может возникнуть проблема недостатка портов Arduino из-за необходимости подключить экран, у которого очень очень много контактов. Выходом в этой ситуации может стать I2C /IIC переходник, который подключает практически стандартный для Arduino экран 1602 к платам Uno, Nano или Mega всего лишь при помощи 4 пинов. В этой статье мы посмотрим, как можно подключить LCD экран с интерфейсом I2C, какие можно использовать библиотеки, напишем короткий скетч-пример и разберем типовые ошибки.

ЖК дисплей Arduino LCD 1602

Жидкокристаллический дисплей (Liquid Crystal Display) LCD 1602 является хорошим выбором для вывода строк символов в различных проектах. Он стоит недорого, есть различные модификации с разными цветами подсветки, вы можете легко скачать готовые библиотеки для скетчей Ардуино. Но самым главным недостатком этого экрана является тот факт, что дисплей имеет 16 цифровых выводов, из которых обязательными являются минимум 6. Поэтому использование этого LCD экрана без i2c добавляет серьезные ограничения для плат Arduino Uno или Nano. Если контактов не хватает, то вам придется покупать плату Arduino Mega или же сэкономить контакты, в том числе за счет подключения дисплея через i2c.

Краткое описание пинов LCD 1602

Давайте посмотрим на выводы LCD1602 повнимательней:

Каждый из выводов имеет свое назначение:

Технические характеристики дисплея:

Схема подключения LCD к плате Ардуино без i2C

Стандартная схема присоединения монитора напрямую к микроконтроллеру Ардуино без I2C выглядит следующим образом.

Из-за большого количества подключаемых контактов может не хватить места для присоединения нужных элементов. Использование I2C уменьшает количество проводов до 4, а занятых пинов до 2.

Где купить LCD экраны и шилды для ардуино

LCD экран 1602 (и вариант 2004) довольно популярен, поэтому вы без проблем сможете найти его как в отечественных интернет-магазинах, так и на зарубежных площадках. Приведем несколько ссылок на наиболее доступные варианты:

Описание протокола I2C

Прежде чем обсуждать подключение дисплея к ардуино через i2c-переходник, давайте вкратце поговорим о самом протоколе i2C.

I2C / IIC(Inter-Integrated Circuit) – это протокол, изначально создававшийся для связи интегральных микросхем внутри электронного устройства. Разработка принадлежит фирме Philips. В основе i2c протокола является использование 8-битной шины, которая нужна для связи блоков в управляющей электронике, и системе адресации, благодаря которой можно общаться по одним и тем же проводам с несколькими устройствами. Мы просто передаем данные то одному, то другому устройству, добавляя к пакетам данных идентификатор нужного элемента.

Самая простая схема I2C может содержать одно ведущее устройство (чаще всего это микроконтроллер Ардуино) и несколько ведомых (например, дисплей LCD). Каждое устройство имеет адрес в диапазоне от 7 до 127. Двух устройств с одинаковым адресом в одной схеме быть не должно.

Плата Arduino поддерживает i2c на аппаратном уровне. Вы можете использовать пины A4 и A5 для подключения устройств по данному протоколу.

В работе I2C можно выделить несколько преимуществ:

Модуль i2c для LCD 1602 Arduino

Самый быстрый и удобный способ использования i2c дисплея в ардуино – это покупка готового экрана со встроенной поддержкой протокола. Но таких экранов не очень много истоят они не дешево. А вот разнообразных стандартных экранов выпущено уже огромное количество. Поэтому самым доступным и популярным сегодня вариантом является покупка и использование отдельного I2C модуля – переходника, который выглядит вот так:

Читайте также:  Регулировка клапанов м 412 за два оборота коленвала

С одной стороны модуля мы видим выводы i2c – земля, питание и 2 для передачи данных. С другой переходника видим разъемы внешнего питания. И, естественно, на плате есть множество ножек, с помощью которых модуль припаивается к стандартным выводам экрана.

Для подключения к плате ардуино используются i2c выходы. Если нужно, подключаем внешнее питание для подстветки. С помощью встроенного подстроечного резистора мы можем настроить настраиваемые значения контрастности J

На рынке можно встретить LCD 1602 модули с уже припаянными переходниками, их использование максимально упощено. Если вы купили отдельный переходник, нужно будет предварительно припаять его к модулю.

Подключение ЖК экрана к Ардуино по I2C

Для подключения необходимы сама плата Ардуино, дисплей, макетная плата, соединительные провода и потенциометр.

Если вы используете специальный отдельный i2c переходник, то нужно сначала припаять его к модулю экрана. Ошибиться там трудно, можете руководствоваться такой схемой.

Жидкокристаллический монитор с поддержкой i2c подключается к плате при помощи четырех проводов – два провода для данных, два провода для питания.

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

Библиотеки для работы с i2c LCD дисплеем

Для взаимодействие Arduino c LCD 1602 по шине I2C вам потребуются как минимум две библиотеки:

После подключения к скетчу всех необходимых библиотек мы создаем объект и можем использовать все его функции. Для тестирования давайте загрузим следующий стандартный скетч из примера.

Описание функций и методов библиотеки LiquidCrystal_I2C:

Альтернативная библиотека для работы с i2c дисплеем

В некоторых случаях при использовании указанной библиотеки с устройствами, оснащенными контроллерами PCF8574 могут возникать ошибки. В этом случае в качестве альтернативы можно предложить библиотеку LiquidCrystal_PCF8574.h. Она расширяет LiquidCrystal_I2C, поэтому проблем с ее использованием быть не должно.

Скачать библиотеку можно на нашем сайте. Библиотека также встроена в последние версии Arduino IDE.

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

Если после загрузки скетча у вас не появилось никакой надписи на дисплее, попробуйте выполнить следующие действия.

Во-первых, можно увеличить или уменьшить контрастность монитора. Часто символы просто не видны из-за режима контрастности и подсветки.

Если это не помогло, то проверьте правильность подключения контактов, подключено ли питание подсветки. Если вы использовали отдельный i2c переходник, то проверьте еще раз качество пайки контактов.

Другой часто встречающейся причиной отсутствия текста на экране может стать неправильный i2c адрес. Попробуйте сперва поменять в скетче адрес устройства с 0x27 0x20 или на 0x3F. У разных производителей могут быть зашиты разные адреса по умолчанию. Если и это не помогло, можете запустить скетч i2c сканера, который просматривает все подключенные устройства и определяет их адрес методом перебора. Пример скетча i2c сканера.

Если экран все еще останется нерабочим, попробуйте отпаять переходник и подключить LCD обычным образом.

Заключение

В этой статье мы рассмотрели основные вопросы использования LCD экрана в сложных проектах ардуино, когда нам нужно экономить свободные пины на плате. Простой и недорогой переходник i2c позволит подключить LCD экран 1602, занимая всего 2 аналоговых пина. Во многих ситуациях это может быть очень важным. Плата за удобство – необходимость в использовании дополнительного модуля – конвертера и библиотеки. На наш взгляд, совсем не высокая цена за удобство и мы крайне рекомендуем использовать эту возможность в проектах.

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Настройки и регулировки