Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ курс. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ lcd ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². Arduino ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ LCD-дисплСй

LCD дисплСй Arduino позволяСт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². РасскаТСм, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ LCD ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΊ Arduino ΠΏΠΎ I2C ΠΈ рассмотрим основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ управлСния LCD 1602. Π’Π°ΠΊΠΆΠ΅ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² языкС программирования C++, для Π²Ρ‹Π²ΠΎΠ΄Π° тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° дисплСС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто трСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π½Π° Ардуино.

Π’ΠΈΠ΄Π΅ΠΎ. Arduino LCD Display I2C 1602

LCD 1602 I2C ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Arduino

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

Π’ простой систСмС IΒ²C ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… устройств ΠΈ ΠΎΠ΄Π½ΠΎ Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ синхронизируСт сигнал. К линиям SDA (линия Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ SCL (линия синхронизации) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… устройств. Часто Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ устройством являСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ардуино, Π° Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌΠΈ устройствами: часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ LCD Display.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ LCD 1602 ΠΊ Ардуино ΠΏΠΎ I2C

ЖидкокристалличСский дисплСй 1602 с I2C ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Ардуино всСго 4 ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈ β€” 2 ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ 2 ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° питания. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя 1602 проводится стандартно для ΡˆΠΈΠ½Ρ‹ I2C: Π²Ρ‹Π²ΠΎΠ΄ SDA ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ A4, Π²Ρ‹Π²ΠΎΠ΄ SCL – ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ A5. ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ LCD дисплСя осущСствляСтся ΠΎΡ‚ ΠΏΠΎΡ€Ρ‚Π° +5V Π½Π° Arduino. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ схСму ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΆΠΊ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° 1602 Π½Π° Ρ„ΠΎΡ‚ΠΎ Π½ΠΈΠΆΠ΅.

Для занятия Π½Π°ΠΌ понадобятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ:

  • ΠΏΠ»Π°Ρ‚Π° Arduino Uno / Arduino Nano / Arduino Mega;
  • LCD ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ 1602;
  • 4 ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Β«ΠΏΠ°ΠΏΠ°-ΠΌΠ°ΠΌΠ°Β».

ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ LCD ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΊ Ардуино Ρ‡Π΅Ρ€Π΅Π· I2C Π²Π°ΠΌ потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal_I2C.h для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с LCD дисплССм ΠΏΠΎ интСрфСйсу I2C ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Wire.h (имССтся Π² стандартной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Arduino IDE). Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal_I2C.h для LCD 1602 с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ I2C ΠΌΠΎΠΆΠ½ΠΎ Π½Π° страницС Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ардуино Π½Π° нашСм сайтС ΠΏΠΎ прямой ссылкС с Google Drive.

Π‘ΠΊΠ΅Ρ‚Ρ‡ для дисплСя 1602 с I2C

#include // Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для управлСния устройствами ΠΏΠΎ I2C #include // ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для LCD 1602 LiquidCrystal_I2C lcd(0x27,20,2); // присваиваСм имя lcd для дисплСя 20Ρ…2 void setup () // ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° setup { lcd.init (); // инициализация LCD дисплСя lcd.backlight (); // Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ подсвСтки дисплСя lcd.setCursor (0,0); // ставим курсор Π½Π° 1 символ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки lcd.print ("I LOVE"); // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ сообщСниС Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС lcd.setCursor (0,1); // ставим курсор Π½Π° 1 символ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки lcd.print ("ARDUINO"); // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ сообщСниС Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС } void loop () // ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° loop { /* это многострочный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ // ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° void loop() Π² скСтчС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ lcd.noDisplay(); // Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ подсвСтку LCD дисплСя delay(500); // ставим ΠΏΠ°ΡƒΠ·Ρƒ lcd.display(); // Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ подсвСтку LCD дисплСя delay(500); // ставим ΠΏΠ°ΡƒΠ·Ρƒ */ }

ПояснСния ΠΊ ΠΊΠΎΠ΄Ρƒ:

  1. Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LiquidCrystal_I2C.h содСрТит мноТСство ΠΊΠΎΠΌΠ°Π½Π΄ для управлСния LCD дисплСя ΠΏΠΎ шинС IΒ²C ΠΈ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ скСтч;
  2. скСтч содСрТит многострочный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ /* ... */ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сразу нСсколько строк Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.
  3. ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° дисплСй, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ курсора ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ setCursor(0,1) , Π³Π΄Π΅ 0 β€” Π½ΠΎΠΌΠ΅Ρ€ символа Π² строкС, 1 β€” Π½ΠΎΠΌΠ΅Ρ€ строки.
  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ 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); скСтча).

ΠŸΡ€ΠΈ создании собствСнного устройства Π½Π΅ Ρ€Π΅Π΄ΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. НапримСр, Ссли Π²Ρ‹ создаётС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°, Ρ‚ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΎΡΠ½Π°ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ±ΠΎΡ€ устройством Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ быстро ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС систСм. Π›ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся ТидкокристалличСский дисплСй. Π­Π½Π΅Ρ€Π³ΠΎΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΉ подсвСткС минимально Π° Ρ€Π°Π±ΠΎΡ‚Π° с дисплССм ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ проста ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сильного Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ЀактичСски, Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° Π–Πš дисплСй Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠΌ отличаСтся ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Π² сСрийный ΠΏΠΎΡ€Ρ‚. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассмотрСно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ дисплСя Π½Π° Π±Π°Π·Π΅ популярного Ρ‡ΠΈΠΏΠ° HD44780 ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Arduino.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ТидкокристалличСский тСкстовый дисплСй

Для понимания Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нюансов ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ дисплСй. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ дисплССв Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ своСго ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° с собствСнной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. DDRAM β€” ΠΏΠ°ΠΌΡΡ‚ΡŒ дисплСя. Для Π²Ρ‹Π²ΠΎΠ΄Π° символа Π½Π° экран Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ символ Π² ячСйку памяти, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ячСйки памяти. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ символы ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ASCII ΠΊΠΎΠ΄Π°ΠΌΠΈ. НапримСр, ΠΏΡ€ΠΈ записи Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° 0Γ—31 Π½Π° дисплСй Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ символ Β«1 Β». БоотвСтствиС ΠΊΠΎΠ΄Π° символа Π΅Π³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π½Π° экранС (Ρ‚.Π΅. Β«ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅Β» символа) хранится Π² памяти CGROM. CGROM Π½Π΅ измСняСмая ΠΏΠ°ΠΌΡΡ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, дисплСй ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Β«Π·Π°ΡˆΠΈΡ‚Ρ‹Β» Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. ИмСнно поэтому Π½Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дисплСй способСн ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, русскиС символы. ДисплСи, ΠΏΡ€ΠΎΠ΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² нашСм ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅, ΠΊ соТалСнию, Π½Π΅ русифицированы. Π•ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ CGRAM ΠΏΠ°ΠΌΡΡ‚ΡŒ. Она измСняСмая. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС символы ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΡ… Π½Π° дисплСС. Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ восьми символов.

Вся эта «подкапотная» Ρ€Π°Π±ΠΎΡ‚Π° Π²Π°ΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для понимания Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нюансов. Для Arduino сущСствуСт простая ΠΈ понятная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая выполняСт Π·Π° вас всю Ρ‡Π΅Ρ€Π½ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, позволяя ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° дисплСй Π»Π΅Π³ΠΊΠΎ ΠΈ просто.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ТидкокристалличСского дисплСя ΠΊ Arduino

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дисплСя Π΅Π³ΠΎ, разумССтся, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: дисплСи, ΠΏΡ€ΠΎΠ΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Ρƒ нас Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΎΠ΄Π°ΡŽΡ‚ΡΡ Π±Π΅Π· припаянного ΡˆΡ‚Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΡŠΡ‘ΠΌΠ°. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ дисплСй сразу Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊ установкС Π½Π° ΠΌΠ°ΠΊΠ΅Ρ‚ΠΊΡƒ, ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Β«ΠΏΡ€ΠΈΠΏΠ°ΡΡ‚ΡŒ Ρ€Π°Π·ΡŠΡ‘ΠΌΒ» Π½Π° страницС Ρ‚ΠΎΠ²Π°Ρ€Π° ΠΈ ΠΌΡ‹ припаяСм Ρ€Π°Π·ΡŠΡ‘ΠΌ для вас. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° дисплСй ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° двумя способами: ΠΏΠΎ 4 ΠΈΠ»ΠΈ ΠΏΠΎ 8 Π±ΠΈΡ‚ Π·Π° Ρ€Π°Π·. БоотвСтствСнно, потрСбуСтся Π»ΠΈΠ±ΠΎ 4, Π»ΠΈΠ±ΠΎ 8 Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Arduino. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° Π² скорости ΠΏΡ€ΠΈ использовании Π²ΠΎΡΡŒΠΌΠΈΠ±ΠΈΡ‚Π½ΠΎΠ³ΠΎ интСрфСйса Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π½Π°ΠΌ потрСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 4 Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π•Ρ‰Ρ‘ 3 Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для задания Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ дисплСя. Π˜Ρ‚ΠΎΠ³ΠΎ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дисплСя понадобится всСго 7 Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° дисплСС подписаны, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π΅ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ:

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ Π½ΡƒΠΌΠ΅Ρ€ΡƒΠ΅ΠΌ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ:

  • 1-(VSS ) ЗСмля дисплСя. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Ρ€Π΅Π»ΡŒΡΠ΅ Π·Π΅ΠΌΠ»ΠΈ.
  • 2-(VDD ) ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ дисплСя. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Ρ€Π΅Π»ΡŒΡΠ΅ питания.
  • 3-(VO ) Π’Ρ…ΠΎΠ΄ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€Π° (Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚). Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€Π° рСгулируСтся ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ дисплСя. К Π²Ρ‹Π²ΠΎΠ΄Ρƒ дисплСя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ срСдний Π²Ρ‹Ρ…ΠΎΠ΄ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€Π°.
  • 4-(RS ) Π’Ρ…ΠΎΠ΄ Β«ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎΒ» сигнала. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ Arduino. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ β„–12.
  • 5-(RW ) УстанавливаСт Ρ€Π΅ΠΆΠΈΠΌ «чтСния» ΠΈΠ»ΠΈ «записи». ΠœΡ‹ собираСмся Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΊ Π·Π΅ΠΌΠ»Π΅.
  • 6-(E ) Enable. Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Β«ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉΒ» Π²Ρ‹Π²ΠΎΠ΄. Когда Π½Π° Π²Ρ‹Π²ΠΎΠ΄ подаётся Π΅Π΄ΠΈΠ½ΠΈΡ†Π°, дисплСй выполняСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΡƒΡŽ Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ β„–11.
  • 7-10 (D0-D3 ) оставляСм Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π²ΠΎΡΡŒΠΌΠΈΠ±ΠΈΡ‚Π½ΠΎΠΌ интСрфСйсС. Нам Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹.
  • 11-14 (D4-D7 ) ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ…Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ соотвСтствСнно ΠΊ 5,4,3 ΠΈ 2 Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ (D4 ΠΊ 5 Π²Ρ‹Π²ΠΎΠ΄Ρƒ, D5 ΠΊ 4 ΠΈ Ρ‚.Π΄.).
  • 15 (A ) Анод свСтодиода подсвСтки. Π’ΠΎΠΊΠΎΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ рСзистор ΡƒΠΆΠ΅ установлСн Π² дисплСС, поэтому Π°Π½ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ просто ΠΊ Ρ€Π΅Π»ΡŒΡΠ΅ питания. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² подсвСткС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ самый ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ свСтодиод, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌΡƒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΡΡ€ΠΊΠΎΡΡ‚ΡŒΡŽ подсвСтки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ.
  • 16 (K ) ΠšΠ°Ρ‚ΠΎΠ΄ подсвСтки. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Ρ€Π΅Π»ΡŒΡΠ΅ Π·Π΅ΠΌΠ»ΠΈ.

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ схСма ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ВмСстС с Arduino IDE поставляСтся прСкрасная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ТидкокристалличСских дисплССв - LiquidCrystal . Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° содСрТит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ возмоТности экрана. Для Π½Π°Ρ‡Π°Π»Π° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ стандартным ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Β«HelloWorldΒ» (Π€Π°ΠΉΠ» -> ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ -> LiquidCrystal -> HelloWorld) ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π² ΠΏΠ»Π°Ρ‚Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

