Arduino ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° дисплСя i2c. LCD I2C ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Arduino. Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π–Πš дисплСя ΠΊ Arduino ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ I2C

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных экранов Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅. Π‘ΠΎΠ±Ρ€Π°Π½ Π½Π° популярном ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ HD44780U. Из названия ΠΌΠΎΠ΄Π΅Π»ΠΈ слСдуСт, Ρ‡Ρ‚ΠΎ экран состоит ΠΈΠ· Π΄Π²ΡƒΡ… строк ΠΏΠΎ 16 символов. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ русского языка Π² этой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅Ρ‚.

Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… ш2с позволяСт ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎ 127 устройств, ΠΏΡ€ΠΈ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π”Π°Π½Π½Ρ‹ΠΉ I2C Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Ρ‡ΠΈΠΏΠ΅ PCF8574T.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

Биняя ΡˆΡ‚ΡƒΠΊΠ° β€” ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ сопротивлСниС, позволяСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ экрана.

ΠŸΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ° слСва β€” ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° подсвСтку экрана.

Π‘Π»ΠΎΠΊ ΠΈΠ· 4Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ arduino Ρ‚Π°ΠΊ:

GND β€” GND
VCC β€” 5V
SDA β€” A4 (Ссли Arduino MEGA, Ρ‚ΠΎ ΠΊ D20)
SCL β€” A5 (Ссли Arduino MEGA, Ρ‚ΠΎ ΠΊ D21)

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

Π‘ΠΊΠ΅Ρ‚Ρ‡

Π£ дисплСя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ IIC адрСс, вмСсто 0x27 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ 0x3F. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ адрСс ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ сканСром i2c устройств .

#include #include //Π·Π°Π΄Π°Π΅ΠΌ адрСс LCD экрана 0x27, 16 символов, 2 строки LiquidCrystal_I2C lcd(0x27, 16, 2); void setup () { lcd.init(); // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ экран //Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ подсвСтку lcd.backlight(); //УстанавливаСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ начиная с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выводится тСкст. lcd.setCursor (2, 0); //Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ строку 1 lcd.print ("Hello, World!" ); //Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку lcd.setCursor (1, 1); lcd.print ("www.сайт" ); } void loop () { }

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ послС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства простых самодСлок ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ†Π΅Π»ΠΈ ΡΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π³Ρ€Π°Π½Π΄ΠΈΠΎΠ·Π½ΠΎΠ΅ с использованиС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π’Π΅Π΄ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ интСрСснСС Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° дисплСй, Π½Π΅ΠΆΠ΅Π»ΠΈ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π°. Но Ρ‚ΠΎΠ³Π΄Π° встаСт вопрос: ΠΊΠ°ΠΊΠΎΠΉ дисплСй Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ? И Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ? ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° эти вопросы Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

LCD 1602

Π‘Ρ€Π΅Π΄ΠΈ мноТСства Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² срСди дисплССв ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ хочСтся ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ дисплСй LCD1602 Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° HD4478. БущСствуСт этот дисплСй Π² Π΄Π²ΡƒΡ… Ρ†Π²Π΅Ρ‚Π°Ρ…: Π±Π΅Π»Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ Π½Π° синСм Ρ„ΠΎΠ½Π΅, Ρ‡Π΅Ρ€Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ Π½Π° ΠΆΠ΅Π»Ρ‚ΠΎΠΌ Ρ„ΠΎΠ½Π΅. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ LCD 1602 ΠΊ Arduino Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ встроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. ДисплСи ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π½ΠΎΠΉ, Π½ΠΎ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρ€Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 16 x 2, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 2 строки ΠΏΠΎ 16 символов. Но сущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ 20 x 4, Π³Π΄Π΅ 4 строки ΠΏΠΎ 20 символов. Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ Ρ†Π²Π΅Ρ‚ Π½Π΅ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€ΠΎΠ»ΠΈ Π² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ дисплСя lcd 1602 ΠΊ Arduno, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Π£Π³ΠΎΠ» ΠΎΠ±Π·ΠΎΡ€Π° составляСт 35 градусов, врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° дисплСя - 250 мс. Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°Ρ… ΠΎΡ‚ -20 Π΄ΠΎ 70 градусов ΠΏΠΎ ЦСльсию. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 4 мА Π½Π° экран ΠΈ Π½Π° подсвСтку 120 мА.

Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ?

Π”Π°Π½Π½Ρ‹ΠΉ дисплСй ΠΈΠΌΠ΅Π΅Ρ‚ свою ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ Ρ€Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π½ΠΎ ΠΈ Ρƒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. НапримСр, ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹, ΠΊΠΎΡ„Π΅ΠΉΠ½Ρ‹Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ LCD1602. Π­Ρ‚ΠΎ обусловлСно Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ Ρ†Π΅Π½ΠΎΠΉ, стоит этот дисплСй Π½Π° китайских ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ°Ρ… 200-300 Ρ€ΡƒΠ±Π»Π΅ΠΉ. ΠŸΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ стоит ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π°ΡˆΠΈΡ… ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ… Π½Π°Ρ†Π΅Π½ΠΊΠΈ Π½Π° этот дисплСй ΠΎΡ‡Π΅Π½ΡŒ высокиС.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Arduino

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ LCD 1602 ΠΊ Arduino Nano ΠΈ Uno Π½Π΅ отличаСтся. Π‘ дисплССм ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…: 4 Π±ΠΈΡ‚Π° ΠΈ 8. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с 8-Π±ΠΈΡ‚Π½Ρ‹ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ младшиС, ΠΈ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹, Π° с 4-Π±ΠΈΡ‚Π½Ρ‹ΠΌ - Ρ‚ΠΎΠ»ΡŒΠΊΠΎ младшиС. Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с 8-Π±ΠΈΡ‚Π½Ρ‹ΠΌ особого смысла Π½Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ добавится для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΅Ρ‰Π΅ 4 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ Π½Π΅ цСлСсообразно, вСдь скорости Π²Ρ‹ΡˆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΏΡ€Π΅Π΄Π΅Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ дисплСя - 10 Ρ€Π°Π· Π² сСкунду. Π’ΠΎΠΎΠ±Ρ‰Π΅, для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ lcd 1602 ΠΊ Arduino ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², Ρ‡Ρ‚ΠΎ доставляСт Π½Π΅ΠΊΠΈΠ΅ нСудобства, Π½ΠΎ сущСствуСт особыС ΡˆΠΈΠ»Π΄Ρ‹, Π½ΠΎ ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅. На Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя ΠΊ Arduino Uno:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

#include // ДобавляСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Π—Π°Π΄Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ экрана lcd.setCursor(0, 0); // УстанавливаСм курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ 1 строки lcd.print("Hello, world!"); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ тСкст lcd.setCursor(0, 1); // УстанавливаСм курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ 2 строки lcd.print("сайт"); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ тСкст } void loop(){ }

Π§Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄? ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм. Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡƒΠΆΠ΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав Arduino IDE ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π½Π΅ Π½Π°Π΄ΠΎ. Π”Π°Π»Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ: RS, E, DB4, DB5, DB6, DB7 соотвСтствСнно. ПослС Ρ‡Π΅Π³ΠΎ задаСтся Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ экрана. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с вСрсиСй, Π³Π΄Π΅ 16 символов ΠΈ 2 строки, Ρ‚ΠΎ пишСм Ρ‚Π°ΠΊΠΈΠ΅ значСния. УстанавливаСм курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ тСкст Hello World. Π”Π°Π»Π΅Π΅ ставим курсор Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ сайта. Π’ΠΎΡ‚ ΠΈ всС! Π‘Ρ‹Π»ΠΎ рассмотрСно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ lcd 1602 ΠΊ Arduino Uno.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ I2C ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½?

Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ². НапримСр, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с нСсколькими Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈ дисплССм LCD 1602 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ просто Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρ€Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ вСрсии Uno ΠΈΠ»ΠΈ Nano, Π³Π΄Π΅ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ². Π’ΠΎΠ³Π΄Π° люди ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡˆΠΈΠ»Π΄Ρ‹. НапримСр, I2C. Он позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ дисплСй всСго Π² 4 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°. Π­Ρ‚ΠΎ Π² Π΄Π²Π° Ρ€Π°Π·Π° мСньшС. ΠŸΡ€ΠΎΠ΄Π°Π΅Ρ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ I2C ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π³Π΄Π΅ самому Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΏΠ°ΠΈΠ²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΈ ΡƒΠΆΠ΅ припаянный ΠΊ дисплСю LCD 1602.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ I2C модуля

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ LCD 1602 ΠΊ Arduino Nano с I2C Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ°Π»ΠΎ мСста, всСго 4 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°: зСмля, ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ 2 Π²Ρ‹Ρ…ΠΎΠ΄Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ зСмлю ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π½Π° 5V ΠΈ GND Π½Π° Arduino соотвСтствСнно. ΠžΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°: SCL ΠΈ SDA ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌ ΠΏΠΈΠ½Π°ΠΌ. На Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ lcd 1602 ΠΊ arduino с I2C ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄

Если для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм Π±Π΅Π· модуля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, Ρ‚ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Одна ΠΈΠ· Π½ΠΈΡ… ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² составС Arduino IDE - Wire. Π”Ρ€ΡƒΠ³ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, LiquidCrystal I2C, Π½Π°Π΄ΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ. Для установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Arduino содСрТимоС скачанного Π°Ρ€Ρ…ΠΈΠ²Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Libraries. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° с использованиСм I2C:

#include #include LiquidCrystal_I2C lcd(0x27,16,2); // УстанавливаСм дисплСй void setup() { lcd.init(); lcd.backlight();// Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ подсвСтку дисплСя lcd..setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // УстанавливаСм курсор Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ символ. lcd.setCursor(0, 1); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° экран количСство сСкунд с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° запуска Π°Ρ€Π΄ΡƒΠΈΠ½Ρ‹ lcd.print(millis()/1000); }

Как ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠΎΠ΄ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ отличаСтся.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свой символ?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ этих дисплССв являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ ΠΈ символов. НапримСр, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π°ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ символ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² дисплСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΌΠΎΠ³ Π΅Π³ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ. Для этого дисплСй позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΎ 7 своих символов. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

Если 0 - Ρ‚Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚, Ссли 1 - это Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹ΠΉ участок. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ созданиС символа "ΡƒΠ»Ρ‹Π±Π°ΡŽΡ‰ΠΈΠΉΡΡ смайл". На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Arduino это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

#include #include // ЛобавляСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ // Битовая маска символа ΡƒΠ»Ρ‹Π±ΠΊΠΈ byte smile = { B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Π—Π°Π΄Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ экрана lcd.createChar(1, smile); // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ символ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 1 lcd.setCursor(0, 0); // УстанавливаСм курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ 1 строки lcd.print("\1"); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ смайлик (символ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 1) - "\1" } void loop(){ }

Как ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π±Ρ‹Π»Π° создана битовая маска такая ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°. ПослС создания Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² дисплСй. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² памяти ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ лишь 7 символов. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, этого ΠΈ Π±Ρ‹Π²Π°Π΅Ρ‚ достаточно. НапримСр, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ символ градуса.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дисплСй ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ

Π‘Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ случаи, ΠΊΠΎΠ³Π΄Π° дисплСй Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. НапримСр, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, Π½ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ символы. Или вовсС Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ. Π‘Π½Π°Ρ‡Π°Π»Π° посмотритС, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹. Если Π²Ρ‹ использовали ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ lcd 1202 ΠΊ Arduino Π±Π΅Π· I2C, Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°Ρ…, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ дисплСя. Π’Π°ΠΊΠΆΠ΅ слСдуСт ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ дисплСя ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ минимальной контрастности Π΄Π°ΠΆΠ΅ Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π»ΠΈ LCD 1602 ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если это Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚, Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ кроСтся Π² ΠΏΠ°ΠΉΠΊΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ², это ΠΏΡ€ΠΈ использовании модуля I2C. Π’Π°ΠΊΠΆΠ΅ частой ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ дисплСй ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, являСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ установка I2C адрСса. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΉ адрСс, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΡƒΡ‚:

LiquidCrystal_I2C lcd(0x27,16,2);

Π’ скобках ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Π²Π° значСния, 0x27 ΠΈ 16,2 (16, 2 - являСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ дисплСя, Π° 0x27 ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚Π°ΠΊΠΈ адрСс I2C). ВмСсто этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ 0x37 ΠΈΠ»ΠΈ 0x3F. Ну ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ являСтся просто нСисправный LCD 1602. Учитывая, Ρ‡Ρ‚ΠΎ практичСски всС для Arduino изготавливаСтся Π² ΠšΠΈΡ‚Π°Π΅, Ρ‚ΠΎ нСльзя Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π½Π° 100%, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠ²Π°Ρ€ Π½Π΅ являСтся Π±Ρ€Π°ΠΊΠΎΠΌ.

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы LCD 1602

Рассмотрим ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы дисплСя LCD 1602.

  • Π¦Π΅Π½Π°. Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ приобрСсти совсСм ΠΏΠΎ Π΄Π΅ΠΌΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠΉ Ρ†Π΅Π½Π΅ Π² китайских ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ…. Π¦Π΅Π½Π° составляСт 200-300 Ρ€ΡƒΠ±Π»Π΅ΠΉ. Иногда продаСтся Π΄Π°ΠΆΠ΅ вмСстС с I2C ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ.
  • Π›Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ. ВСроятно, Π½ΠΈΠΊΡ‚ΠΎ сСйчас Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ LCD 1602 Π±Π΅Π· I2C. А с этим ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всСго 4 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… "ΠΏΠ°ΡƒΡ‚ΠΈΠ½" ΠΈΠ· ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Благодаря Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этим ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π»Π΅Π³ΠΊΠΎ, всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠΆΠ΅ прописаны. А ΠΏΡ€ΠΈ нСобходимости Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свой символ затрачиваСтся всСго ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚.
  • Π—Π° врСмя использования тысячами Ρ€Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡΠΌΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π±ΠΎΠ»ΡŒΡˆΠΈΡ… минусов выявлСно Π½Π΅ Π±Ρ‹Π»ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Ρ‹Π²Π°ΡŽΡ‚ случаи ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ Π±Ρ€Π°ΠΊΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ китайскиС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ дисплССв.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±Ρ‹Π»ΠΎ рассмотрСно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ 1602 ΠΊ Arduino, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΈ прСдставлСны ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим дисплССм. Он Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ являСтся Π² своСй ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ…, Π½Π΅ просто Ρ‚Π°ΠΊ Π΅Π³ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ тысячи Ρ€Π°Π΄ΠΈΠΎΠ»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈ для своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²!

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных экранов Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅. Π‘ΠΎΠ±Ρ€Π°Π½ Π½Π° популярном ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ HD44780U. Из названия ΠΌΠΎΠ΄Π΅Π»ΠΈ слСдуСт, Ρ‡Ρ‚ΠΎ экран состоит ΠΈΠ· Π΄Π²ΡƒΡ… строк ΠΏΠΎ 16 символов. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ русского языка Π² этой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅Ρ‚.

Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… ш2с позволяСт ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎ 127 устройств, ΠΏΡ€ΠΈ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π”Π°Π½Π½Ρ‹ΠΉ I2C Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Ρ‡ΠΈΠΏΠ΅ PCF8574T.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

Биняя ΡˆΡ‚ΡƒΠΊΠ° β€” ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ сопротивлСниС, позволяСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ экрана.

ΠŸΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ° слСва β€” ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° подсвСтку экрана.

Π‘Π»ΠΎΠΊ ΠΈΠ· 4Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ arduino Ρ‚Π°ΠΊ:

GND β€” GND
VCC β€” 5V
SDA β€” A4 (Ссли Arduino MEGA, Ρ‚ΠΎ ΠΊ D20)
SCL β€” A5 (Ссли Arduino MEGA, Ρ‚ΠΎ ΠΊ D21)

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

Π‘ΠΊΠ΅Ρ‚Ρ‡

Π£ дисплСя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ IIC адрСс, вмСсто 0x27 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ 0x3F. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ адрСс ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ сканСром i2c устройств .

