arduino-lcd-text-i2c/

Ранее в заметке Научился выводить текст на ЖК-индикатор из Arduino мы с вами разобрались, как работать с текстовыми экранчиками 1602. Всем-то эти экранчики хороши, но требуют для подключения больно уж много проводов. Поэтому на практике их часто используют через адаптер с I2C интерфейсом на базе чипа PCF8574. Адаптеру нужно всего лишь 2 провода, не считая питания. Всего к I2C шине может быть подключено до 127 устройств, используя все те же 2 провода. Давайте же разберемся, как работать с такими адаптерами.

Fun fact! На AliExpress экранчик 1602 вместе с I2C адаптером к нему и доставкой в Россию стоит 100 рублей (1.75 $). На момент написания заметки это самый дешевый из известных мне экранчиков для DIY проектов.

Итак, есть Arduino Uno и экранчик с I2C адаптером, имеющим 4 пина. Пин VCC подключаем к 5 В, GND подключаем к земле, SDA — к пину A4 Ардуины, а SCL — к A5. Пины A4 и A5 — это стандартные пины для I2C шины у Arduino Uno.

Далее нам нужно определить I2C адрес адаптера. Для этого проще всего воспользоваться скетчем I2C Scanner . В моем случае адрес оказался 0x3F. Путем припаивания перемычек к адаптеру (соответствующие места помечены на нем, как A0, A1 и A2) адрес можно изменить. Таким образом можно разрешить конфликт адресов у нескольких устройств.

Для вывода текста на экран воспользуемся библиотекой LiquidCrystal_I2C . Используется она практически так же, как уже знакомая нам библиотека LiquidCrystal:

#include <Arduino.h>
#include «LiquidCrystal_I2C.h»

LiquidCrystal_I2C lcd ( 0x3F , 16 , 2 ) ;

void setup ( )
{
lcd. begin ( ) ;
lcd. setCursor ( 0 , 0 ) ;
lcd. print ( «Current time:» ) ;
}

void loop ( )
{
delay ( 100 ) ;

lcd. setCursor ( 0 , 1 ) ;
unsigned long tstamp = millis ( ) ;
int h = tstamp / 1000 / 60 / 60 ;
int m = ( tstamp / 1000 / 60 ) % 60 ;
int s = ( tstamp / 1000 ) % 60 ;

String line = String ( h ) + «h » +
String ( m ) + «m » +
String ( s ) + «s» ;

int len = line. length ( ) ;
while ( len < 16 )
{
line + = » » ;
len ++ ;
}

lcd. print ( line ) ;
}

Результат:

Как видите, все оказалось предельно просто. Полную версию кода вы найдете на GitHub . Если вам понравилась эта заметка, вас также может заинтересовать пост Использование ЖК-экранчика от Nokia 5110 в Arduino . Вопросы и дополнения, как обычно, всячески приветствуются.

Дополнение: Вас также могут заинтересовать посты Работаем с LCD на базе HD44780 без библиотек и Микроконтроллеры STM32: работа с экранчиком 1602 по I2C .

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

1 месяц ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

1 месяц ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

1 месяц ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

1 месяц ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

1 месяц ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

1 месяц ago