/* *RS Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 12 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino *Enable Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 11 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino *D4 Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 5 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino *D5 Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 4 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino *D6 Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 3 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino *D7 Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 2 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino *R/W Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ Π·Π΅ΠΌΠ»Π΅ *Π’Ρ‹Ρ…ΠΎΠ΄ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€Π° ΠΊ VO Π²Ρ‹Π²ΠΎΠ΄Ρƒ дисплСя */ // ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ: #include ; // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ дисплСй // ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΠ΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ arduino ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ // RS, E, D4, D5, D6, D7 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ дисплСя LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ количСство столбцов ΠΈ строк дисплСя: lcd.begin(16, 2); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС Π½Π° дисплСй. lcd.print("hello, world!"); } void loop() { // устанавливаСм курсор Π² 0 (Π½ΡƒΠ»Π΅Π²ΠΎΠΉ) столбСц ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки // фактичСски курсор установится Π²ΠΎ Π²Ρ‚ΠΎΡ€ΡƒΡŽ (ниТнюю) строку // нумСрация строк ΠΈ столбцов начинаСтся с нуля lcd.setCursor(0, 1); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° дисплСй количСство сСкунд, // ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ»Π°Ρ‚Ρ‹: lcd.print(millis()/1000); }

*RS Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 12 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino

*Enable Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 11 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino

*D4 Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 5 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino

*D5 Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 4 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino

*D6 Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 3 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino

*D7 Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ 2 Π²Ρ‹Π²ΠΎΠ΄Ρƒ arduino

*R/W Π²Ρ‹Π²ΠΎΠ΄ дисплСя ΠΊ Π·Π΅ΠΌΠ»Π΅

*Π’Ρ‹Ρ…ΠΎΠ΄ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€Π° ΠΊ VO Π²Ρ‹Π²ΠΎΠ΄Ρƒ дисплСя

// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ:

#include ;

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ дисплСй

// ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΠ΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ arduino ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹

// RS, E, D4, D5, D6, D7 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ дисплСя

void setup () {

// Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ количСство столбцов ΠΈ строк дисплСя:

lcd . begin (16 , 2 ) ;

// Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС Π½Π° дисплСй.

lcd . print ("hello, world!" ) ;

void loop () {

// нумСрация строк ΠΈ столбцов начинаСтся с нуля

lcd . setCursor (0 , 1 ) ;

// Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° дисплСй количСство сСкунд,

// ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ»Π°Ρ‚Ρ‹:

lcd . print (millis () / 1000 ) ;

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ этого ΠΊΠΎΠ΄Π° Π² ΠΏΠ»Π°Ρ‚Ρƒ Arduino Π½Π° экранС отобразится надпись Β«hello, world!Β»(Π°Π½Π³Π». Β«ΠΏΡ€ΠΈΠ²Π΅Ρ‚, ΠœΠΈΡ€!Β» ) Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ сСкунды Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС.

Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈ Π±Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠΎΠ΄ простой ΠΈ понятный. Однако, ΠΌΡ‹ всё ΠΆΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ:

  • LiquidCrystal lcd (12, 11, 5, 4, 3, 2) - эта строка создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ дисплСя, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Π’ скобках Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠΈΠ½ΠΎΠ², ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ дисплСя. БоотвСтствСнно: RS, E, D4, D5, D6, D7. Как ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, Π½ΠΎΠΌΠ΅Ρ€Π° Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ.
  • lcd.begin (16, 2) - здСсь ΠΌΡ‹ настроили Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ дисплСя. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 16 столбцов ΠΈ 2 строки. Для нашСго дисплСя 20Π₯4 эта строчка выглядСла Π±Ρ‹ Ρ‚Π°ΠΊ: lcd.begin (20, 4).
  • lcd.print (Β«hello, world!Β») - Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ тСкст Π½Π° дисплСй. ПослС указания Ρ€Π°Π·ΠΌΠ΅Ρ€Π° дисплСя (lcd.begin) курсор устанавливаСтся Π² Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ» дисплСя. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, этот тСкст Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ (Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ) строкС слСва.
  • lcd.setCursor (0, 1) - устанавливаСт курсор Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΡƒΠΊΠ°Π·Π°Π½Π° крайняя лСвая позиция Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки. Π’ скобках задаётся Π½ΠΎΠΌΠ΅Ρ€ столбца, Π·Π°Ρ‚Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ строки. И строки ΠΈ столбцы Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: lcd.setCursor(0, 0) - установит курсор Π² Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ», lcd.setCursor(15, 0) - ΠΏΡ€Π°Π²Ρ‹ΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ.
  • lcd.print (millis()/1000) - ΡƒΠΆΠ΅ описано Π²Ρ‹ΡˆΠ΅. Π—Π΄Π΅ΡΡŒ вмСсто тСкста Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° пСрСдаётся Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° для вычислСния. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выводится Π½Π° экран.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ послоТнСС. А Ссли Π²Ρ‹ ΡƒΠΆΠ΅ всё поняли ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π–Πš дисплСй, Ρ‚ΠΎ я собрал для вас ссылки Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΌΠ½ΠΎΠΉ китайских ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†ΠΎΠ² дисплССв:

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π–Πš дисплСи

Π Π°Π·ΠΌΠ΅Ρ€ дисплСя (столбцы*строки) Π¦Π²Π΅Ρ‚ подствСтки Бтатус
20*4 Π‘ΠΈΠ½ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ
20*4 Π–Ρ‘Π»Ρ‚Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ
16*2 Π‘ΠΈΠ½ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ
16*2 Π–Ρ‘Π»Ρ‚Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ
16*2 Π—Π΅Π»Ρ‘Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ

ΠžΠ±Π·ΠΎΡ€ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LiquidCrystal

Π’ стандартных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ вмСстС с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ LiquidCrystal ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ скСтчи:

    • Autoscroll - дСмонстрируСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ тСкста Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅. НСкоС ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π±Π΅Π³ΡƒΡ‰Π΅ΠΉ строки. ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ символа ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ символы ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΠΎΠ²Ρ‹ΠΉ символ выводится Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС.

    • Blink - дСмонстрируСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠ³Π°ΡŽΡ‰Π΅Π³ΠΎ курсора Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

    • Cursor - дСмонстрируСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ курсора Π² Π²ΠΈΠ΄Π΅ ΠΌΠΈΠ³Π°ΡŽΡ‰Π΅ΠΉ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚Ρ‹.

    • CustomCharacter - ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания собствСнных символов для отобраТСния ΠΈΡ… Π½Π° дисплСС. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π² этом скСтчС ошибка. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π½ΠΈΠΆΠ΅.

    • Display - ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ способ Β«Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΒ» дисплСй. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ тСкст.

    • Scroll - дСмонстрируСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ тСкста Π² Ρ€ΡƒΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

    • SerialDisplay - ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π° экранС тСкст, Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹ΠΉ Π² ΠΎΠΊΠ½Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π° (Ρ‚.Π΅. тСкст, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉΡΡ Ρ‡Π΅Ρ€Π΅Π· сСрийный ΠΏΠΎΡ€Ρ‚).
    • setCursor - заполняСт дисплСй Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, дСмонстрируя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ установки курсора Π² Π»ΡŽΠ±ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ экрана.
    • TextDirection - дСмонстрируСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° тСкста (с ΠΏΡ€Π°Π²Π° Π½Π°Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ).

Рассмотрим Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, возмоТности ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ эти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

lcd.autoscroll()

ПослС Π²Ρ‹Π·ΠΎΠ²Π° этой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, тСкст Π½Π° экранС Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ. Для остановки ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ, слСдуСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ lcd.noAutoscroll() .

lcd.blink()

ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ курсор ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄ ΠΌΠΈΠ³Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ слСдуСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ lcd.noBlink()

lcd.cursor()

ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ курсор ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄ ΠΌΠΈΠ³Π°ΡŽΡ‰Π΅ΠΉ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚Ρ‹. Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ слСдуСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ lcd.noΠ‘ursor() . ΠšΡƒΡ€ΡΠΎΡ€ снова станСт Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ.

lcd.createChar()

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π² ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов экрана (Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ CGRAM) символ, описанный Π² Π²ΠΈΠ΄Π΅ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ массива. Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° пСрСдаётся Π½ΠΎΠΌΠ΅Ρ€ символа ΠΈ массив Π±Π°ΠΉΡ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ символ. ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° этом Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. ВнСсти Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ дисплСя ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ восьми символов. Для добавлСния своСго символа Π½ΡƒΠΆΠ½ΠΎ:

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ массив, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ символ.
  2. Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ символ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ дисплСя, присвоив Π΅ΠΌΡƒ Π½ΠΎΠΌΠ΅Ρ€ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ символов. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ нуля Π΄ΠΎ сСми.
  3. ВывСсти символ Π½Π° экран с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ lcd.write() (Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с lcd.print() ), Π² качСстС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ символа.

Π‘Π°Π³ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ особСнности Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Ρ‹Π»ΠΈΠ»ΠΈΡΡŒ Π² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вывСсти Π½Π° экран символ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 0 (ноль). ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ повстрСчав строку lcd.write(0) выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ: Β«call of overloaded β€˜write(int)’ is ambiguous Β«. ИмСнно такая строка встрСчаСтся Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ CustomCharacter Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ стандартный ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

CustomCharacter.ino: In function β€˜void setup()’: CustomCharacter:115: error: call of overloaded β€˜write(int)’ is ambiguous /home/nazarovd/arduino-1.0.5/libraries/LiquidCrystal/LiquidCrystal.h:82: note: candidates are: virtual size_t LiquidCrystal::write(uint8_t) /home/nazarovd/arduino-1.0.5/hardware/arduino/cores/arduino/Print.h:49: note: size_t Print::write(const char*)

CustomCharacter . ino : In function β€˜void setup () ’:

CustomCharacter : 115 : error : call of overloaded β€˜write (int ) ’is ambiguous

/ home / nazarovd / arduino - 1.0.5 / libraries / LiquidCrystal / LiquidCrystal . h : 82 : note : candidates are : virtual size_t LiquidCrystal :: write (uint8_t )

/ home / nazarovd / arduino - 1.0.5 / hardware / arduino / cores / arduino / Print . h : 49 : note : size_t Print :: write (const char * )

Для устранСния ошибки достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ строку lcd.write(0 ) Π½Π° lcd.write((byte)0 ).
Π’Π΅ΠΏΠ΅Ρ€ΡŒ нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ созданию своСго символа. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° дисплСй символ рубля .

// ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ #include ; // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ дисплСй LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // ΠžΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ свой символ. // ΠŸΡ€ΠΎΡΡ‚ΠΎ "рисуСм" символ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ // Π•Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π½Π° экран окаТутся Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, Π½ΡƒΠ»ΠΈ - Π½Π΅ Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ byte rubl = { 0b00000, 0b01110, 0b01001, 0b01001, 0b01110, 0b01000, 0b11110, 0b01000, }; void setup() { // записываСм свой символ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ экрана // Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π½ΠΎΠΌΠ΅Ρ€ символа // ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ массив, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ наш символ lcd.createChar(0, rubl); // настраиваСм дисплСй lcd.begin(16, 2); } void loop() { // устанавливаСм курсор Π² Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ΄ экрана lcd.setCursor(0,0); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ символ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ноль Π½Π° экран lcd.write((byte)0); // Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ 10 сСкунд delay(10000); }

// ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ

#include ;

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ дисплСй

LiquidCrystal lcd (12 , 11 , 5 , 4 , 3 , 2 ) ;

ВсС Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСктронного устройства Π΅ΡΡ‚ΡŒ экран, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΎ Π΄Π°Π΅Ρ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ Π²ΡΡΠΊΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. MP3-ΠΏΠ»Π΅Π΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚Ρ€Π΅ΠΊΠ°, ΠΏΡƒΠ»ΡŒΡ‚ ΠΊΠ²Π°Π΄Ρ€ΠΎΠΊΠΎΠΏΡ‚Π΅Ρ€Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Ρ‚Π½ΡƒΡŽ Ρ‚Π΅Π»Π΅ΠΌΠ΅Ρ‚Ρ€ΠΈΡŽ, Π΄Π°ΠΆΠ΅ ΡΡ‚ΠΈΡ€Π°Π»ΡŒΠ½Π°Ρ машина Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй врСмя Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° стирки, Π° Π½Π° смартфонС Π²ΠΎΠΎΠ±Ρ‰Π΅ размСщаСтся Ρ†Π΅Π»Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ стол ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°!

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΌΡƒ устройству Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ нСбольшой дисплСйчик πŸ™‚ ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ простыС элСктронныС часы! А Π² качСствС Ρ‚Π°Π±Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ распространСнный ΠΈ Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ТидкокристалличСский дисплСй 1602. Π’ΠΎΡ‚ прямо Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅:

ΠšΡ€ΠΎΠΌΠ΅ 16Ρ…2, достаточно популярным считаСтся ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ дисплСй 20Ρ…4 (Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ строки ΠΏΠΎ 20 символов), Π° Ρ‚Π°ΠΊΠΆΠ΅ графичСский дисплСй с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 128Ρ…64 Ρ‚ΠΎΡ‡Π΅ΠΊ. Π’ΠΎΡ‚ ΠΎΠ½ΠΈ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ…:

1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ символьного Π–Πš дисплСя 1602

Π£ дисплСя 1602 Π΅ΡΡ‚ΡŒ 16 Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ². ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ слСва-Π½Π°ΠΏΡ€Π°Π²ΠΎ, Ссли ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. Иногда Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, Ρ‚ΠΈΠΏΠ°: DB0, DB1, EN ΠΈ Ρ‚.ΠΏ. А ΠΈΠ½ΠΎΠ³Π΄Π° просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½ΠΎΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°. Π’ любом случаС, список Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² всСгда ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ:

1 β€” Β«GNDΒ», зСмля (минус питания)ΝΎ
2 β€” Β«VccΒ»,Β­ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ +5Π’ΝΎ
3 β€” Β«VEEΒ», контраст;
4 β€” Β«RSΒ», Π²Ρ‹Π±ΠΎΡ€ рСгистра;
5 β€” Β«R/WΒ», Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (запись/Ρ‡Ρ‚Π΅Π½ΠΈΠ΅)ΝΎ
6 β€” Β«ENΒ», синхронизация;
7-14 β€” Β«DB0Β­Β», Β«DB1Β», .., Β«DB7β€³Β­- шина Π΄Π°Π½Π½Ρ‹Ρ…ΝΎ
15 β€” Π°Π½ΠΎΠ΄ подсвСтки (+5Π’);
16 β€” ΠΊΠ°Ρ‚ΠΎΠ΄ подсвСтки (зСмля).

Π›ΠΈΠ½ΠΈΠΈ VEE, RS ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… DB4, DB5, DB6, DB7 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π›ΠΈΠ½ΠΈΡŽ Β«R/WΒ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΊ Β«Π·Π΅ΠΌΠ»Π΅Β» ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΌ потрСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ функция записи Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ дисплСя). ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΡƒ ΠΏΠΎΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, с этим, я полагаю, Π²Ρ‹ сами Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ πŸ™‚

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дисплСя ΠΊ Ардуино Π£Π½ΠΎ

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΌΠ°ΠΊΠ΅Ρ‚Π°

На всякий случай Π΅Ρ‰Π΅ ΠΈ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠΈ:

Π–Πš дисплСй 1602 1 2 4 6 11 12 13 14 15 16
Ардуино Π£Π½ΠΎ GND +5V 4 5 6 7 8 9 +5V GND

2. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Β«Hello, world!Β»

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π–Πš дисплСями Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Ρ‚ΠΈΠΏΠΎΠ², Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Arduino IDE имССтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LiquidCrystal . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, запишСм ΠΏΠ΅Ρ€Π²ΠΎΠΉ строчкой нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

LiquidCrystal lcd(4, 5, 6, 7, 8, 9)ΝΎ

Π—Π΄Π΅ΡΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° β€” это Π²Ρ‹Π²ΠΎΠ΄Ρ‹ RS ΠΈ EN, Π° ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ β€” Π»ΠΈΠ½ΠΈΠΈ ΡˆΠΈΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… DB4-DB7.

Lcd.begin(16, 2);

Напоминаю, Π² нашСм дисплСС имССтся Π΄Π²Π΅ строки, ΠΏΠΎ 16 символов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ.

НаконСц, для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста Π½Π°ΠΌ понадобится простая функция Β«printΒ». Π’Ρ‹Π²ΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ всСм извСстной Ρ„Ρ€Π°Π·Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Lcd.print("Hello, world!")ΝΎ

ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

#include LiquidCrystal lcd(4, 5, 6, 7, 8, 9); void setup(){ lcd.begin(16, 2); lcd.print("Hello, world!"); } void loop(){ }

Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π΅Ρ‘ Π½Π° Ардуино Π£Π½ΠΎ, ΠΈ смотрим Ρ‡Ρ‚ΠΎ творится Π½Π° дисплСС. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΠΈ основных ситуации πŸ™‚

1) На дисплСС отобразится надпись Β«Hello, world!Β». Π—Π½Π°Ρ‡ΠΈΡ‚ Π²Ρ‹ всС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ, ΠΈ контраст ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ чудСсным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ оказался ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСн. РадуСмся, ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅.

2) На дисплСС отобразится Ρ†Π΅Π»Ρ‹ΠΉ ряд Ρ‡Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² β€” трСбуСтся настройка контраста! ИмСнно для этого ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Ρ†Π΅ΠΏΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ с Ρ€ΡƒΡ‡ΠΊΠΎΠΉ. ΠšΡ€ΡƒΡ‚ΠΈΠΌ Π΅Π³ΠΎ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ края, Π΄ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ, Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎΠΊΠ° Π½Π° дисплСС Π½Π΅ появится чСткая надпись.

3) Π”Π²Π° ряда Ρ‡Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ². Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°ΠΏΡƒΡ‚Π°Π»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚Ρ€ΠΈΠΆΠ΄Ρ‹ всС ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°. Если Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ β€” попроситС ΠΊΠΎΡ‚Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ!

3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ часы

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠ³Π΄Π° дисплСй Ρ‚ΠΎΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ нашС Π½Π΅Ρ…ΠΈΡ‚Ρ€ΠΎΠ΅ устройство Π² настоящиС элСктронныС часы.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Для Π²Ρ‹Π²ΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π°ΠΌ потрСбуСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Β«TimeΒ». Если ΠΎΠ½Π° Π΅Ρ‰Π΅ Π½Π΅ установлСна, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² ΠΏΠΎ ссылкС . ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π΅Π΅:

#include

Π—Π°Ρ‚Π΅ΠΌ установим Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«setTimeΒ»:

SetTime(23, 59, 59, 12, 31, 2015)ΝΎ

Π—Π΄Π΅ΡΡŒ всС понятно: часы, ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, сСкунды, мСсяц, число, Π³ΠΎΠ΄.

Для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΡƒΡ‡Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • year() β€” Π²Π΅Ρ€Π½Π΅Ρ‚ Π½Π°ΠΌ Π³ΠΎΠ΄;
  • month()Β­ β€” мСсяц;
  • day() Β­- дСнь;
  • hour() Β­- час;
  • minute() β€” Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ;
  • second() -Β­ сСкунду.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΠΎΡ‚ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ Ρ„Π°ΠΊΡ‚. Если ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство символов Π² Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ записи Π΄Π°Ρ‚Ρ‹: Β«31.12.2015 23:59:59Β», ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ 19. А Ρƒ нас всСго 16! НС Π²Π»Π°Π·ΠΈΡ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π² ΠΎΠ΄Π½Ρƒ строчку.

Π Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ β€” Β«setCursorΒ». Π­Ρ‚Π° функция устанавливаСт курсор Π² Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. НапримСр:

Lcd.setCursor(0,1);

Установит курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строчки. ΠšΡƒΡ€ΡΠΎΡ€ β€” это мСсто символа, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начнСтся Π²Ρ‹Π²ΠΎΠ΄ тСкста ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«printΒ». Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Ρ‚Ρ‹ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строчкС, Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ.

Π‘ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всС ясно. ΠžΡΡ‚Π°Π»ΠΈΡΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ. НапримСр, послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ заполнСния дисплСя, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΅Π³ΠΎ Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Β«clear()Β»:

Lcd.clear();

А Π΅Ρ‰Π΅ Π½Π°ΠΌ Π½Π΅Ρ‚ смысла Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° дисплСй Ρ‡Π°Ρ‰Π΅ Ρ‡Π΅ΠΌ Ρ€Π°Π· Π² сСкунду, поэтому ΠΌΠ΅ΠΆΠ΄Ρƒ двумя итСрациями сдСлаСм ΠΏΠ°ΡƒΠ·Ρƒ Π² 1000 миллисСкунд.

Π˜Ρ‚Π°ΠΊ, слоТив всС вмСстС, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

#include #include LiquidCrystal lcd(4, 5, 6, 7, 8, 9); void setup(){ lcd.begin(16, 2); setTime(7,0,0,1,10,2015); // 7 ΡƒΡ‚Ρ€Π°, дСсятого января 2015 Π³ΠΎΠ΄Π° } void loop(){ lcd.clear(); lcd.print(day()); lcd.print("."); lcd.print(month()); lcd.print("."); lcd.print(year()); lcd.setCursor(0, 1); lcd.print(hour()); lcd.print(":"); lcd.print(minute()); lcd.print(":"); lcd.print(second()); delay(1000); }

Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ скСтч Π½Π° Ардуино Π£Π½ΠΎ, ΠΈ наблюдаСм Π·Π° Ρ…ΠΎΠ΄ΠΎΠΌ часиков! πŸ™‚ Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ знания, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π°Ρ‚ΡŒ наши часы Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊΠ°. ВсСго-Ρ‚ΠΎ Π½Π° всСго потрСбуСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ Π·ΡƒΠΌΠΌΠ΅Ρ€ πŸ™‚

БущСствуСт большоС количСсвто разновидностСй тСкстовых, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… Π΅Ρ‰Ρ‘ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…, ТидкокристалличСских экранов. НаиболСС распространСны дисплСи Π½Π° Π±Π°Π·Π΅ Ρ‡ΠΈΠΏΠΎΠ² HD44780 ΠΎΡ‚ Hitachi, KS0066 ΠΎΡ‚ Samsung ΠΈΠ»ΠΈ совмСстимых с Π½ΠΈΠΌΠΈ. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌΠΈ экранами сущСствуСт стандартная Arduino-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Liquid Crystal .

К Ρ‚Π°ΠΊΠΈΠΌ дисплСям относятся Π² частности тСкстовыС экраны ΠΎΡ‚ ΠœΡΠ»Ρ‚ . Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ описываСтся схСма ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ этого экрана, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΈ для мноТСства Π΄Ρ€ΡƒΠ³ΠΈΡ… тСкстовых дисплССв.

Π‘Ρ‚Π°Ρ‚ΡŒΡ описываСт ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΌΡƒ описанию вашСго дисплСя:

НСобходимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

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

Π—Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ экран Π½Π° breadboard"Π΅ ΠΈ ΠΏΠΎΠ΄Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊ Ρ€Π΅Π»ΡŒΡΠ°ΠΌ питания breaboard"Π° ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ +5 Π’ ΠΈ зСмлю с Arduino.

ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ зСмля понадобятся Π½Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, поэтому ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Ρ€Π΅Π»ΡŒΡΡ‹.

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ подсвСтки

Ѐоновая подсвСтка дисплСя - это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€, Π½Π΅ связанный с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°Π² +5 Π’ Π½Π° 15-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ дисплСя ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ² 16-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΊ Π·Π΅ΠΌΠ»Π΅. Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ² эти Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π΅Π»ΡŒΡΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Arduino ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ дисплСй засвСтился.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… модСлях нумСрация ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ просто справа-Π½Π°Π»Π΅Π²ΠΎ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π΄ΠΎ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΎΠ³ΠΎ, Π° нСсколько Π±ΠΎΠ»Π΅Π΅ Ρ…ΠΈΡ‚Ρ€ΠΎ. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° экранС 16Γ—2 ΠΎΡ‚ ΠœΡΠ»Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ физичСски находится Π½Π° 14-ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½Π° 13-ΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ справа-Π½Π°Π»Π΅Π²ΠΎ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 14-Π³ΠΎ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Π° 15-ΠΉ ΠΈ 16-ΠΉ располоТСны справа. НумСрация ΠΎΠΊΠΎΠ»ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² дисплСя ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ.

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ питания знакосинтСзатора

    ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ - это зСмля. Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ с Ρ€Π΅Π»ΡŒΡΠΎΠΉ Π·Π΅ΠΌΠ»ΠΈ.

    Π’Ρ‚ΠΎΡ€ΠΎΠΉ - ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅. Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ с Ρ€Π΅Π»ΡŒΡΠΎΠΉ +5 Π’.

    Π’Ρ€Π΅Ρ‚ΠΈΠΉ - ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ. Для ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ максимально контрастного изобраТСния соСдинитС Π΅Π³ΠΎ с Ρ€Π΅Π»ΡŒΡΠΎΠΉ Π·Π΅ΠΌΠ»ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π½Π° этот ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ напряТСниС ΠΎΡ‚ 0 Π΄ΠΎ 5 Π’, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ Π²Ρ‹ΡˆΠ΅, Ρ‚Π΅ΠΌ тусклСС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ вмСстС с этим снизится энСргопотрСблСниС. Для возмоТности ΠΏΠ»Π°Π²Π½ΠΎΠΉ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ контрастности ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π½Π° этот ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ сигнал ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€Π°.

ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ссли Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Arduino, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ знакомСста. Π’ зависимости ΠΎΡ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ² тСкста ΠΈ подсвСтки ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ яркими ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ Π΅Π΄Π²Π° Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ: Π² любом случаС, тСкст Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡˆΠΈΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Для ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Arduino ΠΈ экраном Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π»ΠΈΠ½ΠΈΠΉ взаимодСйствия:

    2 или 3 для командования дисплССм

    4 ΠΈΠ»ΠΈ 8 для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠΎΠ΄ΠΎΠ² символов ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ занятыми окаТутся ΠΎΡ‚ 6-Ρ‚ΠΈ Π΄ΠΎ 11-Ρ‚ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΎΡ‚ ΠΎΠ±ΠΎΠΈΡ… устройств. Если Π²Π°ΠΌ Π½Π΅ трСбуСтся ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ с дисплСя, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сцСнариСв использования, для ΠΊΠΎΠΌΠ°Π½Π΄ понадобится 2 Π»ΠΈΠ½ΠΈΠΈ.

Если ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ обновлСния Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊ ΠΆΠ΅ Π½Π΅ являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… достаточно 4-Ρ… Π»ΠΈΠ½ΠΈΠΉ.

Π˜Ρ‚Π°ΠΊ, для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дисплСя достаточно ΠΈΡΡ‚ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 6 Π»ΠΈΠ½ΠΈΠΉ, 6 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π½Π° Arduino. Рассмотрим ΠΈΠΌΠ΅Π½Π½ΠΎ этот сцСнарий.

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, Π½Π°ΠΌ Π½Π΅ Π·Π° Ρ‡Π΅ΠΌ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ с дисплСя, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π² Π½Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ соСдиним 5-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ дисплСя, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Ρ‹Π±ΠΎΡ€ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись с Ρ€Π΅Π»ΡŒΡΠΎΠΉ Π·Π΅ΠΌΠ»ΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «всСгда ΠΏΠΈΡΠ°Ρ‚ΡŒΒ».

Π—Π°Ρ‚Π΅ΠΌ, соСдиняСм Arduino ΠΈ экран нашими 6-ю линиями ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ. КакиС ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ Π½Π° Arduino Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния: ΠΌΡ‹ Π·Π°Π΄Π°Π΄ΠΈΠΌ ΠΈΡ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π½ΠΎ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° такая конфигурация:

    6-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ дисплСя - 5-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Arduino. Π­Ρ‚ΠΎ линия Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ. Π˜Π·Π²Π΅ΡΡ‚Π½Π°Ρ, ΠΊΠ°ΠΊ E ΠΈΠ»ΠΈ Enable. Когда эта линия становится Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ, дисплСй исполняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ символ с Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

    11-ΠΉ, 12-ΠΉ, 13-ΠΉ, 14-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ дисплСя - 10-ΠΉ, 11-ΠΉ, 12-ΠΉ, 13-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Arduino соотвСтствСнно. Π­Ρ‚ΠΎ Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ ΠΊΠ°ΠΊ DB4, DB5, DB6, DB7.

Π­ΠΊΡ€Π°Π½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈ Π³ΠΎΡ‚ΠΎΠ² ΠΊ ΠΏΡ€ΠΈΡ‘ΠΌΡƒ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для Arduino.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста с Arduino ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ всСго Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ встроСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Liquid Crystal . Для Π²Ρ‹Π²ΠΎΠ΄Π° привСтствия ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠ΄ΠΎΠΌ Π²Ρ€ΠΎΠ΄Π΅ этого:

Hello.pde #include lcd.begin (16 , 2 ) ; // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку lcd.print ("Hello world!" ) ; // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 0, строку 1. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° // самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля lcd.setCursor (0 , 1 ) ; // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку lcd.print ("foo bar baz" ) ; } void loop() { }

Всё довольно просто ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ понятно ΠΈΠ· ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

ΠšΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π°

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ относится ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ дисплСям ΠΎΡ‚ ΠœΡΠ»Ρ‚. ΠšΠΈΡ‚Π°ΠΉΡΠΊΠΈΠ΅ ΠΈ ЕвропСйскиС Π°Π½Π°Π»ΠΎΠ³ΠΈ вряд Π»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π² своём Π½Π°Π±ΠΎΡ€Π΅ символов ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° дисплСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ± этом ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π’Ρ‹Π²ΠΎΠ΄ русских Π±ΡƒΠΊΠ² Π½Π΅ совсСм Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»Π΅Π½: Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ lcd.print("Вася") . Π­Ρ‚ΠΎ связано с понятиСм ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π’Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ символу соотвСтствуСт ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€ΠΈ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ссли строка содСрТит ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ сконвСртирована Π² ΠΊΠΎΠ΄Ρ‹ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ utf-8, cp-1251 ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π² зависимости ΠΎΡ‚ настроСк компилятора. Π­ΠΊΡ€Π°Π½ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² собствСнной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅.

Π’Π°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΡƒΠΊΠ²Π΅ Β«Π―Β» соотвСтствуСт ΠΊΠΎΠ΄ B1 Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΉ систСмС. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½Π° экран строку Β«Π―ndexΒ», Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² явном Π²ΠΈΠ΄Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ \x## Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² строку ΠΊΠΎΠ΄ символа:

Lcd.print ("\xB1 ndex" ) ;

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ символы ΠΈ явныС ΠΊΠΎΠ΄Ρ‹ ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. ЕдинствСнный нюанс Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ компилятор Π² строкС Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ \x , ΠΎΠ½ считываСт Π·Π° Π½ΠΈΠΌ всС символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ разрядами ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΉ систСмы Π΄Π°ΠΆΠ΅ Ссли ΠΈΡ… большС Π΄Π²ΡƒΡ…. Из-Π·Π° этого Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° 0-9, a-f слСдом Π·Π° Π΄Π²ΡƒΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ символа: это Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π΄Π²Π΅ строки записанныС рядом ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π’Π°ΠΊ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Β«Π―eeeΒ»:

Lcd.print ("\xB1 eee" ) ; // ошибка lcd.print ("\xB1 " "eee" ) ; // ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΎΡ‚ АмпСрки», использовался ΠΊΠΎΠ΄:

cyrillic.pde #include LiquidCrystal lcd(4 , 5 , 10 , 11 , 12 , 13 ) ; void setup() { lcd.begin (16 , 2 ) ; lcd.print (" \xA8 p\xB8 \xB3 " "e\xBF " ) ; lcd.setCursor (0 , 1 ) ; lcd.print (" o\xBF A\xBC \xBE " "ep\xBA \xB8 " ) ; } void loop() { }

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ страниц Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°

ДисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² памяти Π΄Π²Π΅ страницы Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ установлСна нулСвая страница. Для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ страницы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ command(0x101010), Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ - command(0x101000).

ДисплСй Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ символы с Ρ€Π°Π·Π½Ρ‹Ρ… страниц.

Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ строка Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ страницы.

change_page.ino // ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal #include // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-экран, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ // для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Arduino Π² порядкС: // RS, E, DB4, DB5, DB6, DB7 LiquidCrystal lcd(4 , 5 , 10 , 11 , 12 , 13 ) ; void setup() { // устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство столбцов ΠΈ строк) экрана lcd.begin (16 , 2 ) ; } void loop() { // устанавливаСм 0 станицу Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° (стоит ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) lcd.command (0b101000 ) ; // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку lcd.print (" \x9b \x9c \x9d \x9e \x9f " ) ; // ΠΆΠ΄Ρ‘ΠΌ 1 сСкунду delay(1000 ) ; // устанавливаСм 1 станицу Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° lcd.command (0b101010 ) ; // ΠΆΠ΄Ρ‘ΠΌ 1 сСкунду delay(1000 ) ; // ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ дисплСй lcd.clear () ; }