#include #include //Π·Π°Π΄Π°Π΅ΠΌ адрСс LCD экрана 0x27, 16 символов, 2 строки LiquidCrystal_I2C lcd(0x27, 16, 2); void setup () { lcd.init(); // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ экран //Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ подсвСтку lcd.backlight(); //УстанавливаСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ начиная с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выводится тСкст. lcd.setCursor (2, 0); //Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ строку 1 lcd.print ("Hello, World!" ); //Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку lcd.setCursor (1, 1); lcd.print ("www.сайт" ); } void loop () { }

LCD дисплСй – частый Π³ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ. Но Π² слоТных схСмах Ρƒ нас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° нСдостатка ΠΏΠΎΡ€Ρ‚ΠΎΠ² Arduino ΠΈΠ·-Π·Π° нСобходимости ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ экран, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ². Π’Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π² этой ситуации ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ I2C /IIC ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ практичСски стандартный для Arduino экран 1602 ΠΊ ΠΏΠ»Π°Ρ‚Π°ΠΌ Uno, Nano ΠΈΠ»ΠΈ Mega всСго лишь ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ 4 ΠΏΠΈΠ½ΠΎΠ². Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ посмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ LCD экран с интСрфСйсом I2C, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, напишСм ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ скСтч-ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ ошибки.

ЖидкокристалличСский дисплСй (Liquid Crystal Display) LCD 1602 являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Π²Ρ‹Π²ΠΎΠ΄Π° строк символов Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Он стоит Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ подсвСтки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для скСтчСй Ардуино. Но самым Π³Π»Π°Π²Π½Ρ‹ΠΌ нСдостатком этого экрана являСтся Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ дисплСй ΠΈΠΌΠ΅Π΅Ρ‚ 16 Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 6. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ использованиС этого LCD экрана Π±Π΅Π· i2c добавляСт ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ограничСния для ΠΏΠ»Π°Ρ‚ Arduino Uno ΠΈΠ»ΠΈ Nano. Если ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, Ρ‚ΠΎ Π²Π°ΠΌ придСтся ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ Arduino Mega ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, Π² Ρ‚ΠΎΠΌ числС Π·Π° счСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дисплСя Ρ‡Π΅Ρ€Π΅Π· i2c.

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΏΠΈΠ½ΠΎΠ² LCD 1602

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π²Ρ‹Π²ΠΎΠ΄Ρ‹ LCD1602 ΠΏΠΎΠ²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅ΠΉ:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ своС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

  1. ЗСмля GND;
  2. ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ 5 Π’;
  3. Установка контрастности ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°;
  4. Команда, Π΄Π°Π½Π½Ρ‹Π΅;
  5. ЗаписываниС ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…;
  6. Enable;

7-14. Π›ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…;

  1. Плюс подсвСтки;
  2. ΠœΠΈΠ½ΡƒΡ подсвСтки.

ВСхничСскиС характСристики дисплСя:

  • Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ отобраТСния, Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ символов;
  • БвСтодиодная подсвСтка;
  • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ HD44780;
  • НапряТСниС питания 5Π’;
  • Π€ΠΎΡ€ΠΌΠ°Ρ‚ 16Ρ…2 символов;
  • Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ ΠΎΡ‚ -20Π‘ Π΄ΠΎ +70Π‘, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ хранСния ΠΎΡ‚ -30Π‘ Π΄ΠΎ +80 Π‘;
  • Π£Π³ΠΎΠ» ΠΎΠ±Π·ΠΎΡ€Π° 180 градусов.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ LCD ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Ардуино Π±Π΅Π· i2C

Бтандартная схСма присоСдинСния ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Ардуино Π±Π΅Π· I2C выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Из-Π·Π° большого количСства ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ мСста для присоСдинСния Π½ΡƒΠΆΠ½Ρ‹Ρ… элСмСнтов. ИспользованиС I2C ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ количСство ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² Π΄ΠΎ 4, Π° занятых ΠΏΠΈΠ½ΠΎΠ² Π΄ΠΎ 2.

Π“Π΄Π΅ ΠΊΡƒΠΏΠΈΡ‚ΡŒ LCD экраны ΠΈ ΡˆΠΈΠ»Π΄Ρ‹ для Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ

LCD экран 1602 (ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ 2004) довольно популярСн, поэтому Π²Ρ‹ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ смоТСтС Π½Π°ΠΉΡ‚ΠΈ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π² отСчСствСнных ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π° Π·Π°Ρ€ΡƒΠ±Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ°Ρ…. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ нСсколько ссылок Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ доступныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

ΠœΠΎΠ΄ΡƒΠ»ΡŒ LCD1602+I2C с синим экраном, совмСстим с Arduino ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ дисплСй LCD1602 (зСлСная подсвСтка) дСшСвлС 80 Ρ€ΡƒΠ±Π»Π΅ΠΉ Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ экран LCD2004 с I2C HD44780 для Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ (синяя ΠΈ зСлСная подсвСтка)
ДисплСй 1602 с IIC Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ ΠΈ синСй подсвСткой Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ LCD1602 со впаянным I2C ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° Port IIC/I2C/TWI/SPI для экрана 1602, совмСстим с Ардуино
ДисплСй с RGB-подсвСткой! LCD 16Γ—2 + keypad +Buzzer Shield for Arduino Π¨ΠΈΠ»Π΄ для Ардуино с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈ экраном LCD1602 LCD 1602 LCD дисплСй для 3D ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π° (Smart Controller for RAMPS 1.4, Text LCD 20Γ—4), ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΊΠ°Ρ€Π΄Ρ€ΠΈΠ΄Π΅Ρ€Π° SD ΠΈ MicroSD-

ОписаниС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° I2C

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя ΠΊ Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· i2c-ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ самом ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ i2C.

I2C / IIC (Inter-Integrated Circuit) – это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создававшийся для связи ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… микросхСм Π²Π½ΡƒΡ‚Ρ€ΠΈ элСктронного устройства. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ„ΠΈΡ€ΠΌΠ΅ Philips. Π’ основС i2c ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° являСтся использованиС 8-Π±ΠΈΡ‚Π½ΠΎΠΉ ΡˆΠΈΠ½Ρ‹, которая Π½ΡƒΠΆΠ½Π° для связи Π±Π»ΠΎΠΊΠΎΠ² Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ элСктроникС, ΠΈ систСмС адрСсации, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌ с нСсколькими устройствами. ΠœΡ‹ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ, Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ устройству, добавляя ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ элСмСнта.

Бамая простая схСма I2C ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство (Ρ‡Π°Ρ‰Π΅ всСго это ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ардуино) ΠΈ нСсколько Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, дисплСй LCD). КаТдоС устройство ΠΈΠΌΠ΅Π΅Ρ‚ адрСс Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 7 Π΄ΠΎ 127. Π”Π²ΡƒΡ… устройств с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ адрСсом Π² ΠΎΠ΄Π½ΠΎΠΉ схСмС Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.

ΠŸΠ»Π°Ρ‚Π° Arduino ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ i2c Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΈΠ½Ρ‹ A4 ΠΈ A5 для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ устройств ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ.

Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ I2C ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько прСимущСств:

  • Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ трСбуСтся всСго 2 Π»ΠΈΠ½ΠΈΠΈ – SDA (линия Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ SCL (линия синхронизации).
  • ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ большого количСства Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠ².
  • УмСньшСниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
  • Для управлСния всСм Π½Π°Π±ΠΎΡ€ΠΎΠΌ устройств трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ число ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… микросхСм ΠΊ ΠΎΠ΄Π½ΠΎΠΉ шинС ограничиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ.
  • Высокая ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ сохранности Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·-Π·Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ всплСски, встроСнного Π² схСмы.
  • ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° диагностики Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… сбоСв, быстрая ΠΎΡ‚Π»Π°Π΄ΠΊΠ° нСисправностСй.
  • Π¨ΠΈΠ½Π° ΡƒΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° Π² саму Arduino, поэтому Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡˆΠΈΠ½Π½Ρ‹ΠΉ интСрфСйс.

НСдостатки:

  • БущСствуСт СмкостноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π»ΠΈΠ½ΠΈΠΈ – 400 ΠΏΠ€.
  • Π’Ρ€ΡƒΠ΄Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° I2C, Ссли Π½Π° шинС имССтся нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… устройств.
  • ΠŸΡ€ΠΈ большом количСствС устройств Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ трудности Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сбоя, Ссли ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ устанавливаСт состояниС Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ i2c для LCD 1602 Arduino

Π‘Π°ΠΌΡ‹ΠΉ быстрый ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ использования i2c дисплСя Π² Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ – это ΠΏΠΎΠΊΡƒΠΏΠΊΠ° Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ экрана со встроСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Но Ρ‚Π°ΠΊΠΈΡ… экранов Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ истоят ΠΎΠ½ΠΈ Π½Π΅ дСшСво. А Π²ΠΎΡ‚ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… стандартных экранов Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ ΡƒΠΆΠ΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ самым доступным ΠΈ популярным сСгодня Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся ΠΏΠΎΠΊΡƒΠΏΠΊΠ° ΠΈ использованиС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ I2C модуля – ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны модуля ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ i2c – зСмля, ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ 2 для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊΠ° Π²ΠΈΠ΄ΠΈΠΌ Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹ внСшнСго питания. И, СстСствСнно, Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Π΅ΡΡ‚ΡŒ мноТСство Π½ΠΎΠΆΠ΅ΠΊ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»ΡŒ припаиваСтся ΠΊ стандартным Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ экрана.


Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ i2c Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹. Если Π½ΡƒΠΆΠ½ΠΎ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ внСшнСС ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ для подствСтки. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного подстроСчного рСзистора ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ настраиваСмыС значСния контрастности J

На Ρ€Ρ‹Π½ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ LCD 1602 ΠΌΠΎΠ΄ΡƒΠ»ΠΈ с ΡƒΠΆΠ΅ припаянными ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ, ΠΈΡ… использованиС максимально ΡƒΠΏΠΎΡ‰Π΅Π½ΠΎ. Если Π²Ρ‹ ΠΊΡƒΠΏΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ, Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΏΠ°ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π–Πš экрана ΠΊ Ардуино ΠΏΠΎ I2C

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ сама ΠΏΠ»Π°Ρ‚Π° Ардуино, дисплСй, макСтная ΠΏΠ»Π°Ρ‚Π°, ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ i2c ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ сначала ΠΏΡ€ΠΈΠΏΠ°ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ экрана. ΠžΡˆΠΈΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΌ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠΉ схСмой.


ЖидкокристалличСский ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ i2c ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΠ»Π°Ρ‚Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² – Π΄Π²Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° для Π΄Π°Π½Π½Ρ‹Ρ…, Π΄Π²Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° для питания.

  • Π’Ρ‹Π²ΠΎΠ΄ GND ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ GND Π½Π° ΠΏΠ»Π°Ρ‚Π΅.
  • Π’Ρ‹Π²ΠΎΠ΄ VCC – Π½Π° 5V.
  • SCL ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΠΈΠ½Ρƒ A5.
  • SDA ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΠΈΠ½Ρƒ A.

И это всС! Никаких ΠΏΠ°ΡƒΡ‚ΠΈΠ½ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ. ΠŸΡ€ΠΈ этом всю ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ i2C ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с i2c LCD дисплССм

Для взаимодСйствиС Arduino c LCD 1602 ΠΏΠΎ шинС I2C Π²Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π΄Π²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Wire.h для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с I2C ΡƒΠΆΠ΅ имССтся Π² стандартной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Arduino IDE.
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LiquidCrystal_I2C.h, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя большоС Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ для управлСния ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎ шинС I2C ΠΈ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ скСтч ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ ΠΊΠΎΡ€ΠΎΡ‡Π΅. НуТно Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дисплСя Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal_I2C.h

ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ скСтчу всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΌΡ‹ создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Для тСстирования Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ стандартный скСтч ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

#include #include // ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ //#include // ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LiquidCrystal_I2C lcd(0x27,16,2); // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ I2C адрСс (Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ экрана (Π² случаС LCD 1602 - 2 строки ΠΏΠΎ 16 символов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ //LiquidCrystal_PCF8574 lcd(0x27); // Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PCF8574 void setup() { lcd.init(); // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ дисплСя lcd.backlight(); // ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ подсвСтки lcd.setCursor(0,0); // Установка курсора Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки lcd.print("Hello"); // Набор тСкста Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС lcd.setCursor(0,1); // Установка курсора Π² Π½Π°Ρ‡Π°Π»ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки lcd.print("ArduinoMaster"); // Набор тСкста Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС } void loop() { }

ОписаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LiquidCrystal_I2C:

  • home() ΠΈ clear() – пСрвая функция позволяСт Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ экрана, вторая Ρ‚ΠΎΠΆΠ΅, Π½ΠΎ ΠΏΡ€ΠΈ этом удаляСт всС, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ Π΄ΠΎ этого.
  • write(ch) – позволяСт вывСсти ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ символ ch Π½Π° экран.
  • cursor() ΠΈ noCursor() – ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚/скрываСт курсор Π½Π° экранС.
  • blink() ΠΈ noBlink() – курсор ΠΌΠΈΠ³Π°Π΅Ρ‚/Π½Π΅ ΠΌΠΈΠ³Π°Π΅Ρ‚ (Ссли Π΄ΠΎ этого Π±Ρ‹Π»ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π΅Π³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅).
  • display() ΠΈ noDisplay() – позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ дисплСй.
  • scrollDisplayLeft() ΠΈ scrollDisplayRight() – ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅Ρ‚ экран Π½Π° ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ Π²Π»Π΅Π²ΠΎ/Π²ΠΏΡ€Π°Π²ΠΎ.
  • autoscroll() ΠΈ noAutoscroll() – позволяСт Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ автопрокручивания. Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ символ записываСтся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС, вытСсняя Ρ€Π°Π½Π΅Π΅ написанноС Π½Π° экранС.
  • leftToRight() ΠΈ rightToLeft() – Установка Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ тСкста – слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ справа Π½Π°Π»Π΅Π²ΠΎ.
  • createChar(ch, bitmap) – создаСт символ с ΠΊΠΎΠ΄ΠΎΠΌ ch (0 – 7), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ массив Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… масок bitmap для создания Ρ‡Π΅Ρ€Π½Ρ‹Ρ… ΠΈ Π±Π΅Π»Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с i2c дисплССм

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΏΡ€ΠΈ использовании ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с устройствами, оснащСнными ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ PCF8574 ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ошибки. Π’ этом случаС Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal_PCF8574.h. Она Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ LiquidCrystal_I2C, поэтому ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π΅Π΅ использованиСм Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ i2c lcd дисплСя

Если послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ скСтча Ρƒ вас Π½Π΅ появилось Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ надписи Π½Π° дисплСС, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°. Часто символы просто Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ ΠΈΠ·-Π·Π° Ρ€Π΅ΠΆΠΈΠΌΠ° контрастности ΠΈ подсвСтки.

Если это Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π»ΠΈ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ подсвСтки. Если Π²Ρ‹ использовали ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ i2c ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· качСство ΠΏΠ°ΠΉΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ².

Π”Ρ€ΡƒΠ³ΠΎΠΉ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉΡΡ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ отсутствия тСкста Π½Π° экранС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ i2c адрСс. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ спСрва ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π² скСтчС адрСс устройства с 0x27 0x20 ΠΈΠ»ΠΈ Π½Π° 0x3F. Π£ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΡˆΠΈΡ‚Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ адрСса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если ΠΈ это Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скСтч i2c сканСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просматриваСт всС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ устройства ΠΈ опрСдСляСт ΠΈΡ… адрСс ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ скСтча i2c сканСра .

Если экран всС Π΅Ρ‰Π΅ останСтся Π½Π΅Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΏΠ°ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ LCD ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли основныС вопросы использования LCD экрана Π² слоТных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ свободныС ΠΏΠΈΠ½Ρ‹ Π½Π° ΠΏΠ»Π°Ρ‚Π΅. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΈ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ i2c ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ LCD экран 1602, занимая всСго 2 Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΏΠΈΠ½Π°. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΌ. ΠŸΠ»Π°Ρ‚Π° Π·Π° удобство – Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² использовании Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ модуля – ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. На наш взгляд, совсСм Π½Π΅ высокая Ρ†Π΅Π½Π° Π·Π° удобство ΠΈ ΠΌΡ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ FC-113 сдСлан Π½Π° Π±Π°Π·Π΅ микросхСмы PCF8574T, которая прСдставляСт собой 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ сдвиговый рСгистр - Β«Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚Π΅Π»ΡŒΒ» Π²Ρ…ΠΎΠ΄ΠΎΠ²-Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΈΠ½Ρ‹ I2C. На рисункС микросхСма ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° DD1.
  • R1 - подстроСчный рСзистор для Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ контрастности Π–Πš дисплСя.
  • Π”ΠΆΠ°ΠΌΠΏΠ΅Ρ€ J1 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ подсвСтки дисплСя.
  • Π’Ρ‹Π²ΠΎΠ΄Ρ‹ 1…16 слуТат для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ модуля ΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ LCD дисплСя.
  • ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ А1…А3 Π½ΡƒΠΆΠ½Ρ‹ для измСнСния адрСса I2C устройства. Запаивая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ адрСс устройства. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ соотвСтствиС адрСсов ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡Π΅ΠΊ: "0" соотвСтствуСт Ρ€Π°Π·Ρ€Ρ‹Π²Ρƒ Ρ†Π΅ΠΏΠΈ, "1" - установлСнной ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ΅. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всС 3 ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ Ρ€Π°Π·ΠΎΠΌΠΊΠ½ΡƒΡ‚Ρ‹ ΠΈ адрСс устройства 0x27 .

2 Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π–Πš дисплСя ΠΊ Arduino ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ I2C

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ модуля ΠΊ Arduino осущСствляСтся стандартно для ΡˆΠΈΠ½Ρ‹ I2C: Π²Ρ‹Π²ΠΎΠ΄ SDA модуля ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ A4, Π²Ρ‹Π²ΠΎΠ΄ SCL - ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ A5 Ардуино. ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ модуля осущСствляСтся напряТСниСм +5 Π’ ΠΎΡ‚ Arduino. Π‘Π°ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ соСдиняСтся Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ 1…16 с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ 1…16 Π½Π° Π–Πš дисплСС.


3 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ I2C

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с LCD ΠΏΠΎ интСрфСйсу I2C. МоТно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎΡ‚ этой (ссылка Π² строкС "Download Sample code and library").

Π‘ΠΊΠ°Ρ‡Π°Π½Π½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ² LiquidCrystal_I2Cv1-1.rar Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ Π² ΠΏΠ°ΠΏΠΊΡƒ \libraries\ , которая находится Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Arduino IDE.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для LCD экранов:

Ѐункция НазначСниС
LiquidCrystal() создаёт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° LiquidCrystal ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дисплСя (Π½ΠΎΠΌΠ΅Ρ€Π° Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ²);
begin() инициализация LCD дисплСя, Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (ΠΊΠΎΠ»-Π²ΠΎ строк ΠΈ символов);
clear() очистка экрана ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ курсора Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ;
home() Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ курсора Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ;
setCursor() установка курсора Π½Π° Π·Π°Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ;
write() Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ символ Π½Π° Π–Πš экран;
print() Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ тСкст Π½Π° Π–Πš экран;
cursor() ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ курсор, Ρ‚.Π΅. ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ мСстом ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ символа;
noCursor() прячСт курсор;
blink() ΠΌΠΈΠ³Π°Π½ΠΈΠ΅ курсора;
noBlink() ΠΎΡ‚ΠΌΠ΅Π½Π° мигания;
noDisplay() Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя с сохранСниСм всСй ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ;
display() Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя с сохранСниСм всСй ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ;
scrollDisplayLeft() ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ° содСрТимого дисплСя Π½Π° 1 ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π²Π»Π΅Π²ΠΎ;
scrollDisplayRight() ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ° содСрТимого дисплСя Π½Π° 1 ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π²ΠΏΡ€Π°Π²ΠΎ;
autoscroll() Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ;
noAutoscroll() Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ;
leftToRight() Π·Π°Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ тСкста слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ;
rightToLeft() Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ тСкста справа Π½Π°Π»Π΅Π²ΠΎ;
createChar() создаёт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ символ для LCD-экрана.

4 Π‘ΠΊΠ΅Ρ‚Ρ‡ для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста Π½Π° LCD экран ΠΏΠΎ шинС I2C

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π·Π΅Ρ†: Π€Π°ΠΉΠ» ΠžΠ±Ρ€Π°Π·Ρ†Ρ‹ LiquidCrystal_I2C CustomChars ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π΅ΠΌ. Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ сообщСниС, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΌΠΈΠ³Π°ΡŽΡ‰ΠΈΠΉ символ. Π’ коммСнтариях ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ всС Π½ΡŽΠ°Π½ΡΡ‹ скСтча.

#include // ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Wire #include // ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π–ΠšΠ˜ #define printByte(args) write(args); // uint8_t heart = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0}; // битовая маска символа «сСрдцС» LiquidCrystal_I2C lcd(0x27, 16, 2); // Π—Π°Π΄Π°Ρ‘ΠΌ адрСс 0x27 для LCD дисплСя 16x2 void setup() { lcd.init(); // инициализация Π–Πš дисплСя lcd.backlight(); // Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ подсвСтки дисплСя lcd.createChar(3, heart); // создаём символ «сСрдцС» Π² 3 ячСйкС памяти lcd.home(); // ставим курсор Π² Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ», Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ (0,0) lcd.!"); // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ строку тСкста lcd.setCursor(0, 1); // ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ курсора Π½Π° строку 2, символ 1 lcd.print(" i "); // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ сообщСниС Π½Π° строкС 2 lcd.printByte(3); // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ символ «сСрдцС», находящийся Π² 3-Π΅ΠΉ ячСйкС lcd.print(" Arduino "); } void loop() { // ΠΌΠΈΠ³Π°Π½ΠΈΠ΅ послСднСго символа lcd.setCursor(13, 1); // ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ курсора Π½Π° строку 2, символ 1 lcd.print("\t"); delay(500); lcd.setCursor(13, 1); // ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ курсора Π½Π° строку 2, символ 1 lcd.print(" "); delay(500); }

ΠšΡΡ‚Π°Ρ‚ΠΈ, символы, записанныС ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ lcd.createChar(); , ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² памяти дисплСя Π΄Π°ΠΆΠ΅ послС Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ питания, Ρ‚.ΠΊ. Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠŸΠ—Π£ дисплСя 1602.

5 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнных символов для Π–Πš дисплСя

НСмного ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим вопрос создания собствСнных символов для Π–Πš экранов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ символ Π½Π° экранС состоит ΠΈΠ· 35-Ρ‚ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ: 5 Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ 7 Π² высоту (+1 рСзСрвная строка для подчёркивания). Π’ строкС 6 ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ скСтча ΠΌΡ‹ Π·Π°Π΄Π°Ρ‘ΠΌ массив ΠΈΠ· 7-ΠΌΠΈ чисСл: {0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0} . ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ 16-Ρ€ΠΈΡ‡Π½Ρ‹Π΅ числа Π² Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅: {00000, 01010, 11111, 11111, 01110, 00100, 00000} . Π­Ρ‚ΠΈ числа - Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ маски для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· 7-ΠΌΠΈ строк символа, Π³Π΄Π΅ "0" ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΡΠ²Π΅Ρ‚Π»ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, Π° "1" - Ρ‚Ρ‘ΠΌΠ½ΡƒΡŽ. НапримСр, символ сСрдца, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ маски, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π° экранС Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС.

6 Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π–Πš экраном ΠΏΠΎ шинС I2C

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ скСтч Π² Arduino. На экранС появится заданная Π½Π°ΠΌΠΈ надпись с ΠΌΠΈΠ³Π°ΡŽΡ‰ΠΈΠΌ курсором Π² ΠΊΠΎΠ½Ρ†Π΅.


7 Π§Ρ‚ΠΎ находится Β«Π·Π°Β» шиной I2C

Π’ качСствС бонуса рассмотрим Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Π° латинских символов "A", "B" ΠΈ "Π‘" Π½Π° Π–Πš дисплСй. Π­Ρ‚ΠΈ символы ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² ΠŸΠ—Π£ дисплСя ΠΈ выводятся Π½Π° экран просто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ дисплСю ΠΈΡ… адрСса. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° снята с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² RS, RW, E, D4, D5, D6 ΠΈ D7 дисплСя, Ρ‚.Π΅. ΡƒΠΆΠ΅ послС прСобразоватСля FC-113 Β«I2C ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ шина». МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ погруТаСмся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Β«Π³Π»ΡƒΠ±ΠΆΠ΅Β» Π² Β«ΠΆΠ΅Π»Π΅Π·ΠΎΒ».


ВрСмСнная Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° латинских символов "A", "B" ΠΈ "Π‘" Π½Π° LCD дисплСй 1602

На Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² ΠŸΠ—Π£ дисплСя (см. стр.11 Π΄Π°Ρ‚Π°ΡˆΠΈΡ‚Π°, ссылка Π½ΠΈΠΆΠ΅), ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ двумя ΠΏΠΎΠ»ΡƒΠ±Π°ΠΉΡ‚Π°ΠΌΠΈ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опрСдСляСт Π½ΠΎΠΌΠ΅Ρ€ столбца Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ - Π½ΠΎΠΌΠ΅Ρ€ строки. ΠŸΡ€ΠΈ этом Π΄Π°Π½Π½Ρ‹Π΅ Β«Π·Π°Ρ‰Ρ‘Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡΒ» ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Ρƒ сигнала Π½Π° Π»ΠΈΠ½ΠΈΠΈ E (Enable), Π° линия RS (Register select, Π²Ρ‹Π±ΠΎΡ€ рСгистра) находится Π² состоянии логичСской Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. НизкоС состояниС Π»ΠΈΠ½ΠΈΠΈ RS ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ инструкций, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС пСрСдаётся ΠΊΠΎΠ΄ инструкции Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ (0, 0) Π–Πš дисплСя, ΠΎ Ρ‡Ρ‘ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΈΠ·ΡƒΡ‡ΠΈΠ² тСхничСскоС описаниС дисплСя.

И Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. На этой Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²Ρ‹Π²ΠΎΠ΄ символа Β«Π‘Π΅Ρ€Π΄Ρ†Π΅Β» Π½Π° Π–Πš дисплСй.


ΠžΠΏΡΡ‚ΡŒ, ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° Enable ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ инструкции Home() (0000 0010 2) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ (0; 0), Π° Π²Ρ‚ΠΎΡ€Ρ‹Π΅ Π΄Π²Π° - Π²Ρ‹Π²ΠΎΠ΄ Π½Π° Π–Πš дисплСй хранящийся Π² ячСйкС памяти 3 10 (0000 0011 2) символ Β«Π‘Π΅Ρ€Π΄Ρ†Π΅Β» (инструкция lcd.createChar(3, heart); скСтча).