Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ внСшний Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒ для всСх iOS-устройств, совмСстим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 Π΄ΠΎ 24:00 ΠΏΠ½-ΠΏΡ‚ | c 10:00 Π΄ΠΎ 18:00 сб
0 Comments

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ВСкстовый экран 16Γ—2 [АмпСрка / Π’ΠΈΠΊΠΈ]

ВСкстовый экран 16Γ—2 пригодится для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², отобраТСния простых мСню, подсказок ΠΈ привСтствий.

Π’ΠΈΠ΄Π΅ΠΎΠΎΠ±Π·ΠΎΡ€

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ настройка

ДисплСй MT-16S2H ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста Π½Π° Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π΅ ΠΈ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅.

Π­ΠΊΡ€Π°Π½ ΠΈΠΌΠ΅Π΅Ρ‚ 16 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² для питания Π»ΠΎΠ³ΠΈΠΊΠΈ, взаимодСйствия с ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ элСктроникой ΠΈ подсвСтки.

Π’Ρ‹Π²ΠΎΠ΄ ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ОписаниС
1GNDΠžΠ±Ρ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ (зСмля)
2VccНапряТСниС питания (3,3β€”5 Π’)
3VoΠ£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ
4RSΠ’Ρ‹Π±ΠΎΡ€ рСгистра
5R/WΠ’Ρ‹Π±ΠΎΡ€ Ρ€Π΅ΠΆΠΈΠΌΠ° записи ΠΈΠ»ΠΈ чтСния
6EΠ Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ (Π° Ρ‚Π°ΠΊΠΆΠ΅ строб Π΄Π°Π½Π½Ρ‹Ρ…)
7DB0Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ)(младший Π±ΠΈΡ‚ Π² 8-ΠΌΠΈ Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅)
8DB1Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ)
9DB2Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ)
10DB3Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)(младший Π±ΠΈΡ‚ Π² 4-Ρ… Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅)
11DB4Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)
12DB5Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)
13DB6Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)
14DB7Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)
15+LED+ питания подсвСтки
16–LED– питания подсвСтки

ДисплСй ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…:

  • 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ β€” Π² Π½Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ младшиС ΠΈ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ (DB0–DB7)

  • 4-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ β€” Π² Π½Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ младшиС Π±ΠΈΡ‚Ρ‹ (

    DB4–DB7)

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΡΡŒΠΌΠΈΠ±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π½Π΅ цСлСсообразно. Для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ трСбуСтся Π½Π° 4 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½ΠΎΠ³ΠΈ, Π° Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° ΠΏΠΎ скорости практичСски Π½Π΅Ρ‚.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Π΅

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ дисплСй ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Π΅ Arduino Uno. Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ понадобится Breadboard Half ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Β«ΠΏΠ°ΠΏΠ°-ΠΏΠ°ΠΏΠ°Β».

Π’Ρ‹Π²ΠΎΠ΄ ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Пин Arduino Uno
1 GND GND
2 Vcc 5V
3 Vo GND
4 RS 12
5 R/W GND
6 E 11
7 DB0 β€”
8 DB1 β€”
9 DB2 β€”
10
DB3
β€”
11 DB4 5
12 DB5 4
13 DB6 3
14 DB7 2
15 Vcc 5V
16 GND GND

Аналогично ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ дисплСй ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Iskra JS.

Π’Ρ‹Π²ΠΎΠ΄ ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Пин Iskra JS
1 GND GND
2 Vcc 5V
3 Vo GND
4 RS P12
5 R/W GND
6 E P11
7 DB0 β€”
8 DB1 β€”
9 DB2 β€”
10 DB3 β€”
11 DB4 P5
12 DB5 P4
13 DB6 P3
14 DB7 P2
15 Vcc 5V
16 GND GND

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ для Arduino

Для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с LCD-дисплССм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Liquid Crystal. Π’ Π½Π΅ΠΉ Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ коммСнтариями.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ Π½Π° AVR-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‚Π°ΠΊ ΠΈ с ARM-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ.

Π’Ρ‹Π²ΠΎΠ΄ тСкста

Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ привСтствия, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠ΄ΠΎΠΌ Π²Ρ€ΠΎΠ΄Π΅ этого:

helloWorld.ino
// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal
#include <LiquidCrystal.h>
 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-экран, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ 
// для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Arduino Π² порядкС:
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
void setup()
{
    // устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство столбцов ΠΈ строк) экрана
    lcd.begin(16, 2);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
    lcd.print("Hello world");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 0, строку 1
    // Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(0, 1);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
    lcd.print("Do It Yourself");
}
 
void loop()
{
}

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

БущСствуСт Π΄Π²Π° способа Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π½Π° тСкстовыС дисплСи:

Рассмотрим ΠΎΠ±Π° способа Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°

ДисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² памяти Π΄Π²Π΅ страницы Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… символов ΠΈ Π±ΡƒΠΊΠ². Для Π²Ρ‹Π²ΠΎΠ΄Π° символа Π½Π° дисплСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Π’Π°ΠΊ Π±ΡƒΠΊΠ²Π΅

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

lcd.print("\xB1ndex");

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

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ Π΄Π²Π΅ строки ΠΊΠΎΠ΄Π° для Π²Ρ‹Π²ΠΎΠ΄Π° надписи Β«Π―eeeΒ»:

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° дисплСй сообщСниС Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, АмпСрка!Β»:

helloAmperkaRusCharacterGenerator.ino
// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal
#include <LiquidCrystal.h>
 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-экран, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ 
// для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Arduino Π² порядкС:
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
void setup()
{
    // устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство столбцов ΠΈ строк) экрана
    lcd.begin(16, 2);
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 5, строку 0
    // Π½Π° самом Π΄Π΅Π»Π΅ это пСрвая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(5, 0);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
    lcd.print("\xA8""p""\xB8\xB3""e\xBF");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 3, строку 1
    // Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(3, 1);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
    lcd.print("o\xBF A\xBC\xBE""ep\xBA\xB8");
}
 
void loop()
{
}

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

ДисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² памяти Π΄Π²Π΅ страницы Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ установлСна нулСвая страница. Для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ страницами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ страницы Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ
command(0x101010);
// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницы Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ
command(0x101000);

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

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

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

ΠŸΠΎΠ»Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ экрану.

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LiquidCrystalRus

БовсСм Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ мучатся со Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти русский символ. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ скачайтС ΠΈ установитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystalRus.

Π­Ρ‚ΠΎ копия ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LiquidCrystal с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ русского языка. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠ΄ трансформируСт русскиС символы UTF8 Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ для тСкстового экрана.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ„Ρ€Π°Π·Ρƒ Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, АмпСрка» Π½Π° дисплСй.

helloAmperkaRus.ino
// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystalRus
#include <LiquidCrystalRus.h>
 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-экран, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ 
// для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Arduino Π² порядкС:
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystalRus lcd(12, 11, 5, 4, 3, 2);
 
void setup()
{
    // устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство столбцов ΠΈ строк) экрана
    lcd.begin(16, 2);
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 5, строку 0
    // Π½Π° самом Π΄Π΅Π»Π΅ это пСрвая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(5, 0);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
    lcd.print("ΠŸΡ€ΠΈΠ²Π΅Ρ‚");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 3, строку 1
    // Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(3, 1);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
    lcd.print("ΠΎΡ‚ АмпСрки");
}
 
void loop()
{
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ для Iskra JS

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с LCD-дисплССм ΠΈΠ· срСды Espruino сущСствуСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° HD44780.

Π’Ρ‹Π²ΠΎΠ΄ тСкста

Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ привСтствия, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ скриптом:

hello-world.js
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
// HD44780 β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ТидкокристалличСских Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дисплССв
var lcd = require("HD44780").connect(P12,P11,P5,P4,P3,P2);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
lcd.print("Hello world");
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 0, строку 1
// Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(0, 1);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
lcd.print("Do It Yourself");

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

Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»ΠΈΡ†Ρ‹ Π½Π° дисплСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Iskra JS доступСн Ρ‡Π΅Ρ€Π΅Π· Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π² дисплСй Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°

ДисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² памяти Π΄Π²Π΅ страницы Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… символов ΠΈ Π±ΡƒΠΊΠ². Для Π²Ρ‹Π²ΠΎΠ΄Π° символа Π½Π° дисплСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

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

lcd.print("\xB1ndex");

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

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ Π΄Π²Π΅ строки ΠΊΠΎΠ΄Π° для Π²Ρ‹Π²ΠΎΠ΄Π° надписи Β«Π―eeeΒ»:

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° дисплСй сообщСниС Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, АмпСрка!Β»:

hello-amperka-rus-character-generator.js
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
// HD44780 β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ТидкокристалличСских Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дисплССв
var lcd = require("HD44780").connect(P12,P11,P5,P4,P3,P2);
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 5, строку 0
// Π½Π° самом Π΄Π΅Π»Π΅ это пСрвая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(5, 0);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
lcd.print("\xA8"+"p"+"\xB8\xB3"+"e\xBF");
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 3, строку 1
// Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(3, 1);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
lcd.print("o\xBF"+" A\xBC\xBE"+"ep\xBA\xB8");;

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

ДисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² памяти Π΄Π²Π΅ страницы Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ установлСна нулСвая страница. Для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ страницами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ страницы Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ
command(0x101010);
// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницы Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ
command(0x101000);

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

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

change-page-character-generator.js
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
// HD44780 β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ТидкокристалличСских Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дисплССв
var lcd = require("HD44780").connect(P12,P11,P5,P4,P3,P2);
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ состояния
var state = false;
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 5, строку 0
// Π½Π° самом Π΄Π΅Π»Π΅ это пСрвая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(5, 0);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
lcd.print("\x9b\x9c\x9d\x9e\x9f");
 
setInterval(function() {
  // ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду мСняСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½ΡƒΡŽ состояния
  state = !state;
  // Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ смСны адрСса страницы
  lcdChangePage();
}, 1000);
 
function lcdChangePage () {
  if (state) {
    // устанавливаСм 0 станицу Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° (стоит ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) 
    lcd.write(0b101000, 1);
  } else {
    // устанавливаСм 1 станицу Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°
    lcd.write(0b101010, 1);
  }
}

ΠŸΠΎΠ»Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ экрану.

ΠšΠΎΠΌΠ½Π°Ρ‚Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€

ДисплСй ΡƒΠ΄ΠΎΠ±Π΅Π½ для отобраТСния ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ сСнсоров. Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π·Π°Π΄Π°Ρ‚ΠΊΠΈ Β«Π£ΠΌΠ½ΠΎΠ³ΠΎ Π”ΠΎΠΌΠ°Β», Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Β«ΠΊΠΎΠΌΠ½Π°Ρ‚Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Β».

Π§Ρ‚ΠΎ понадобится

Как ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ

  1. Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ Troyka Shield ΠΈ установитС свСрху Π½Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ β€” Arduino ΠΈΠ»ΠΈ Iskra JS.

  2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· 3-ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΡˆΠ»Π΅ΠΉΡ„ ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠΈΠ½Ρƒ A0. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° получится схСма.
  3. ΠŸΡ€ΠΎΡˆΠ΅ΠΉΡ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅.

Π‘ΠΊΠ΅Ρ‚Ρ‡ для Arduino

thermometerRoom.ino
// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal
#include <LiquidCrystal.h>
 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-экран, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ 
// для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Arduino Π² порядкС:
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
// ΠΏΠΈΠ½ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
#define TEMPERATURE_PIN  A0
 
void setup()
{
  // устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство столбцов ΠΈ строк) экрана
  lcd.begin(16, 2);
}
 
void loop()
{
  // ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ дисплСй
  lcd.clear();
  // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 3, строку 0
  // Π½Π° самом Π΄Π΅Π»Π΅ это пСрвая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
  lcd.setCursor(3, 0);
  // считываСм показания с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
  int sensorADC = analogRead(A0);
  // ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ значСния с АЦП Π² Π²ΠΎΠ»ΡŒΡ‚Ρ‹
  float sensorVoltage = sensorADC * (5.0 / 1023.0);
  // ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π²ΠΎΠ»ΡŒΡ‚Ρ‹ Π² градусы Ρ†Π΅Π»ΡŒΡΠΈΡ
  int temperature = (sensorVoltage - 0.5) * 100;
  // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° дисплСй
  lcd.print("Temp=");
  lcd.print(temperature);
  lcd.print("\x99""C");
  delay(500);
}

Π‘ΠΊΡ€ΠΈΠΏΡ‚ для Iskra JS

thermometerRoom.js
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
// HD44780 β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ТидкокристалличСских Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дисплССв
var lcd = require("HD44780").connect(P12,P11,P5,P4,P3,P2);
 
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
var thermometer = require('@amperka/thermometer')
 .connect(A0);
 
// ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду считываСм Π΄Π°Π½Π½Ρ‹Π΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° дисплСй
setInterval(function() {
  var celsius = thermometer.read('C');
  lcd.setCursor(3, 0);
  lcd.print("Temp="+ celsius.toFixed(0) + "\x99"+"C");
}, 1000);

Π₯арактСристики

  • НапряТСниС питания: 3,3β€”5 Π’

  • ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊ потрСблСния: 1 мА

  • ΠŸΠΎΡ‚Ρ€Π΅Π±Π»ΡΠ΅ΠΌΡ‹ΠΉ Ρ‚ΠΎΠΊ подсвСтки: 100 мА

  • Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡ: 2 строки ΠΏΠΎ 16 символов. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ 5Γ—8 Ρ‚ΠΎΡ‡Π΅ΠΊ

  • Π“Π°Π±Π°Ρ€ΠΈΡ‚Ρ‹: 84Γ—44Γ—13 ΠΌΠΌ

РСсурсы

wiki.amperka.ru

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ LCD (Π–Πš дисплСя) ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Arduino

Π‘Ρ‚Π°Ρ‚ΡŒΡ рассказываСт ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ LCD ΠΊ Arduino, рассмотрСно всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΡ€ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ LCD 1602 ΠΈ LCD i2c.

Π¨Π°Π³ 1. О ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

ДисплСи LCD 1602 Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, созданныС Π½Π° Π±Π°Π·Π΅ HD44780 ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π² наши Π΄Π½ΠΈ всё Π΅Ρ‰Ρ‘ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· самых доступных, простых ΠΈ вострСбованных, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ элСктронныС устройства.

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

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π³Π°Ρ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ с изобраТСниями рассказываСм ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ LCD ΠΊ Arduino ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½Π° дисплСС Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π¨Π°Π³ 2. LCD-дисплСй 1602 для Ардуино

ДисплСи 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) – ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚ΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ подсвСтки.

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

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ дисплСй ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Π‘ΠΏΠ΅Ρ€Π²Π° ΠΏΠΎΠ΄Π°ΠΉΡ‚Π΅ напряТСниС Π½Π° 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 Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ся ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡˆΠ΅ΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ².

Π¨Π°Π³ 4. Π‘Ρ…Π΅ΠΌΠ° ΠΎΠ±Ρ…ΠΎΠ΄Π°

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

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

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

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal.h ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ нашСго сайта Π½Π° этой страницС ΠΈΠ»ΠΈ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСсурса arduino.cc. Но Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½ΠΈΠΆΠ΅ ΠΏΠΎ ссылкам:

Π¨Π°Π³ 5. Π‘ΠΊΠ΅Ρ‚Ρ‡ (ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹)

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ скСтч ΠΏΠΎ адрСсу:

Π€Π°ΠΉΠ» -> ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ -> LiquidCrystal -> HelloWorld_SPI

Π›ΠΈΠ±ΠΎ, Ссли Ρƒ вас мСню Π½Π° английском:

File -> Examples -> LiquidCrystal -> HelloWorld_SPI

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

arduinoplus.ru

Ардуино дисплСй: ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ»Π°Ρ‚Π΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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

Π’ этом ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ пособии ΠΏΠΎ Ардуино LCD Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ интСрфСйс с символами Arduino LCD i2c. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· этого тСкста для создания собствСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° основС Π–Πš-ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°.

Π‘ΡƒΡ‚ΡŒ соСдинСния дисплСя с Ардуино

Display для Аrduino – это ΠΎΠ΄Π½ΠΎ ΠΈΠ· самых простых устройств, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для отобраТСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Однако Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ устройства: графичСскиС ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ экран, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π»Π΅Π³Ρ‡Π΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° экрана, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹:

  • 16Γ—2 ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ – 16 ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ 2 строки;
  • 20Γ—4 символов – 20 ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ 4 строки.

Они Ρ‚Π°ΠΊΠΆΠ΅ доступны Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚Π°Ρ…:

  1. Π—Π΅Π»Π΅Π½Ρ‹Π΅ с Ρ‡Π΅Ρ€Π½Ρ‹ΠΌΠΈ символами.
  2. Π‘ΠΈΠ½ΠΈΠ΅ с Π±Π΅Π»Ρ‹ΠΌΠΈ символами.
  3. ΠšΡ€Π°ΡΠ½Ρ‹Π΅ с Ρ‡Π΅Ρ€Π½Ρ‹ΠΌΠΈ символами.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π·Π΅Π»Π΅Π½Ρ‹Π΅ ΠΈ синиС экраны ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Аrduino display с синим символом 20Γ—4. ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ взаимодСйствуСт с экраном Ρ‡Π΅Ρ€Π΅Π· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΡ‹ задСйствуСм Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с дисплССм ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ.

ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° Π½Π° Π–Πš-дисплСС активируСтся, ΠΊΠΎΠ³Π΄Π° даСтся ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ 5 Π’ ΠΎΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π΄ΠΎ 15 Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΈ Π·Π°Π·Π΅ΠΌΠ»ΡΡŽΡ‰ΠΈΠΌ ΡˆΡ‚Ρ‹Ρ€Π΅ΠΌ 16. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ контрастности сСнсорного дисплСя для Ардуино Π½ΡƒΠΆΠ΅Π½ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ 10K.

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

Для создания дисплСя для Ардуино понадобится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅:

  1. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ардуино ΠΈΠ»ΠΈ Genuino.
  2. Π–Πš-экран, совмСстимый с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ Hitachi HD44780.
  3. Π¨Ρ‚Ρ‹Ρ€Π΅Π²Ρ‹Π΅ Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹ для припаивания ΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ Π–Πš-дисплСя.
  4. ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ 10 кОм.
  5. 220 Ом рСзистор.
  6. Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°.
  7. ΠœΠ°ΠΊΠ΅Ρ‚.

Π–Πš-ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹, совмСстимыС с Hitachi; ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…: 4-Π±ΠΈΡ‚Π½ΠΎΠΌ ΠΈΠ»ΠΈ 8-Π±ΠΈΡ‚Π½ΠΎΠΌ. Для 4-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° трСбуСтся сСмь Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΡ‚ Arduino LCD, Π° для 8-разрядного Ρ€Π΅ΠΆΠΈΠΌΠ° трСбуСтся 11 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ². Для отобраТСния тСкста Π½Π° экранС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ всС Π² 4-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, поэтому ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ 2Γ—16 Π–Πš-дисплССм Π² 4-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° дисплСС Ρ‡Π΅Ρ€Π΅Π· Arduino ssd1306. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ это сдСлаСтС, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Arduino ΠΏΠΎ ссылкС – LiquidCrystal. Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΏΠ°ΠΏΠΊΡƒ Β«LiquidCrystalΒ» ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. А послС скопируйтС ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ Β«LiquidCrystalΒ» Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ микропроцСссора, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ: arduino-1.0.5librariesLiquidCrystal.

Код LiquidCrystal Ардуино

Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ свою срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ:

Π€Π°ΠΉΠ» β†’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ β†’ LiquidCrystal β†’ HelloWorld

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:

Π–Πš-дисплСй Ардуино

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ экран 16Γ—2, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ lcd.begin (20,4) Π½Π° lcd.begin (16,2).

ΠŸΡ€ΠΎΡ†Π΅ΡΡ сборки

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг – ΠΏΡ€ΠΈΠΏΠ°ΡΡ‚ΡŒ 16-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ ΡˆΡ‚Ρ‹Ρ€Π΅Π²Ρ‹Π΅ Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹ Π½Π° Аrduino display. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ 16-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ардуино, Π»ΠΈΠ±ΠΎ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΡŠΠ΅ΠΌ Β«ΠΆΠ΅Π½Ρ‰ΠΈΠ½Π°-ΠΆΠ΅Π½Ρ‰ΠΈΠ½Π°Β». Если Π²Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ, ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ соСдинСния для свСтодиодного экрана ΠΈ Arduino

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ТидкокристалличСским дисплССм, – ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ соСдинСния, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ΡˆΠ΅.

  • ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 15 Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 5V ΠΎΡ‚ Arduino 128Ρ…64 lcd spi.
  • Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ 16 Π½Π° устройствС ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ GND.

Π­Ρ‚ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для питания подсвСтки Π–Πš-дисплСя. Π—Π°Ρ‚Π΅ΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для устройства.

  • Для этого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ 1 Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ GND Arduino. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 2 Π½Π° экранС ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ 5V Ардуино.
  • Π—Π°Ρ‚Π΅ΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ контрастности.

Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ 10K ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΊΠ»Π΅ΠΌΠΌΡƒ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ 5V Arduino, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ – ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 3 ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ GND.

Π—Π°Ρ‚Π΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ микропроцСссор. Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ подсвСтка Π½Π° Π–Πš-дисплСС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ Ρ€ΡƒΡ‡ΠΊΡƒ Π½Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€Π΅, Π±Π»ΠΎΠΊΠΈ символов Π½Π° Π–Πš-дисплСС становятся яркими/тусклыми. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΎ Ρ‡Π΅ΠΌ я Π³ΠΎΠ²ΠΎΡ€ΡŽ. Если ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π½ΠΈΠΆΠ΅, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ваш экран настроСн ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ! Если Π²Ρ‹ Π½Π΅ смогли этого Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свои соСдинСния ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€.

Π Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° контрастности Π½Π° устройствС

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

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ Arduino, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈ устройством

НачнСм с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² для Π–Πš-дисплСя. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 5 (RW) ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ GND ΠΎΡ‚ Arduino. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ слуТит для чтСния/записи. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 4 (RS) экрана ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ 7 Arduino. Π¨Ρ‚Ρ‹Ρ€Π΅ΠΊ RS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания Π½Π° Π–Πš-дисплСС, отправляСм Π»ΠΈ ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ курсора).

Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 6 (EN) Π–Πš-дисплСя ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ Arduino 8. EN – это ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠ΅ Π³Π½Π΅Π·Π΄ΠΎ Π½Π° устройствС, ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρƒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ для чтСния.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° устройствС. ΠŸΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 14 (DB7) экрана ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ выступу 12 Arduino. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 13 (DB6) ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ 11 Arduino. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ 12 Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ (DB5) Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ 10, Π·Π°Ρ‚Π΅ΠΌ Π’Ρ‹Π²ΠΎΠ΄ LCD β„– 11 (DB4) Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ 9.

Π’ΠΎΡ‚ ΠΈ всС, Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π–Πš-дисплСй ΠΊ Arduino. Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π–Πš-дисплСС Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ нСсвязанных ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

ΠŸΠ°ΡΠ½Ρ‹Π΅ 16-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹

Запуск ΠΈ тСстированиС

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для сСнсорного устройства. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, для управлСния тСкстом Π½Π° Π–Πš-дисплСС Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  1. begin (ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹Π΅ столбцы, ΠΎΠ±Ρ‰ΠΈΠ΅ строки). Π­Ρ‚Π° функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ setup () для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ дисплСя. Если это 20Γ—4, Ρ‚ΠΎ: lcd.begin (20,4), ΠΈΠ½Π°Ρ‡Π΅, Ссли это 16Γ—2, Ρ‚ΠΎΠ³Π΄Π°: lcd.begin (16,2).
  2. setCursor (Π½ΠΎΠΌΠ΅Ρ€ столбца, Π½ΠΎΠΌΠ΅Ρ€ строки) – эта функция ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ курсор Π½Π° устройствС Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π›ΡŽΠ±ΠΎΠΉ тСкст, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ послС этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, начнСтся с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π°ΠΌΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. НапримСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅: lcd.setCursor (4,0), Ρ‚. Π΅. пятый столбСц ΠΈ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку (начиная с 0,0).
  3. print («тСкст») – эта функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ тСкста Π½Π° Π–Πš-дисплСС. Какая Π±Ρ‹ Π½ΠΈ Π±Ρ‹Π»Π° строка Π²Π½ΡƒΡ‚Ρ€ΠΈ «», ΠΎΠ½Π° отобраТаСтся Π½Π° дисплСС.

Π’ΠΎΡ‚ ΠΈ всС, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ устройство ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ.

arduinoplus.ru

ВСкстовый экран 20Γ—4 [АмпСрка / Π’ΠΈΠΊΠΈ]

ВСкстовый экран 20Γ—4 пригодится для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², отобраТСния простых мСню, подсказок ΠΈ привСтствий.

Π’ΠΈΠ΄Π΅ΠΎΠΎΠ±Π·ΠΎΡ€

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ настройка

ДисплСй MT-20S4A ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста Π½Π° Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π΅ ΠΈ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅.

Π­ΠΊΡ€Π°Π½ ΠΈΠΌΠ΅Π΅Ρ‚ 16 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² для питания Π»ΠΎΠ³ΠΈΠΊΠΈ, взаимодСйствия с ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ элСктроникой ΠΈ подсвСтки.

Π’Ρ‹Π²ΠΎΠ΄ ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ОписаниС
1GNDΠžΠ±Ρ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ (зСмля)
2VccНапряТСниС питания (3,3β€”5 Π’)
3VoΠ£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ
4RSΠ’Ρ‹Π±ΠΎΡ€ рСгистра
5R/WΠ’Ρ‹Π±ΠΎΡ€ Ρ€Π΅ΠΆΠΈΠΌΠ° записи ΠΈΠ»ΠΈ чтСния
6EΠ Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ (Π° Ρ‚Π°ΠΊΠΆΠ΅ строб Π΄Π°Π½Π½Ρ‹Ρ…)
7DB0Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ)(младший Π±ΠΈΡ‚ Π² 8-ΠΌΠΈ Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅)
8DB1Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ)
9DB2Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ)
10DB3Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)(младший Π±ΠΈΡ‚ Π² 4-Ρ… Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅)
11DB4Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)
12DB5Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)
13DB6Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)
14DB7Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (8-ΠΌΠΈ ΠΈ 4-Ρ… Π±ΠΈΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹)
15+LED+ питания подсвСтки
16–LED– питания подсвСтки

ДисплСй ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…:

  • 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ β€” Π² Π½Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ младшиС ΠΈ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ (DB0–DB7)

  • 4-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ β€” Π² Π½Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ младшиС Π±ΠΈΡ‚Ρ‹ (DB4–DB7)

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΡΡŒΠΌΠΈΠ±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π½Π΅ цСлСсообразно. Для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ трСбуСтся Π½Π° 4 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½ΠΎΠ³ΠΈ, Π° Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° ΠΏΠΎ скорости практичСски Π½Π΅Ρ‚.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Π΅

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ дисплСй ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Π΅ Arduino Uno. Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ понадобится Breadboard Half ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Β«ΠΏΠ°ΠΏΠ°-ΠΏΠ°ΠΏΠ°Β».

Π’Ρ‹Π²ΠΎΠ΄ ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Пин Arduino Uno
1 GND GND
2 Vcc 5V
3 Vo GND
4 RS 12
5 R/W GND
6 E 11
7 DB0 β€”
8 DB1 β€”
9 DB2 β€”
10 DB3 β€”
11 DB4 5
12 DB5 4
13 DB6 3
14 DB7 2
15 Vcc 5V
16 GND GND

Аналогично ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ дисплСй ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Iskra JS.

Π’Ρ‹Π²ΠΎΠ΄ ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Пин Iskra JS
1 GND GND
2 Vcc 5V
3 Vo GND
4 RS P12
5 R/W GND
6 E P11
7 DB0 β€”
8 DB1 β€”
9 DB2 β€”
10 DB3 β€”
11 DB4 P5
12 DB5 P4
13 DB6 P3
14 DB7 P2
15 Vcc 5V
16 GND GND

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ для Arduino

Для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с LCD-дисплССм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Liquid Crystal. Π’ Π½Π΅ΠΉ Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ коммСнтариями.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ Π½Π° AVR-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‚Π°ΠΊ ΠΈ с ARM-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ.

Π’Ρ‹Π²ΠΎΠ΄ тСкста

Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ привСтствия, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠ΄ΠΎΠΌ Π²Ρ€ΠΎΠ΄Π΅ этого:

helloWorld.ino
// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal
#include <LiquidCrystal.h>
 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-экран, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ 
// для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Arduino Π² порядкС:
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
void setup()
{
    // устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство столбцов ΠΈ строк) экрана
    lcd.begin(20, 4);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
    lcd.print("Hello Amperka");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 0, строку 1
    // Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(0, 1);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
    lcd.print("Do It Yourself");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 0, строку 2 
    lcd.setCursor(0, 2);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ строку
    lcd.print("LCD Screen 20x4");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 0, строку 3
    lcd.setCursor(0, 3);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΡƒΡŽ строку
    lcd.print("www.Amperka.ru");
}
 
void loop()
{
}

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

БущСствуСт Π΄Π²Π° способа Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΈΡ€ΠΈΠ»ΠΈΡ†Ρ‹ Π½Π° тСкстовыС дисплСи:

Рассмотрим ΠΎΠ±Π° способа Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°

ДисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² памяти Π΄Π²Π΅ страницы Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… символов ΠΈ Π±ΡƒΠΊΠ². Для Π²Ρ‹Π²ΠΎΠ΄Π° символа Π½Π° дисплСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

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

lcd.print("\xB1ndex");

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

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ Π΄Π²Π΅ строки ΠΊΠΎΠ΄Π° для Π²Ρ‹Π²ΠΎΠ΄Π° надписи Β«Π―eeeΒ»:

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° дисплСй сообщСниС Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, АмпСрка!Β»:

helloAmperkaRusCharacterGenerator.ino
// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal
#include <LiquidCrystal.h>
 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-экран, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ 
// для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Arduino Π² порядкС:
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
void setup()
{
    // устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство столбцов ΠΈ строк) экрана
    lcd.begin(20, 4);
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 7, строку 0
    // Π½Π° самом Π΄Π΅Π»Π΅ это пСрвая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(7, 0);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
    lcd.print("\xA8""p""\xB8\xB3""e\xBF");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 9, строку 1
    // Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(9, 1);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
    lcd.print("o\xBF");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 7, строку 2
    // Π½Π° самом Π΄Π΅Π»Π΅ это Ρ‚Ρ€Π΅Ρ‚ΡŒΡ строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(7, 2);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ строку
    lcd.print("A\xBC\xBE""ep\xBA\xB8");
}
 
void loop()
{
}

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

ДисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² памяти Π΄Π²Π΅ страницы Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ установлСна нулСвая страница. Для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ страницами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ страницы Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ
command(0x101010);
// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницы Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ
command(0x101000);

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

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

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

ΠŸΠΎΠ»Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠŸΠΎΠ»Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ экрану.

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LiquidCrystalRus

БовсСм Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ мучатся со Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти русский символ. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ скачайтС ΠΈ установитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystalRus.

Π­Ρ‚ΠΎ копия ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LiquidCrystal с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ русского языка. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠ΄ трансформируСт русскиС символы UTF8 Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ для тСкстового экрана.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ„Ρ€Π°Π·Ρƒ Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, АмпСрка» Π½Π° дисплСй.

helloAmperkaRus.ino
// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystalRus
#include <LiquidCrystalRus.h>
 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-экран, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ 
// для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Arduino Π² порядкС:
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystalRus lcd(12, 11, 5, 4, 3, 2);
 
void setup()
{
    // устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство столбцов ΠΈ строк) экрана
    lcd.begin(20, 4);
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 7, строку 0
    // Π½Π° самом Π΄Π΅Π»Π΅ это пСрвая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(7, 0);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
    lcd.print("ΠŸΡ€ΠΈΠ²Π΅Ρ‚");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 9, строку 1
    // Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(9, 1);
    // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
    lcd.print("ΠΎΡ‚");
    // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 7, строку 2
    // Π½Π° самом Π΄Π΅Π»Π΅ это Ρ‚Ρ€Π΅Ρ‚ΡŒΡ строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
    lcd.setCursor(7, 2);
    lcd.print("АмпСрки");
}
 
void loop()
{
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ для Iskra JS

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с LCD-дисплССм ΠΈΠ· срСды Espruino сущСствуСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° HD44780.

Π’Ρ‹Π²ΠΎΠ΄ тСкста

Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ привСтствия, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ скриптом:

hello-world.js
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
// HD44780 β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ТидкокристалличСских Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дисплССв
var lcd = require("HD44780").connect(P12,P11,P5,P4,P3,P2);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
lcd.print("Hello Amperka");
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 0, строку 1
// Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(0, 1);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
lcd.print("Do It Yourself");
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 0, строку 2 
lcd.setCursor(0, 2);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ строку
lcd.print("LCD Screen 20x4");
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 0, строку 3
lcd.setCursor(0, 3);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΡƒΡŽ строку
lcd.print("www.Amperka.ru");

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

Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»ΠΈΡ†Ρ‹ Π½Π° дисплСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Iskra JS доступСн Ρ‡Π΅Ρ€Π΅Π· Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π² дисплСй Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°

ДисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² памяти Π΄Π²Π΅ страницы Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… символов ΠΈ Π±ΡƒΠΊΠ². Для Π²Ρ‹Π²ΠΎΠ΄Π° символа Π½Π° дисплСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

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

lcd.print("\xB1ndex");

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

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ Π΄Π²Π΅ строки ΠΊΠΎΠ΄Π° для Π²Ρ‹Π²ΠΎΠ΄Π° надписи Β«Π―eeeΒ»:

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° дисплСй сообщСниС Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, АмпСрка!Β»:

Hello-amperka-rus-character-generator.js
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
// HD44780 β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ТидкокристалличСских Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дисплССв
var lcd = require("HD44780").connect(P12,P11,P5,P4,P3,P2);
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 7, строку 0
// Π½Π° самом Π΄Π΅Π»Π΅ это пСрвая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(7, 0);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку
lcd.print("\xA8"+"p"+"\xB8\xB3"+"e\xBF");
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 9, строку 1
// Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(9, 1);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку
lcd.print("o\xBF");
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 7, строку 2
// Π½Π° самом Π΄Π΅Π»Π΅ это Ρ‚Ρ€Π΅Ρ‚ΡŒΡ строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(7, 2);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ строку
lcd.print("A\xBC\xBE"+"ep\xBA\xB8");

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

ДисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² памяти Π΄Π²Π΅ страницы Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ установлСна нулСвая страница. Для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ страницами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ страницы Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ
command(0x101010);
// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницы Π½Π° Π½ΡƒΠ»Π΅Π²ΡƒΡŽ
command(0x101000);

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

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

change-page-character-generator.js
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
// HD44780 β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ТидкокристалличСских Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дисплССв
var lcd = require("HD44780").connect(P12, P11, P5, P4, P3, P2);
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ состояния
var state = false;
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 7, строку 0
// Π½Π° самом Π΄Π΅Π»Π΅ это пСрвая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(7, 0);
// ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ строку
lcd.print("\x9b\x9c\x9d\x9e\x9f");
 
setInterval(function() {
  // ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду мСняСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½ΡƒΡŽ состояния
  state = !state;
  // Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ смСны адрСса страницы
  lcdChangePage();
}, 1000);
 
function lcdChangePage () {
  if (state) {
    // устанавливаСм 0 станицу Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° (стоит ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) 
    lcd.write(0b101000, 1);
  } else {
    // устанавливаСм 1 станицу Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°
    lcd.write(0b101010, 1);
  }
}

ΠŸΠΎΠ»Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ экрану.

Big Number Module

Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Espruino Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ супСр большиС числа Β«Big Number ModuleΒ» Π½Π° тСкстовой дисплСй 20Γ—4.

Π Π°Π·ΠΌΠ΅Ρ€ Ρ†ΠΈΡ„Ρ€Ρ‹ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡˆΡ€ΠΈΡ„Ρ‚Π΅: 3 символа ΠΏΠΎ столбцам ΠΈ 4 ΠΏΠΎ строкам.

big-number.js
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
// HD44780 β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ТидкокристалличСских Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дисплССв
var lcd = require("HD44780").connect(P12,P11,P5,P4,P3,P2);
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большим ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ Ρ†ΠΈΡ„Ρ€
var disp = require("big_number").use(lcd);
// Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ число Β«31337Β»
disp.showDigit(1,3);
disp.showDigit(4,1);
disp.showDigit(8,3);
disp.showDigit(12,3);
disp.showDigit(16,7);

ΠšΠΎΠΌΠ½Π°Ρ‚Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€

ДисплСй ΡƒΠ΄ΠΎΠ±Π΅Π½ для отобраТСния ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ сСнсоров. Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π·Π°Π΄Π°Ρ‚ΠΊΠΈ Β«Π£ΠΌΠ½ΠΎΠ³ΠΎ Π”ΠΎΠΌΠ°Β», Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Β«ΠΊΠΎΠΌΠ½Π°Ρ‚Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Β».

Π§Ρ‚ΠΎ понадобится

Как ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ

  1. Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ Troyka Shield ΠΈ установитС свСрху Π½Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ β€” Arduino ΠΈΠ»ΠΈ Iskra JS.

  2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· 3-ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΡˆΠ»Π΅ΠΉΡ„ ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠΈΠ½Ρƒ A0. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° получится схСма.
  3. ΠŸΡ€ΠΎΡˆΠ΅ΠΉΡ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅.

Π‘ΠΊΠ΅Ρ‚Ρ‡ для Arduino

thermometerRoom.ino
// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal
#include <LiquidCrystal.h>
 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-экран, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ 
// для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Arduino Π² порядкС:
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
// ΠΏΠΈΠ½ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
#define TEMPERATURE_PIN  A0
 
void setup()
{
  // устанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ (количСство столбцов ΠΈ строк) экрана
  lcd.begin(20, 4);
}
 
void loop()
{
  // ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ дисплСй
  lcd.clear();
  // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 4, строку 1
  // Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
  lcd.setCursor(4, 1);
  // считываСм показания с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
  int sensorADC = analogRead(A0);
  // ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ значСния с АЦП Π² Π²ΠΎΠ»ΡŒΡ‚Ρ‹
  float sensorVoltage = sensorADC * (5.0 / 1023.0);
  // ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π²ΠΎΠ»ΡŒΡ‚Ρ‹ Π² градусы Ρ†Π΅Π»ΡŒΡΠΈΡ
  int temperature = (sensorVoltage - 0.5) * 100;
  // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° дисплСй
  lcd.print("Temperature");
  // устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 8, строку 2
  // Π½Π° самом Π΄Π΅Π»Π΅ это Ρ‚Ρ€Π΅Ρ‚ΡŒΡ строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
  lcd.setCursor(8, 2);
  lcd.print(temperature);
  lcd.print("\x99""C");
  delay(500);
}

Π‘ΠΊΡ€ΠΈΠΏΡ‚ для Iskra JS

thermometerRoom.js
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
// HD44780 β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ТидкокристалличСских Π·Π½Π°ΠΊΠΎΡΠΈΠ½Ρ‚Π΅Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дисплССв
var lcd = require("HD44780").connect(P12,P11,P5,P4,P3,P2);
 
// создаём ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
var thermometer = require('@amperka/thermometer')
 .connect(A0);
 
// устанавливаСм курсор Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ 4, строку 1
// Π½Π° самом Π΄Π΅Π»Π΅ это вторая строка, Ρ‚.ΠΊ. нумСрация начинаСтся с нуля
lcd.setCursor(4, 1);
// Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° дисплСй строку Β«TemperatureΒ»
lcd.print("Temperature");
 
// ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду считываСм Π΄Π°Π½Π½Ρ‹Π΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° дисплСй
setInterval(function() {
  var celsius = thermometer.read('C');
  lcd.setCursor(8, 2);
  lcd.print(celsius.toFixed(0) + "\x99"+"C");
}, 1000);

Π₯арактСристики

  • НапряТСниС питания: 3,3β€”5 Π’

  • ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊ потрСблСния: 1,4 мА

  • ΠŸΠΎΡ‚Ρ€Π΅Π±Π»ΡΠ΅ΠΌΡ‹ΠΉ Ρ‚ΠΎΠΊ подсвСтки: 120 мА

  • Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡ: 4 строки ΠΏΠΎ 20 символов. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ 5Γ—8 Ρ‚ΠΎΡ‡Π΅ΠΊ

  • Π“Π°Π±Π°Ρ€ΠΈΡ‚Ρ‹: 98Γ—60Γ—13 ΠΌΠΌ

РСсурсы

wiki.amperka.ru

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

БущСствуСт мноТСство ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… тСкстовых дисплССв, всС ΠΎΠ½ΠΈ Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ HD44780 ΠΈΠ»ΠΈ совмСстимым с Π½ΠΈΠΌ, самыС популярныС двухстрочныС дисплСи с 16 символами Π² строкС. Π₯отя Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π½ΠΎ всС ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ.

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

Распиновка:

Колодка Π½Π° дисплСС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ², линСйная, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ встрСчаСтся Π½Π° экранах 1602 ΠΈΠ»ΠΈ 2004.

ΠΈΠ»ΠΈ ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½Π°Ρ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ встрСчаСтся Π½Π° экранах 0802, Π½ΠΎ это зависит ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ дисплСя, Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΈ Π½Π° 1602.

ΠŸΠΈΠ½ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
1

VSS

Масса
2

VDD

ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ 5 Π²ΠΎΠ»ΡŒΡ‚
3

VO

ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ LCD экрана (установка контрастности)
4

RS

Π’Ρ‹Π±ΠΎΡ€ рСгистра, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° любой свободный Π²Ρ‹Ρ…ΠΎΠ΄ arduino)
5

R\W

Π’Ρ‹Π±ΠΎΡ€ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ запись, (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ массС, ΠΈΠ±ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ с экрана Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ)
6

E

Π‘ΠΈΠ³Π½Π°Π» Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° любой свободный Π²Ρ‹Ρ…ΠΎΠ΄ arduino)
7 β€” 10

DB0 β€” DB3

МладшиС Π±ΠΈΡ‚Ρ‹ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса, (Π² нашСм случаи Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ)
11 β€” 14

DB4 β€” DB7

Π‘Ρ‚Π°Ρ€ΡˆΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ интСрфСйса, (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ свободныС Π²Ρ‹Ρ…ΠΎΠ΄ arduino)
15

A

Анод свСтодиода подсвСтки (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΠΈΡ‚Π°Π½ΠΈΡŽ 5 Π²ΠΎΠ»ΡŒΡ‚)
16

K

ΠšΠ°Ρ‚ΠΎΠ΄ свСтодиода подсвСтки (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ массС)
Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ настройку контрастности, ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ зависит ΠΎΡ‚ напряТСния Π½Π° 3 Π½ΠΎΠ³Π΅ экрана (VO). Π’Ρ‹Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌΡƒ рСзистору, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ ΠΈ массой, ΠΏΠΎ схСмС дСлитСля напряТСния.

Если ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π½Π° дисплСй ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅, дисплСй ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ строку ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊ Π²Π΅Π΄Π΅Ρ‚ сСбя любой дисплСй Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ HD44780, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‘ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с дисплССм, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ видимости этой строки.

Π’ случаи нСдостатка контрастности, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° дисплСС.

Π˜Π·Π±Ρ‹Ρ‚ΠΎΠΊ контраста, Ρ‚ΠΎΠΆΠ΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ тСкста.

Π‘ΠΎΡ„Ρ‚:

Всё для Ρ€Π°Π±ΠΎΡ‚Ρ‹ тСкстовым дисплССм Π΅ΡΡ‚ΡŒ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ со срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ HelloWorld.ino ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LiquidCrystal ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π΅Π³ΠΎ Π² arduino.

На LCD Π²ΠΈΠ΄ΠΈΠΌ тСкст HelloWorld ΠΈ счСтчик ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ прибавляСтся Π΅Π΄ΠΈΠ½ΠΈΡ†Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ HelloWorld.ino с русскими коммСнтариями.

/*
  LiquidCrystal Library - Hello World

 Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.

 This sketch prints "Hello World!" to the LCD
 and shows the time.

  The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * LCD VSS pin to ground
 * LCD VCC pin to 5V
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried (http://www.ladyada.net)
 example added 9 Jul 2009
 by Tom Igoe
 modified 22 Nov 2010
 by Tom Igoe

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/LiquidCrystal
 */

// include the library code:
#include <LiquidCrystal.h>

// инициализация Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΠΈΠ½Π°ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ LCD
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // настройка количСства строк ΠΈ столбцов LCD, Π² Π΄Π°Π½Π½ΠΎΠΌ случаи 1602
  lcd.begin(16, 2);
  // ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ Π½Π° LCD, hello, world!
  lcd.print("hello, world!");
}

void loop() {
  // УстанавливаСм курсор Π½Π° 1 линию ΠΈ 0 символ
  // отсчСт начинаСтся ΠΎΡ‚ 0
  lcd.setCursor(0, 1);
  // ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ количСство сСкунд Ρ€Π°Π±ΠΎΡ‚Ρ‹ arduino
  lcd.print(millis() / 1000);
}


 

Π’ΠΈΠ΄Π΅ΠΎ:


arduinolab.pw

Arduino LCD Informer / Habr

Π—Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ Ρ‚Π°ΠΊΠΈΠΌ Ρ…ΠΎΠ±Π±ΠΈ, ΠΊΠ°ΠΊ Ардуино, я вскорС понял, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‚ΡŒ этого Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ я, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ смыслящим Π² схСмотСхникС, ΠΏΠ°ΠΉΠΊΠ΅ ΠΈ микросхСмах, Π·Π°Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°; ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, Π½Π΅ имСя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° ΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Π½ΠΈΠΉ Π½Π° эту Ρ‚Π΅ΠΌΡƒ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΡ€ΠΎΠΏΠ°Π³Π°Π½Π΄Π΅ этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” программисты, это прСкрасноС Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ для вас!

Пока ΠΌΠΎΡ‚ΠΎΡ€Ρ‡ΠΈΠΊΠΈ для ΠΌΠΎΠ΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ, мобильного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅Π΄ΡƒΡ‚ Π² ΠΊΠΈΠ±ΠΈΡ‚ΠΊΠ΅, запряТённой Ρ‚Ρ€ΠΎΠΉΠΊΠΎΡŽ самых быстрых Π±Ρ€ΡŽΡ…ΠΎΠ½ΠΎΠ³ΠΈΡ… скакунов ΠŸΠΎΡ‡Ρ‚Ρ‹ России, я Π·Π°Π΄ΡƒΠΌΠ°Π» ΠΈ, Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, осущСствил, Π΄Ρ€ΡƒΠ³ΠΎΠΉ (Ρ€Π°Π·ΠΌΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ) ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ΄ Π·Π²ΠΎΠ½ΠΊΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ β€œArduino LCD Informer”. Π‘ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ардуино ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π» Π½Π° LCD Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. На ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈΡ… собираСт ΠΈ отправляСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.



Π˜Π½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Ρ‹

Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ:

Ардуино

Π­Ρ‚ΠΎΡ‚ ΡΠΌΡ‹ΡˆΠ»Ρ‘Π½Ρ‹ΠΉ ΠΈ Π»ΠΎΠ²ΠΊΠΈΠΉ ΠΌΠ°Π»Ρ‹Ρˆ, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ·Π³Π°ΠΌΠΈ (ATmega328 ), Π½ΠΎ ΠΈ ΠΎΡ€Π³Π°Π½Π°ΠΌΠΈ чувств ΠΈ манипуляторами β€” Π²Ρ…ΠΎΠ΄Ρ‹ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ Π΄Π΅Π»Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Π½Ρ‹ΠΌ устройствам, Π² Ρ‚ΠΎΠΌ числС ΠΌΠΎΡ‚ΠΎΡ€Π°ΠΌ, свСтодиодам, ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ lcd-экранам. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, usb-соСдинСниС с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π½Π° Π½Π΅Π³ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½ΠΎ ΠΈ для двустороннСго общСния с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ.

ВСкстовый LCD экран

Нам Π½ΡƒΠΆΠ½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённая модСль, MT–20S4A (ΠœΠ­Π›Π’), HD44780 (Hitachi), KS0066 (Samsung) ΠΈΠ»ΠΈ ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ΠΈ.
Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠœΠ­Π›Π’ β€” Ρƒ мСня ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ. Π‘Π΅Ρ€Π΄Ρ†Π΅ согрСваСт гордая надпись β€” β€œΠœΠ­Π›Π’. Π‘Π΄Π΅Π»Π°Π½ΠΎ Π² России”. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠΌ отСчСствСнного производитСля! Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ сдСлан экран Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ ΠΈ опрятно, Π½ΠΎ ΠΈ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹, ΠΎ Ρ‡Ρ‘ΠΌ ΠΏΠΎΠ·ΠΆΠ΅.

Доска для Ρ€Π΅Π·ΠΊΠΈ Ρ…Π»Π΅Π±Π°

Breadboard, ΠΊΠ°ΠΊ Π΅Ρ‘ окрСстили наши заокСанскиС супостаты, Π° ΠΏΠΎ-Π½Π°ΡˆΠ΅ΠΌΡƒ β€” доска для прототипирования. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ поясню ΡΡƒΡ‚ΡŒ. По доскС ΠΈΠ΄ΡƒΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ проводящСго ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. Если Π²Ρ‹ Π²ΠΎΡ‚ΠΊΠ½Ρ‘Ρ‚Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΊ Π² Π΄Ρ‹Ρ€ΠΊΡƒ, Ρ‚ΠΎ всС Π΄Ρ‹Ρ€ΠΊΠΈ свСрху ΠΈ снизу ΠΎΡ‚ Π½Π΅Π³ΠΎ (Ссли Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ доску Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ полоса шла справа Π½Π°Π»Π΅Π²ΠΎ β€” ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ‚ΠΎ) окаТутся с Π½ΠΈΠΌ соСдинСны. Π’ΠΎΡ‡Π½Π΅Π΅, всС Π΄ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ полосы β€” ΠΏΠΎ ΠΎΠ±Π΅ΠΈΠΌ сторонам ΠΎΡ‚ Π½Π΅Ρ‘ находятся Π΄Π²Π΅ Π½Π΅ связанныС ΠΌΠ΅ΠΆ собой части доски.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±Π΅Π· ΠΏΠ°ΠΉΠΊΠΈ, Π±Π΅Π· скрутки, ΡˆΡƒΠΌΠ° ΠΈ ΠΏΡ‹Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ спокойно ΠΏΠ΅Ρ€Π΅Ρ‚Ρ‹ΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ, планируя ΠΈ сразу провСряя схСму Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройства. Один ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΊ Π² Π΄Ρ‹Ρ€ΠΊΡƒ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Π² сосСднюю, ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π³ΠΎΡ‚ΠΎΠ².
На срСдних ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… досках прСдусмотрСны с ΠΊΡ€Π°ΡŽ Π΄Π²Π΅ полосы ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ², ΠΎΠ΄Π½Π° для Π·Π΅ΠΌΠ»ΠΈ, вторая для питания β€” ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго.

Π›Π°ΠΏΡˆΠΈΡ‡ΠΊΠ° проводная

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎΠ³ΠΎ провСдСния Ρ‚ΠΎΠΊΠ°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Π΅Ρ† втыкаСтся Π²ΠΎ Π²Ρ…ΠΎΠ΄-Π²Ρ‹Ρ…ΠΎΠ΄ Ардуины, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” Π² доску, ΠΈΠ»ΠΈ Π² Π΄Π°Ρ‚Ρ‡ΠΈΠΊ. Π£Π΄ΠΎΠ±Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ-ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ.

Π‘Ρ‹Ρ€Π½ΠΈΡ‡ΠΊΠΈ домашниС с ΠΌΠ°Π»ΠΈΠ½ΠΎΠ²Ρ‹ΠΌ Π²Π°Ρ€Π΅Π½ΡŒΠ΅ΠΌ

Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° пустой ΠΆΠ΅Π»ΡƒΠ΄ΠΎΠΊ β€” Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ€Π΅Π΄Π½ΠΎ, Π½ΠΎ ΠΈ бСсполСзно. А ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ приятно Π²ΠΎΠ·Π½Π°Π³Ρ€Π°Π΄ΠΈΡ‚ΡŒ сСбя сырничком-Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Для сырников Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ‚Π²ΠΎΡ€ΠΎΠ³ (Π½Π΅ ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ-Π³Π»Π°Π΄ΠΊΠΈΠΉ, Π° с Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π΅Ρ€Π½ΠΈΡΡ‚ΠΎΡΡ‚ΡŒΡŽ) β€” 400 Π³Ρ€Π°ΠΌΠΌ Ρ‚Π²ΠΎΡ€ΠΎΠ³Π°, 2 яйца, 50 Π³ сахара, ΠΏΠΎΠ»-Π»ΠΎΠΆΠΊΠΈ (Ρ‡Π°ΠΉΠ½ΠΎΠΉ) соды, Ρ‰Π΅ΠΏΠΎΡ‚ΠΊΡƒ соли. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ помСшивая, постСпСнно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΌΡƒΠΊΡƒ, всСго ΠΎΠΊΠΎΠ»ΠΎ 200 Π³Ρ€Π°ΠΌΠΌ. ΠŸΠΎΡ‚ΠΎΠΌ Π½Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ тСсто ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ часа Π½Π° 2. ΠŸΠΎΡ‚ΠΎΠΌ Π½Π°Π³Ρ€Π΅Ρ‚ΡŒ сковородку с нСбольшим количСством масла, ΡΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ±ΠΊΠΈ, ΠΏΠ»ΡŽΡ‰ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈ ΠΆΠ°Ρ€ΠΈΡ‚ΡŒ.
Ну ΠΈ ΠΏΠΎ вкусу Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌ свСрху β€” ΠΊΠΎΠΌΡƒ Π²Π°Ρ€Π΅Π½ΡŒΠΈΡ†Π΅ ΠΌΠ°Π»ΠΈΠ½ΠΎΠ²ΠΎΠ΅, ΠΊΠΎΠΌΡƒ сгущёночку, ΠΊΠΎΠΌΡƒ как…

ΠŸΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΈΠ΅
Π‘Π±ΠΎΡ€ΠΊΠ°.

Π§Ρ‚ΠΎΠ±Ρ‹ LCD ΠΏΡ€ΠΈΠ²Π΅Ρ‚Π»ΠΈΠ²ΠΎ засвСтил Π½Π°ΠΌ своим мягким, Ρ‚Ρ‘ΠΏΠ»Ρ‹ΠΌ, ΠΏΠΎΡ‡Ρ‚ΠΈ Π»Π°ΠΌΠΏΠΎΠ²Ρ‹ΠΌ ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΌ свСтом, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ (ΠΈ Π·Π΅ΠΌΠ»Ρ‘ΠΉ), Π° для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ β€” ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π°ΠΌ Ардуино.

Если Π½Π° вашСй доскС Π΅ΡΡ‚ΡŒ полоски для Π·Π΅ΠΌΠ»ΠΈ ΠΈ питания, ΠΌΠΎΠΆΠ½ΠΎ вывСсти ΠΈΡ… с Ардуино ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΡƒΠ΄Π°. Но Π½Π΅ ΠΎΡ‚Ρ‡Π°ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ β€” Ссли ΠΈΡ… Π½Π΅Ρ‚, обойдёмся ΠΈ Ρ‚Π°ΠΊ.

Π‘ΠΌ. Ρ„ΠΎΡ‚ΠΎ β€” ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ 1, 3 ΠΈ 5 Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π·Π΅ΠΌΠ»Π΅. ΠŸΡ€ΠΎΡ‚ΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° Ардуино с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ GND (синий) ΠΊ ряду Π΄Ρ‹Ρ€ΠΎΡ‡Π΅ΠΊ Π½Π° доскС, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ, Π° ΠΊ 3-ΠΌΡƒ ΠΈ 5-ΠΌΡƒ ряду (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚ ΠΊ 3-ΠΌΡƒ ΠΈ 5-ΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ) ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ряда ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ (красная ΠΈ Тёлтая).

Π’ΠΠ˜ΠœΠΠΠ˜Π•!

1) ВсС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Ρ‹ΠΊΠ°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΎΡ‚ Ардуино β€” ΠΊΠ°ΠΊ usb, Ρ‚Π°ΠΊ ΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·ΡŠΡ‘ΠΌ питания!
ΠšΡΡ‚Π°Ρ‚ΠΈ, поэтому Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ардуино ΠΊ usb Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π° кабСля β€” ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ usb, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” ΡƒΠ΄Π»ΠΈΠ½Π½ΠΈΡ‚Π΅Π»ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вмСсто разбалтывания usb-ΠΏΠΎΡ€Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈΠ»ΠΈ Π½Π° Ардуино Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ мСсто соСдинСния удлиннитСля с ΠΊΠ°Π±Π΅Π»Π΅ΠΌ.

2) Π£ Ρ€Π°Π·Π½Ρ‹Ρ… LCD Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с инструкциСй своСго экрана. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, нумСрация ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΊΠ°ΠΊ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ β€” 1, 2, 3,.., 16 β€” Ρ‚Π°ΠΊ ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 14, 13, 12,.., 2, 1, 15, 16. ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° самом экранС.

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

Π˜Ρ‚Π°ΠΊ, протянув ΠΏΡ€ΠΎΠ²ΠΎΠ΄ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° Ардуино с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ 5V Π΄ΠΎ доски, ΠΏΠΎΠ΄Π°Ρ‘ΠΌ 5 Π²ΠΎΠ»ΡŒΡ‚ Π½Π° 2-ΠΉ (ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅) ΠΈ 15-ΠΉ (подсвСтка) ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹. ЗСмля β€” 1, 3, 5, 16.
ΠŸΡ€ΠΈ этом 3-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ β€” ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ большС напряТСниС, Ρ‚Π΅ΠΌ тусклСС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ЗСмля = 0 = наибольшая ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ.

ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ардуино (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ usb) ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, засвСтился Π»ΠΈ LCD. Если Π΄Π° β€” ΠΏΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ! МоТно Π²ΠΎΠ·Π½Π°Π³Ρ€Π°Π΄ΠΈΡ‚ΡŒ сСбя сырничком. И снова ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ардуино ΠΎΡ‚ питания!

Π”Π°Π»Π΅Π΅ подсоСдиняСм ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ управлСния экраном. 4-ΠΉ β€” ΠΊ 4-ΠΌΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ Ардуино. (ВсС Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π½Π° Ардуино ΠΊΠ°ΠΊ digital). Π­Ρ‚ΠΎ адрСсный сигнал.
6-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ экрана β€” 5-ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Ардуино. Π­Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ доступа.

Π”Π°Π»Π΅Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…:
lcd β€” Arduino
11 β€” 10
12 β€” 11
13 β€” 12
14 β€” 13

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠ΅Π³ΠΎ творчСства Π²ΠΈΠ΄Π΅Π½ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ„ΠΎΡ‚ΠΎ. ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π° Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ собраны Π² ΡƒΠ·Π΅Π», Π° для устойчивости экран снабТён элСгантной ΠΏΠΎΠ΄ΠΏΠΎΡ€ΠΊΠΎΠΉ, взятой ΠΈΠ· дСтского мСталличСского конструктора, согнутой Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΊΡ€ΠΈΠ²ΡƒΡŽ. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° ΠΎΠ½Π° с экраном Π±ΠΎΠ»Ρ‚ΠΎΠΌ Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 3 ΠΌΠΌ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ прСдусмотрСнноС ΠΊΡ€Π΅ΠΏΡ‘ΠΆΠ½ΠΎΠ΅ отвСрстиС.

МоТно ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ!

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС
Arduino sketch

Для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Ардуино ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΡ… Π² Π½Π΅Π³ΠΎ трСбуСтся ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΡΡŽΠ΄Π°: arduino.cc/en/Main/Software

Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ ΠΎΠ± использовании. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ардуино, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ (Π² ΠΌΠΎΡ‘ΠΌ случаС это Arduino Uno) Π² Tools/Board, Π·Π°Ρ‚Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° Π² Tools/Serial port β€” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, это ΠΏΠΎΡ€Ρ‚, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ COM1. Π£ мСня получился COM9.
Π—Π°Ρ‚Π΅ΠΌ пишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Кнопка с Π³Π°Π»ΠΎΡ‡ΠΊΠΎΠΉ провСряСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, стрСлка Π²ΠΏΡ€Π°Π²ΠΎ β€” ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ Π·Π°ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π° Ардуино.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ исполняСт Ардуино, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ скСтчами, ΠΈ состоят ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… частСй. Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠŸΠΎΡ‚ΠΎΠΌ наполняСтся содСрТимым функция setup, которая автоматичСски выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π’ Π½Π΅ΠΉ происходит вся инициализация оборудования.
Π—Π°Ρ‚Π΅ΠΌ β€” основная функция, loop, которая автоматичСски выполняСтся Π² бСсконСчном Ρ†ΠΈΠΊΠ»Π΅.

НапишСм ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-скСтч:

// ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π΄Π»Ρ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ LCD
#include <LiquidCrystal.h>
 
void setup()
{
  // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ LCD, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  LiquidCrystal lcd(4, 5, 10, 11, 12, 13);
 
  // ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΡΠΊΡ€Π°Π½Π° ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ
  lcd.begin(20, 4);
 
  // ΠΏΠΈΡˆΠ΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΡΡ‚Ρ€ΠΎΠΊΡƒ
  lcd.print(β€œHello, world!”);
 
  // ΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌ ΠΊΡƒΡ€ΡΠΎΡ€ Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΡΡ‚Ρ€ΠΎΠΊΡƒ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΡ‚ΠΎΠ»Π±Π΅Ρ† (нумСрация Ρ 0)
  lcd.setCursor(0, 1);
 
  // ΠŸΠΈΡˆΠ΅ΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΡΡ‚Ρ€ΠΎΠΊΡƒ
  lcd.print(β€œI love Habr!”);
}
 
void loop()
{
  // Π”Π΅Π»Π°Ρ‚ΡŒ ΠΎΡΠΎΠ±ΠΎ Π½Π΅Ρ‡Π΅Π³ΠΎ
}
 

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ нашСй Π·Π°Π΄Π°Ρ‡Π΅.
Нам Π½ΡƒΠΆΠ΅Π½ скСтч, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° LCD, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Ардуино.

Π’Ρ‹Π±ΠΎΡ€ языка, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, остаётся Π·Π° Π²Π°ΠΌΠΈ β€” любой язык, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с COM-ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ, ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π»ΡƒΡ‡ΡˆΠ΅ всСго Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° C++ β€” памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ°Π»ΠΎ, висит сСбС Π² Ρ„ΠΎΠ½Π΅ ΠΈ висит. К соТалСнию, я Π½Π΅ обладаю достаточными знаниями для написания Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° C++, поэтому, Π±ΡƒΠ΄Ρƒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ знаю β€” perl.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ скСтч для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

#include <LiquidCrystal.h>
 
// RS, E, DB5, DB6, DB7, DB8
LiquidCrystal lcd(4, 5, 10, 11, 12, 13);
 
int inb = 0;
int pos = 0;
int line = 0;
 
void setup() 
{
  Serial.begin(9600);
  lcd.begin(20, 4);
}
 
void loop() 
{
  lcd.setCursor(pos, line);
  if (Serial.available() > 0) {
    inb = Serial.read();
 
    if (char(inb) == β€˜|’) {
      pos = 0;
      line++;
    }
    else if (char(inb) == β€˜&’) {
      pos = 0;
      line = 0;
    }
    else {
      lcd.print(char(inb));
      pos++;
    }  
    lcd.setCursor(pos, line);
  }
}
 

Ардуино ΠΆΠ΄Ρ‘Ρ‚ Π½Π°Ρ‡Π°Π»Π° поступлСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ сразу Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡ… Π½Π° экран.
Π‘ΠΈΠΌΠ²ΠΎΠ» | Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ строки, Π° & β€” ΠΊΠΎΠ½Ρ†ΠΎΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для сбора Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΡ… Π² ΠΏΠΎΡ€Ρ‚.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для сбора Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ всСго, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ строчку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ собранныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ отправляСм Π΅Ρ‘ Π² ΠΏΠΎΡ€Ρ‚.

#!/usr/bin/perl
 
# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
use LWP::Simple;
use Encode qw(from_to _utf8_off);
use Win32::SerialPort;
use Win32::API::Prototype;
use Win32::SystemInfo;
use Win32::DriveInfo;
use constant {IDLE => 0, KERNEL => 1, USER => 2};
 
# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Win32 API
InitWin32();
 
# Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΊΠΎΠ²
@lasttime = SystemTimes();
 
# Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌ ΠΏΠΎΡ€Ρ‚ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ Ρ Arduino
$port = InitSerial();
 
# Π¦ΠΈΠΊΠ» ΠœΡ‘биуса
while (1) {
 
  # Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΡΡ‚Ρ€ΠΎΠΊΡƒ
  $data = sprintf(β€œCPU: %3d%%  C: %03d Gb|MEM: %3d%%  D: %03d Gb|”.
    β€œT: %02d’C      P: %03d|%02d %-8s    %02d:%02d|&”,
    CPU(), Disk(β€˜C’), MEM(), Disk(β€˜D’), Weather(β€˜Moscow’), DateTime()
  );
 
  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠΎΡ€Ρ‚
  while ($data =~ s/(.)//s) {
    $port -> write($1);
    $port -> lookclear;
  }
 
  # ΠžΠΆΠΈΠ΄Π°Π½ΠΈΠ΅
  sleep(10);
}
 

Π”Π°Π±Ρ‹ Π½Π΅ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ описаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎ ссылкС Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

InitSerial β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ настройки для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΠΈΠ· perl (ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Win32::SerialPort)

closePort β€” ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠΎΡ€Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ запускС. Π’Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° сигнал прСрывания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

CPU β€” подсчитываСт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ CPU. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΠ»ΠΈΡ‡Π½ΡƒΡŽ магию (функция SystemTimes), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я Π³Π΄Π΅-Ρ‚ΠΎ подсмотрСл. Для подсчёта Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ kernel32 GetSystemTimes, которая присоСдиняСтся ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ InitWin32 (ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Win32::API::Prototype).

MEM β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ доступной физичСской памяти ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ Π΅Ρ‘ количСству (ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Win32::SystemInfo)

Weather β€” Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ со страницы ЯндСкс.Погода. Π”Π΅Π»Π°Π΅Ρ‚ это Π½Π΅ Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ Ρ€Π°Π· Π² Π΄Π²Π° часа.

DateTime β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ дСнь мСсяца, мСсяц, часы ΠΈ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹

Disk β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΡ‘ΠΌ свободного мСста Π½Π° дискС (ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Win32::DriveInfo).

Русский язык

Мой экран, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρ‘Π½ Π² России. Π’ связи с этим ΠΎΠ½ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ страницы β€” Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ (β„– 0) ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ содСрТатся кирилличСскиС Π±ΡƒΠΊΠ²Ρ‹, Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π΅ Π½Π΅Ρ‚. На Π²Ρ‚ΠΎΡ€ΠΎΠΉ (β„– 1) имССтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ русский Π°Π»Ρ„Π°Π²ΠΈΡ‚, ΠΏΠΎ ΠΊΠΎΠ΄Π°ΠΌ символов ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ с cp-1251. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ русскиС Π±ΡƒΠΊΠ²Ρ‹ Π½Π° экран Π±Π΅Π· особых Π·Π°Ρ‚Ρ€Π°Ρ‚.
МалСнький минус, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ я столкнулся β€” Π·Π½Π°Ρ‡ΠΊΠ° градуса Π½Π° страницС β„–1 Π½Π΅Ρ‚ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ страницы β„–0). Π—Π°ΠΌΠ΅Π½ΠΈΠ» апострофом.
Для управлСния экраном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LiquidCrystal, рассчитанная Π½Π° Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΡƒΡŽ модСль экрана. Но ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π» Π² Π½Π΅ΠΉ возмоТности ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… страниц, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΡƒΡ€ΠΆΡƒΠΈΠ½Ρ‹ горя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄Π²ΡƒΡ… языков Π½Π΅ Π·Π½Π°ΡŽΡ‚. ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ‘ΠΌ простыС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Находится ΠΎΠ½Π° Π² %arduino_install_path%\arduino-1.0\libraries\LiquidCrystal
Богласно Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° экран Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ β€œΠšΠΎΠΌΠ°Π½Π΄Ρ‹ модуля” установка ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницы проводится Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Function set Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Π±ΠΈΡ‚ΠΎΠΌ.
Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² LiquidCrystal.h Π½ΠΎΠ²ΡƒΡŽ константу:

#define LCD_CODEPAGE 0x02

Π—Π°Ρ‚Π΅ΠΌ Π² LiquidCrystal.cpp Π½Π°ΠΉΠ΄Ρ‘ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ void LiquidCrystal::init() ΠΈ Π² Π½Π΅ΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ эту константу ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ установкам, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:
if (fourbitmode)
_displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS | LCD_CODEPAGE;
else
_displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS | LCD_CODEPAGE;

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, 2-ΠΉ Π±ΠΈΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ поднят, экран Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницСй β„–1, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° русском языкС Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ cp-1251 (Π² ΠΌΠΎΡ‘ΠΌ случаС β€” это Π½Π°Π·Π²Π°Π½ΠΈΠ΅ мСсяца).

Π€Π°ΠΉΠ»Ρ‹

Π‘ΠΊΠ΅Ρ‚Ρ‡ для Ардуино, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° perl ΠΏΠΎ сбору Π΄Π°Π½Π½Ρ‹Ρ…, подправлСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LiquidCrystal для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницСй β„–1, докумСнтация Π½Π° экран ΠœΠ­Π›Π’

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ LCD с Ардуино Π² качСствС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ΅Ρ€Π° практичСски Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ.
Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€, Π½ΠΎ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΌΠΎΠΆΠ΅Ρ‚. ВрСмя, ΠΏΠΎΠ³ΠΎΠ΄Π°, систСмная информация, дСбаг… ΠšΡΡ‚Π°Ρ‚ΠΈ, Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΠΉ ΠΌΠ½Π΅ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ β€” отслСТиваниС Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚ΠΎΠ² Π² uTorrent Ρ‡Π΅Ρ€Π΅Π· Π΅Π³ΠΎ WebAPI…

Но Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ β€” это ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ ΠΎΡ‚ Ρ…ΠΎΠ±Π±ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Π°ΠΌ ΠΈ ТСлаю!

habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *