Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ дисплСй ΠΊ Arduino: схСмы ΠΈ ΠΊΠΎΠ΄

Π’ ΠΌΠΈΡ€Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ визуализация Π΄Π°Π½Π½Ρ‹Ρ… часто становится ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ этапом прСвращСния ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ устройство. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ дисплСя ΠΊ Arduino позволяСт Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ показания Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², мСню настроСк ΠΈΠ»ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Π΅Π· нСобходимости ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ. Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для создания ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… мСтСостанций, осциллографов, часов ΠΈ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ управлСния.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ€Ρ‹Π½ΠΎΠΊ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² экранов, ΠΎΡ‚ простых ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π΄ΠΎ Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ… TFT-ΠΏΠ°Π½Π΅Π»Π΅ΠΉ. Однако, нСсмотря Π½Π° Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌ-Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈΡ… взаимодСйствия с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ часто Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° стандартных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ… ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ПониманиС этих ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ распространСнных ошибок ΠΏΡ€ΠΈ сборкС схСмы.

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

Π’Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° дисплСя ΠΈ интСрфСйса ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° экрана, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ†Π²Π΅Ρ‚ΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ доступных Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Π½Π° вашСй ΠΏΠ»Π°Ρ‚Π΅ Arduino. НаиболСС распространСнными Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ LCD-экраны с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ HD44780, OLED-ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ TFT-дисплСи.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ дисплСя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ свой ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» связи, Ρ‡Ρ‚ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° количСство Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… ΠΏΠΈΠ½ΠΎΠ² ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ обновлСния ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ. НапримСр, классичСскиС LCD 1602 Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ мноТСства ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ соврСмСнныС OLED-экраны часто Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡˆΠΈΠ½Ρ‹, экономя ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

  • πŸ–₯️ LCD 1602/2004: классичСскиС тСкстовыС экраны с подсвСткой, ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ для Π²Ρ‹Π²ΠΎΠ΄Π° строк символов ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ статусов.
  • πŸŒ‘ OLED (SSD1306): ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с высокой ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌ Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ любом освСщСнии ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ ΠΌΠ°Π»ΠΎ энСргии.
  • 🎨 TFT (ILI9341): Ρ†Π²Π΅Ρ‚Π½Ρ‹Π΅ дисплСи с высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, изобраТСния ΠΈ слоТныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: НСкоторыС Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ OLED-дисплСи 0.96 дюйма ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ адрСс I2C 0x3C вмСсто стандартного 0x3D. Если экран Π½Π΅ опрСдСляСтся, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ адрСс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сканСра шин.

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° напряТСниС питания Π»ΠΎΠ³ΠΈΠΊΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных дисплССв Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΡ‚ 3.3Π’, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ классичСская Arduino Uno ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ 5Π’. Π₯отя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнныС стабилизаторы, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΡΡ‚Π°Π±Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

πŸ“Š Какой дисплСй Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ?
LCD 1602
OLED 0.96
TFT Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ
E-Ink
Π”Ρ€ΡƒΠ³ΠΎΠΉ

НСобходимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° оборудования

Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Π°ΠΌ потрСбуСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сама ΠΏΠ»Π°Ρ‚Π° Arduino ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ дисплСй. ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ соСдинСниС ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€ΠΎΠ»ΡŒ, особСнно Ссли Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ экраны с яркой подсвСткой ΠΈΠ»ΠΈ большой диагональю.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ элСмСнтом соСдинСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°. Для прототипирования Π»ΡƒΡ‡ΡˆΠ΅ всСго подходят качСствСнныС дюпон-ΠΊΠ°Π±Π΅Π»ΠΈ (Dupont). Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΏΠ»ΠΎΡ‚Π½ΠΎ ΠΏΡ€ΠΈΠ»Π΅Π³Π°ΡŽΡ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π² шинС Π΄Π°Π½Π½Ρ‹Ρ… часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию "Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ²" ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡŽ изобраТСния.

  • πŸ”Œ ΠœΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Π° (Breadboard): Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π±Π΅Π· ΠΏΠ°ΠΉΠΊΠΈ ΠΈ тСстирования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… схСм ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.
  • πŸ”‹ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ питания: USB-кабСль ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ достаточный Ρ‚ΠΎΠΊ для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… TFT-экранов, рассмотритС внСшнСС ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅.
  • πŸ“ ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Ρ‚Ρ€: Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ инструмСнт для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности Π»ΠΈΠ½ΠΈΠΉ связи ΠΈ наличия напряТСния Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°Ρ… VCC ΠΈ GND.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания заслуТиваСт вопрос ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… рСзисторов. ΠŸΡ€ΠΈ использовании интСрфСйса I2C (для OLED ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… LCD) Π½Π° ΡˆΠΈΠ½Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… SDA ΠΈ SCL часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ рСзисторы Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ 4.7 кОм. МногиС Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΡ… Π½Π° ΠΏΠ»Π°Ρ‚Π΅, Π½ΠΎ Π² ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сборках ΠΈΡ… отсутствиС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ связь Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ мСста Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½Π°. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСн Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для USB-ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π° вашСй ΠΏΠ»Π°Ρ‚Ρ‹ Arduino (CH340, FT232 ΠΈΠ»ΠΈ ATmega16U2). Π‘Π΅Π· ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠ΄Π° Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, нСзависимо ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ собранной схСмы.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ OLED дисплСя Ρ‡Π΅Ρ€Π΅Π· I2C

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ I2C (Inter-Integrated Circuit) являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых популярных способов ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈ благодаря своСй простотС ΠΈ экономии Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ². Для соСдинСния трСбуСтся всСго Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°: Π΄Π²Π° для питания ΠΈ Π΄Π²Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ количСством свободных ΠΏΠΈΠ½ΠΎΠ².

Π’ Arduino Uno, Nano ΠΈ Mini Π²Ρ‹Π²ΠΎΠ΄Ρ‹ I2C ТСстко зафиксированы. Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (SDA) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΈΠ½ A4, Π° для тактирования (SCL) β€” ΠΏΠΈΠ½ A5. Π’ ΠΏΠ»Π°Ρ‚Π°Ρ… Arduino Mega ситуация иная: SDA находится Π½Π° ΠΏΠΈΠ½Π΅ 20, Π° SCL Π½Π° ΠΏΠΈΠ½Π΅ 21. Ошибка Π² Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΠΈΠ½ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ дисплСй останСтся Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ.

Пин дисплСя Arduino Uno/Nano Arduino Mega ОписаниС
VCC 5V (ΠΈΠ»ΠΈ 3.3V) 5V (ΠΈΠ»ΠΈ 3.3V) ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅
GND GND GND ЗСмля
SCL A5 21 Π’Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ сигнал
SDA A4 20 Линия Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈ сборкС схСмы ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π»ΠΈ Π»ΠΈΠ½ΠΈΠΈ SDA ΠΈ SCL. Π₯отя физичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ систСма Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. НСкоторыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΈΠ½ΠΎΠ² Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ сторонС ΠΏΠ»Π°Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΌΠΎΠ½Ρ‚Π°ΠΆ.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ I2C

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ дисплСй с Ρ€Π°Π·ΡŠΠ΅ΠΌΠΎΠΌ SPI, схСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€Π° Ρ‡ΠΈΠΏΠ° (CS) ΠΈ сброса (RST). Однако для Π½Π°Ρ‡Π°Π»Π° рСкомСндуСтся ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ I2C Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ минимального количСства соСдинСний ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ Π² ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅.

Настройка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ срСды Arduino IDE

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° базируСтся Π½Π° спСциализированных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π΅Ρ€ΡƒΡ‚ Π½Π° сСбя Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ дисплССм. Для OLED экранов с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ SSD1306 стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ стала Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Adafruit_SSD1306, которая Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ установки зависимой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Adafruit_GFX для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ.

Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· мСню Sketch β†’ Include Library β†’ Manage Libraries Π² срСдС Arduino IDE. Π’ поисковой строкС Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Install. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ устанавливаСтС вСрсии ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Adafruit ΠΈΠ»ΠΈ SparkFun, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ рСгулярно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ.

ПослС установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ΄ ваш ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ дисплСй. Π’ Ρ„Π°ΠΉΠ»Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Adafruit_SSD1306.h Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ строку, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ экрана, ΠΈ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это выглядит ΠΊΠ°ΠΊ #define SSD1306_128_64 ΠΈΠ»ΠΈ #define SSD1306_128_32.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ скСтча Π½Π° экранС ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ полосы ΠΈΠ»ΠΈ искаТСния, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ адрСс дисплСя Π² ΠΊΠΎΠ΄Π΅ с 0x3D Π½Π° 0x3C Π² строкС создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° display.begin().

Для LCD дисплССв с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ HD44780 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стандартная встроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LiquidCrystal ΠΈΠ»ΠΈ Π΅Ρ‘ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ вСрсия LiquidCrystal_I2C для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· I2C-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ настройки Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½: установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ адрСса ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² экрана.

Π“Π΄Π΅ Π½Π°ΠΉΡ‚ΠΈ адрСс I2C устройства?

Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ адрСс вашСго дисплСя, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ скСтч "I2C Scanner". Он просканируСт ΡˆΠΈΠ½Ρƒ ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π² Serial Monitor всС Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ устройства с ΠΈΡ… HEX-адрСсами. Π­Ρ‚ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для любой I2C ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° экран

ПослС настройки окруТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ написанию ΠΊΠΎΠ΄Π°. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм всСгда начинаСтся с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° дисплСя ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setup(). Π‘Π΅Π· ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ дальнСйшая Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ loop() происходит основная Π»ΠΎΠ³ΠΈΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π°. Для тСкстовых экранов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° print() ΠΈΠ»ΠΈ println(), Π° для графичСских β€” ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ рисования Ρ‚ΠΎΡ‡Π΅ΠΊ, Π»ΠΈΠ½ΠΈΠΉ ΠΈ ΠΊΡ€ΡƒΠ³ΠΎΠ².

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128

#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {

// ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Ссли дисплСй Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½

for(;;);

}

display.clearDisplay();

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(0,0);

display.println("Hello Arduino!");

display.display();

}

БуфСризация β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с графичСскими дисплСями. ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ рисования происходят Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° display() ΠΈΠ»ΠΈ display.display() ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ мСрцания ΠΏΡ€ΠΈ слоТных вычислСниях.

Для динамичСского обновлСния Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ вСсь экран. МоТно ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ†ΠΈΡ„Ρ€ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π²Π΅Ρ€ΡΠΈΡŽ Ρ†Π²Π΅Ρ‚Π° для обновлСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ символа. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ интСрфСйса.

Π Π°Π±ΠΎΡ‚Π° с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ

ГрафичСскиС дисплСи ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΉΡ‚ΠΈ Π·Π° Ρ€Π°ΠΌΠΊΠΈ простого тСкста. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ гСомСтричСскиС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π»ΠΈΠ½ΠΈΠΈ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ изобраТСния (bitmap). Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ drawCircle(), drawRect() ΠΈ drawBitmap().

ОсобоС мСсто Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ°Π»ΠΎ памяти, Π½ΠΎ выглядят ΡƒΠ³Π»ΠΎΠ²Π°Ρ‚ΠΎ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GFX ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Adafruit GFX Font, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· стандартных TTF/OTF Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ½Π»Π°ΠΉΠ½-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ красивыС интСрфСйсы.

  • πŸ“ ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹: систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ начинаСтся с Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π° (0,0). X растСт Π²ΠΏΡ€Π°Π²ΠΎ, Y β€” Π²Π½ΠΈΠ·. Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ это ΠΏΡ€ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ элСмСнтов.
  • 🎨 Π¦Π²Π΅Ρ‚Π°: Π½Π° ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Ρ… экранах доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ BLACK ΠΈ WHITE. На Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ… TFT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 16-битная ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ†Π²Π΅Ρ‚Π° (5-6-5 Π±ΠΈΡ‚ для RGB).
  • ⚑ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: отрисовка слоТных ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄, пСрСрисовывая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ области.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ слоТной Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒ Arduino ΠΌΠΎΠΆΠ΅Ρ‚ быстро Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒΡΡ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ с большим объСмом Flash ΠΈ RAM, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Arduino Mega ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹ Π½Π° Π±Π°Π·Π΅ ESP32, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимы с описанными Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИспользованиС Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ… для ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ использования памяти Π² консоли компилятора ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Для создания слоТных интСрфСйсов с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈ слайдСрами ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Adafruit GFX Button ΠΈΠ»ΠΈ TFT_eSPI. Они ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ касаний (Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ тачскрин) ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ мСню, бСря Π½Π° сСбя ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ пСрСсСчСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли дисплСй ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ "garbage" (ΠΊΠ°ΡˆΡƒ ΠΈΠ· символов)?

Π§Π°Ρ‰Π΅ всСго это ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‡ΠΈΠΏΡƒ Π½Π° вашСм экранС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SSD1306, ST7735, ILI9341). Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ питания β€” Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ° Ρ‚ΠΎΠΊΠ° часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹.

МоТно Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ дисплСй ΠΊ Arduino Π±Π΅Π· ΠΏΠ°ΠΉΠΊΠΈ?

Π”Π°, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ дисплССв ΠΈΠΌΠ΅ΡŽΡ‚ Π³Ρ€Π΅Π±Π΅Π½ΠΊΡƒ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ отвСрстия ΠΏΠΎΠ΄ ΠΏΠΈΠ½-Ρ…Π΅Π΄Π΅Ρ€Ρ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Dupont, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ схСму Π±Π΅Π· использования паяльника. Π­Ρ‚ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для обучСния ΠΈ прототипирования.

Как ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΡ€ΠΊΠΎΡΡ‚ΡŒ OLED дисплСя?

Π―Ρ€ΠΊΠΎΡΡ‚ΡŒΡŽ OLED ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Adafruit_SSD1306 для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ display.setContrast(value), Π³Π΄Π΅ value β€” число ΠΎΡ‚ 0 Π΄ΠΎ 255. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ физичСский рСзистор Π½Π° ΠΏΠ»Π°Ρ‚Π΅, Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊ подсвСтки.