ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ ΠΊ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρƒ. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ курс. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ lcd ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

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.

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

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

  • Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ дисплСя ΠΎΡ‚ довольно извСстного ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Π° Wavgat ΠΏΠΎ Ρ†Π΅Π½Π΅ Π½ΠΈΠΆΠ΅ 100 Ρ€ΡƒΠ±Π»Π΅ΠΉ.
  • ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ экрана ΠΈ i2c Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° (Π½ΡƒΠΆΠ½ΠΎ ΡΠΏΠ°ΡΡ‚ΡŒ самим). Π¦Π΅Π½Π° – Π½ΠΈΠΆΠ΅ 200 Ρ€ΡƒΠ±Π»Π΅ΠΉ
  • Π¨ΠΈΠ»Π΄ i2c экрана – ΠΌΠΎΠ΄ΡƒΠ»ΡŒ LCD 1602 с ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠ»Π°Ρ‚ΠΎΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ .

ОписаниС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° 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 Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΏΠΈΠ½Π°. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΌ. ΠŸΠ»Π°Ρ‚Π° Π·Π° удобство – Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² использовании Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ модуля – ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. На наш взгляд, совсСм Π½Π΅ высокая Ρ†Π΅Π½Π° Π·Π° удобство ΠΈ ΠΌΡ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ

ДСйствиС ΡƒΠ»ΡŒΡ‚Ρ€Π°Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ Π΄Π°Π»ΡŒΠ½ΠΎΠΌΠ΅Ρ€Π° HC-SR04 основано Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ эхолокации. Он ΠΈΠ·Π»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹ Π² пространство ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½Ρ‹ΠΉ ΠΎΡ‚ прСпятствия сигнал. По Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ распространСния Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Π²ΠΎΠ»Π½Ρ‹ ΠΊ ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΠΈΡŽ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ опрСдСляСтся расстояниС Π΄ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
Запуск Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Π²ΠΎΠ»Π½Ρ‹ начинаСтся с ΠΏΠΎΠ΄Π°Ρ‡ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 10 микросСкунд Π½Π° Π½ΠΎΠΆΠΊΡƒ TRIG Π΄Π°Π»ΡŒΠ½ΠΎΠΌΠ΅Ρ€Π°. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡ заканчиваСтся, Π΄Π°Π»ΡŒΠ½ΠΎΠΌΠ΅Ρ€ ΠΈΠ·Π»ΡƒΡ‡Π°Π΅Ρ‚ Π² пространство ΠΏΠ΅Ρ€Π΅Π΄ собой ΠΏΠ°Ρ‡ΠΊΡƒ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ² частотой 40 ΠΊΠ“Ρ†. Π’ это ΠΆΠ΅ врСмя запускаСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ опрСдСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ сигнала, Π° Π½Π° Π½ΠΎΠΆΠΊΠ΅ ECHO Π΄Π°Π»ΡŒΠ½ΠΎΠΌΠ΅Ρ€Π° появляСтся логичСская Π΅Π΄ΠΈΠ½ΠΈΡ†Π°. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΡƒΠ»Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½Ρ‹ΠΉ сигнал, Π½Π° Π²Ρ‹Π²ΠΎΠ΄Π΅ ECHO появляСтся логичСский ноль. По Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ этого сигнала ("Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° эхо" Π½Π° рисункС) опрСдСляСтся расстояниС Π΄ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСрСния расстояния Π΄Π°Π»ΡŒΠ½ΠΎΠΌΠ΅Ρ€Π° HC-SR04 - Π΄ΠΎ 4 ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 0,3 см. Π£Π³ΠΎΠ» наблюдСния - 30 градусов, эффСктивный ΡƒΠ³ΠΎΠ» - 15 градусов. Π’ΠΎΠΊ потрСблСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ оТидания 2 мА, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ - 15 мА.

ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ ΡƒΠ»ΡŒΡ‚Ρ€Π°Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ Π΄Π°Π»ΡŒΠ½ΠΎΠΌΠ΅Ρ€Π° осущСствляСтся напряТСниСм +5 Π’. Π”Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΏΠΎΡ€Ρ‚Π°ΠΌ Arduino, ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΊ 11 ΠΈ 12.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ напишСм скСтч, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ расстояниС Π΄ΠΎ прСпятствия ΠΈ выводящий Π΅Π³ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚. Π‘Π½Π°Ρ‡Π°Π»Π° Π·Π°Π΄Π°Ρ‘ΠΌ Π½ΠΎΠΌΠ΅Ρ€Π° Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² TRIG ΠΈ ECHO - это 12 ΠΈ 11 ΠΏΠΈΠ½Ρ‹. Π—Π°Ρ‚Π΅ΠΌ объявляСм Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄, Π° эхо - ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ Π½Π° скорости 9600 Π±ΠΎΠ΄. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° loop() считываСм Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠΎΡ€Ρ‚.
Ѐункция getEchoTiming() Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠΌΠΏΡƒΠ»ΡŒΡ запуска. Она ΠΊΠ°ΠΊ Ρ€Π°Π· создаёт Ρ‚ΠΎΠΊ 10 мксСк ΠΈΠΌΠΏΡƒΠ»ΡŒΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ для Π½Π°Ρ‡Π°Π»Π° излучСния Π΄Π°Π»ΡŒΠ½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² пространство. Π”Π°Π»Π΅Π΅ ΠΎΠ½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ врСмя ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Π²ΠΎΠ»Π½Ρ‹ Π΄ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° эха.
Ѐункция getDistance() рассчитываСт Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ Π΄ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Из школьного курса Ρ„ΠΈΠ·ΠΈΠΊΠΈ ΠΌΡ‹ ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ расстояниС Ρ€Π°Π²Π½ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° врСмя: S = V*t. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π²ΡƒΠΊΠ° Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅ 340 ΠΌ/сСк, врСмя Π² микросСкундах ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, это "duratuion". Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ врСмя Π² сСкундах, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° 1.000.000. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π²ΡƒΠΊ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ расстояниС - Π΄ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ - Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ расстояниС ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ. Π’ΠΎΡ‚ ΠΈ получаСтся, Ρ‡Ρ‚ΠΎ расстояниС Π΄ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° S = 34000 см/сСк * duration / 1.000.000 сСк / 2 = 1,7 см/сСк / 100, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈ написали Π² скСтчС. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ умноТСния ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ выполняСт быстрСС, Ρ‡Π΅ΠΌ дСлСния, поэтому "/ 100" я Π·Π°ΠΌΠ΅Π½ΠΈΠ» Π½Π° эквивалСнтноС "* 0,01".

Π’Π°ΠΊΠΆΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ»ΡŒΡ‚Ρ€Π°Π·Π²ΡƒΠΊΠΎΠ²Ρ‹ΠΌ Π΄Π°Π»ΡŒΠ½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ написано мноТСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. НапримСр, Π²ΠΎΡ‚ эта: http://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ происходит стандартно: ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ, Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ libraries , которая находится Π² ΠΏΠ°ΠΏΠΊΠ΅ с Arduino IDE. ПослС этого Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.
Установив Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, напишСм Π½ΠΎΠ²Ρ‹ΠΉ скСтч. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚ΠΎΡ‚ ΠΆΠ΅ - Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° выводится дистанция Π΄ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² сантимСтрах. Если Π² скСтчС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ float dist_cm = ultrasonic.Ranging(INC); , Ρ‚ΠΎ дистанция Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² Π΄ΡŽΠΉΠΌΠ°Ρ….

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΊ Arduino ΡƒΠ»ΡŒΡ‚Ρ€Π°Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Π΄Π°Π»ΡŒΠ½ΠΎΠΌΠ΅Ρ€ HC-SR04 ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ с Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами: с использованиСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π±Π΅Π·.
ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ количСство ΠΊΠΎΠ΄Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сокращаСтся ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Π°ΠΌ Π½Π΅ приходится Π²Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π² тонкости Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройства ΠΈ Π²Ρ‹ сразу ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Но Π² этом ΠΆΠ΅ кроСтся ΠΈ нСдостаток: Π²Ρ‹ Ρ…ΡƒΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ устройство ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π² Π½Ρ‘ΠΌ происходят процСссы. Π’ любом случаС, ΠΊΠ°ΠΊΠΈΠΌ способом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ - Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΌ.

БущСствуСт большоС количСсвто разновидностСй тСкстовых, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… Π΅Ρ‰Ρ‘ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…, ТидкокристалличСских экранов. НаиболСС распространСны дисплСи Π½Π° Π±Π°Π·Π΅ Ρ‡ΠΈΠΏΠΎΠ² 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 () ; }

ДисплСи LCD 1602 Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, созданныС Π½Π° Π±Π°Π·Π΅ HD44780 ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π² наши Π΄Π½ΠΈ всё Π΅Ρ‰Ρ‘ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· самых доступных, простых ΠΈ вострСбованных, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ элСктронныС устройства. ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Π² простых, собранных Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π½Π° ΠΊΠΎΠ»Π΅Π½ΠΊΠ΅ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π°Ρ…, Ρ‚Π°ΠΊ ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°Ρ… для приготовлСния ΠΊΠΎΡ„Π΅. ИмСнно с Ρ‚Π°ΠΊΠΈΠΌ дисплССм ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΡˆΠΈΠ»Π΄Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Arduino, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ LCD I2C ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ LCD Keypad Shield.

Данная ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ с изобраТСниями рассказываСт, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ LCD ΠΊ Arduino ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

ДисплСи 1602 ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… исполнСния :

Жёлтая подсвСтка с Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ
- Π»ΠΈΠ±ΠΎ (это Π±Ρ‹Π²Π°Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‡Π°Ρ‰Π΅) синяя подсвСтка с Π±Π΅Π»Ρ‹ΠΌΠΈ.

Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ дисплССв Π½Π° HD44780 ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ самой Ρ€Π°Π·Π½ΠΎΠΉ, Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. НаиболСС распространённыС ΠΈΠ· размСрностСй – 16 Π½Π° 02 (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎ 16 символов Π² Π΄Π²ΡƒΡ… строках) ΠΈΠ»ΠΈ 20 Π½Π° 04. Π‘Π°ΠΌΠΈ ΠΆΠ΅ символы ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² 5 Π½Π° 8 Ρ‚ΠΎΡ‡Π΅ΠΊ.

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ дисплССв Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ дисплССв CTK-ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ). Но такая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° частично Ρ€Π΅ΡˆΠ°Π΅ΠΌΠ°, ΠΈ Π΄Π°Π»Π΅Π΅ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказываСт, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

На дисплСС Π΅ΡΡ‚ΡŒ 16-PIN Ρ€Π°Π·ΡŠΡ‘ΠΌ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ с Ρ‚Ρ‹Π»ΡŒΠ½ΠΎΠΉ стороны ΠΏΠ»Π°Ρ‚Ρ‹ , ΠΎΠ½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

1 (VSS) – ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π° минус для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.
2 (VDD) – ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π° плюс для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.
3 (VO) – настройки управлСния контрастом.
4 (RS) – Π²Ρ‹Π±ΠΎΡ€ для рСгистра.
5 (R/W) – Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись, Π² частности, запись ΠΏΡ€ΠΈ соСдинСнии с Π·Π΅ΠΌΠ»Ρ‘ΠΉ.
6 (E) – активация (enable).
7–10 (DB0-DB3) – младшиС Π±ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π²ΠΎΡΡŒΠΌΠΈΠ±ΠΈΡ‚Π½ΠΎΠ³ΠΎ интСрфСйса.
11–14 (DB4-DB7) – ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ ΠΎΡ‚ интСрфСйса
15 (A) – ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½ΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ подсвСтки.
16 (K) – ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚ΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ подсвСтки.

Π¨Π°Π³ 2: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π–Πš-дисплСй

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ дисплСй ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Π‘ΠΏΠ΅Ρ€Π²Π° ΠΏΠΎΠ΄Π°ΠΉΡ‚Π΅ напряТСниС Π½Π° VSS ΠΈ VDD ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, Π·Π°ΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅ подсвСтку (A, K), Π΄Π°Π»Π΅Π΅ настройтС ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ. Для Ρ‚Π°ΠΊΠΈΡ… настроСк ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ с 10 кОм, Ρ„ΠΎΡ€ΠΌΠ° Π΅Π³ΠΎ Π½Π΅ Π²Π°ΠΆΠ½Π°. На ΠΊΡ€Π°ΠΉΠ½ΠΈΠ΅ Π½ΠΎΠ³ΠΈ ΠΏΠΎΠ΄Π°ΡŽΡ‚ +5V ΠΈ GND, Π° Π½ΠΎΠΆΠΊΡƒ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ с VO Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ.

Когда Π½Π° схСму подаётся ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ контраста, Ссли ΠΎΠ½ настраиваСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° экранС Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ контраст, Π½ΡƒΠΆΠ½ΠΎ Β«ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΒ» с ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. Когда схСма Π±ΡƒΠ΄Π΅Ρ‚ собрана ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ контраст настроСн Π²Π΅Ρ€Π½ΠΎ, вСрхняя строка Π½Π° экранС Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°ΠΌΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ дисплСй Ρ€Π°Π±ΠΎΡ‚Π°Π», примСняСтся встроСнная Π² Arduino IDE срСду ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LiquidCrystal.h, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я Π½Π°ΠΏΠΈΡˆΡƒ Π½ΠΈΠΆΠ΅. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² 8-Π±ΠΈΡ‚Π½ΠΎΠΌ ΠΈ Π² 4-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ лишь младшиС ΠΈ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ (BB0-DB7), Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ – Ρ‚ΠΎΠ»ΡŒΠΊΠΎ младшиС (BB4-DB7).

Но ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ 8-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Π² этом дисплСС – Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, прСимущСства Π² скорости ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ частота обновлСния Ρƒ Π½Π΅Π³ΠΎ всСгда мСньшС 10 Ρ€Π°Π· Π·Π° сСкунду. Π§Ρ‚ΠΎΠ±Ρ‹ выводился тСкст, Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ DB7, DB6, DB5, DB4, E ΠΈ RS ΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈΡ… допустимо ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ ΠΏΠΈΠ½Π°ΠΌ Arduino, Π³Π»Π°Π²Π½ΠΎΠ΅ – Π·Π°Π΄Π°Π½ΠΈΠ΅ Π²Π΅Ρ€Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ΠΊΠΎΠ΄Π΅.

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ символа ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π² памяти ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (всСго Π΄ΠΎ сСми символов). Π―Ρ‡Π΅ΠΉΠΊΠ° Π² рассматриваСмых дисплСях ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π² ΠΏΡΡ‚ΡŒ Π½Π° восСмь Ρ‚ΠΎΡ‡Π΅ΠΊ. Π—Π°Π΄Π°Ρ‡Π° создания символа Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ маску ΠΈ Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΠΈ Π² мСстах, Π³Π΄Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π³ΠΎΡ€Π΅Ρ‚ΡŒ, Π° Π½ΠΎΠ»ΠΈΠΊΠΈ – Π³Π΄Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹.

РассмотрСнная Π²Ρ‹ΡˆΠ΅ схСма ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ всСгда Ρ…ΠΎΡ€ΠΎΡˆΠ°, Ρ‚. ΠΊ. Π½Π° Arduino занимаСтся ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡˆΠ΅ΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ².

Π¨Π°Π³ 3: Π‘Ρ…Π΅ΠΌΠ° ΠΎΠ±Ρ…ΠΎΠ΄Π°

Π˜Π·ΡƒΡ‡ΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это ΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ двумя. НуТСн Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ-ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€ для LCD Π² IIC/I2C. Как ΠΎΠ½ припаиваСтся ΠΊ дисплСю ΠΈ присоСдиняСтся ΠΊ Arduino, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° изобраТСниях Π½ΠΈΠΆΠ΅.

Но Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дСйствуСт лишь со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ LiquidCrystal_I2C1602V1, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π‘Π΅Ρ‚ΠΈ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, послС Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Π¨Π°Π³ 4: Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LiquidCrystal.h

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal.h ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСсурса - . Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½ΠΈΠΆΠ΅ ΠΏΠΎ ссылкам:

Π‘ΠΊΠ΅Ρ‚Ρ‡

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ скачали Π°Ρ€Ρ…ΠΈΠ² Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ LiquidCrystal Π² ΠΏΠ°ΠΏΠΊΠ΅ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ вашСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° установки Arduino.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ скСтч Π² Π€Π°ΠΉΠ» -> ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ -> LiquidCrystal -> HelloWorld_SPI (File -> Examples -> LiquidCrystal -> HelloWorld_SPI).

На этом наш ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΡƒΡ€ΠΎΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½. Π–Π΅Π»Π°Π΅ΠΌ Π²Π°ΠΌ качСствСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²!

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