Arduino ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ с дисплССм: ΠΎΡ‚ простых ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΎ слоТных интСрфСйсов

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

Π’ соврСмСнном ΠΌΠΈΡ€Π΅ DIY-элСктроники доступно мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² экранов, ΠΎΡ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… сСмисСгмСнтных ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΎ Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ… TFT-ΠΌΠ°Ρ‚Ρ€ΠΈΡ† с сСнсорным ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ. Arduino Uno ΠΈΠ»ΠΈ Nano Π»Π΅Π³ΠΊΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ популярных ΠΌΠ°Ρ‚Ρ€ΠΈΡ† благодаря Π±ΠΎΠ³Π°Ρ‚ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ дисплСя ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ спСцифичСского ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ написанию ΠΊΠΎΠ΄Π°.

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

Π’Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° дисплСя для Arduino

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π² создании любого Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса являСтся Π²Ρ‹Π±ΠΎΡ€ подходящСй ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Π Ρ‹Π½ΠΎΠΊ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΈ Π½ΠΎΠ²ΠΈΡ‡ΠΊΡƒ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ Π² Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°Ρ…. ЖидкокриличСскиС дисплСи (LCD) ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ классикой благодаря Π½ΠΈΠ·ΠΊΠΎΠΉ Ρ†Π΅Π½Π΅ ΠΈ простотС, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ограничСния ΠΏΠΎ ΡƒΠ³Π»Π°ΠΌ ΠΎΠ±Π·ΠΎΡ€Π° ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅. Для Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π³Π΄Π΅ трСбуСтся высокая ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°Π»ΠΎΠ΅ энСргопотрСблСниС, идСально подходят OLED-экраны.

Если Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° цвСтная Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° TFT-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ слоТныС изобраТСния, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ большС рСсурсов процСссора ΠΈ памяти. Для Arduino Uno максимальноС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ экрана Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ 128x160 пиксСлСй. Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ SPI ΠΈ I2C интСрфСйсами Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅Π½: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ быстрСС, Π²Ρ‚ΠΎΡ€ΠΎΠΉ экономит ΠΏΠΈΠ½Ρ‹, Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅.

  • πŸ“Ί LCD 1602/2004 β€” классичСскиС тСкстовыС экраны с синСй ΠΈΠ»ΠΈ Π·Π΅Π»Π΅Π½ΠΎΠΉ подсвСткой, ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ для Π²Ρ‹Π²ΠΎΠ΄Π° строк тСкста.
  • ⚫ OLED 0.96" β€” ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° органичСских свСтодиодах с Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌ Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΈ высоким контрастом.
  • 🎨 TFT ILI9341 β€” Ρ†Π²Π΅Ρ‚Π½Ρ‹Π΅ экраны с высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, подходящиС для создания мСню ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ².
  • πŸ“Ÿ E-Ink β€” элСктронныС Ρ‡Π΅Ρ€Π½ΠΈΠ»Π°, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ послС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ питания, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ дисплСя ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ провСряйтС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ напряТСниС Π»ΠΎΠ³ΠΈΠΊΠΈ. МногиС соврСмСнныС OLED ΠΈ TFT ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΡ‚ 3.3Π’, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ классичСская Arduino Uno Π²Ρ‹Π΄Π°Π΅Ρ‚ 5Π’. ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΡΠΎΠ³Π»Π°ΡΡƒΡŽΡ‰ΠΈΡ… рСзисторов ΠΈΠ»ΠΈ прСобразоватСля ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ экрана ΠΈΠ· строя ΠΈΠ»ΠΈ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.

НС стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎ физичСских Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ…. Для носимых устройств ΠΈΠ»ΠΈ Π±Ρ€Π΅Π»ΠΎΠΊΠΎΠ² ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π½Ρ‹Π΅ 0.42-Π΄ΡŽΠΉΠΌΠΎΠ²Ρ‹Π΅ OLED ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Для стационарных ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ мСтСостанции ΠΈΠ»ΠΈ часы, Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ экраны диагональю ΠΎΡ‚ 1.3 дюйма ΠΈ Π²Ρ‹ΡˆΠ΅. ΠŸΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒ пиксСлСй (PPI) Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ: Π½Π° ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… экранах ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ слишком ΠΌΠ΅Π»ΠΊΠΈΠΌΠΈ, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ LCD 1602 Ρ‡Π΅Ρ€Π΅Π· I2C Π°Π΄Π°ΠΏΡ‚Π΅Ρ€

Π‘Π°ΠΌΡ‹ΠΉ доступный способ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ дисплСй LCD 1602. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ всС Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΏΠΈΠ½Ρ‹ Arduino, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². РСшСниСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ являСтся использованиС I2C модуля (Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ припаиваСтся ΠΈΠ»ΠΈ вставляСтся Π² Π³Ρ€Π΅Π±Π΅Π½ΠΊΡƒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² экрана.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΊΠΎΠΉ связкой Π² срСдС Arduino IDE Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal_I2C. Она Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄, оставляя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ строки для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… (SDA ΠΈ SCL). На ΠΏΠ»Π°Ρ‚Π°Ρ… Uno эти ΠΏΠΈΠ½Ρ‹ находятся Π½Π° A4 ΠΈ A5 соотвСтствСнно. АдрСс устройства ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ часто Π±Ρ‹Π²Π°Π΅Ρ‚ 0x27 ΠΈΠ»ΠΈ 0x3F, ΠΈ Π΅Π³ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° приходится ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ сканирования ΡˆΠΈΠ½Ρ‹.

Код для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста максимально прост ΠΈ понятСн. ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° экрана Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setup() ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ подсвСтку ΠΈ ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ Π±ΡƒΡ„Π΅Ρ€. Π’ Ρ†ΠΈΠΊΠ»Π΅ loop() ΠΌΠΎΠΆΠ½ΠΎ динамичСски ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройства ΠΈΠ»ΠΈ показания счСтчика.

#include 

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {

lcd.init();

lcd.backlight();

lcd.setCursor(0, 0);

lcd.print("Hello Arduino!");

}

Π’Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ обновлСния I2C ΡˆΠΈΠ½Ρ‹ составляСт 100 ΠΊΠ“Ρ† (стандартный Ρ€Π΅ΠΆΠΈΠΌ) ΠΈΠ»ΠΈ 400 ΠΊΠ“Ρ† (ускорСнный). Для статичного тСкста ΠΈΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, врСмя) этой скорости Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ достаточно. Однако Ссли Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ быстро ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΌΠ΅Ρ€Ρ†Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Π Π°Π±ΠΎΡ‚Π° с OLED дисплСями Π½Π° Π±Π°Π·Π΅ SSD1306

ΠžΡ€Π³Π°Π½ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ свСтодиодныС дисплСи ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π»ΠΈ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΡŽ Π² ΠΌΠΈΡ€Π΅ носимой элСктроники. МодСль SSD1306 стала стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Arduino благодаря своСй доступности ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ качСству ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ LCD, здСсь ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль Π³ΠΎΡ€ΠΈΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ обСспСчиваСт ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ ΠΈ экономит ΡΠ½Π΅Ρ€Π³ΠΈΡŽ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Ρ‚Π΅ΠΌΠ½Ρ‹Ρ… интСрфСйсов.

Для программирования Ρ‚Π°ΠΊΠΈΡ… экранов Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Adafruit_SSD1306 совмСстно с Adafruit_GFX. Π­Ρ‚Π° связка позволяСт Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст, Π½ΠΎ ΠΈ гСомСтричСскиС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π»ΠΈΠ½ΠΈΠΈ ΠΈ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ (bitmap). ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ осущСствляСтся ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ I2C, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠΎΠ½Ρ‚Π°ΠΆ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ: всСго Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° (VCC, GND, SDA, SCL).

πŸ“Š Какой дисплСй Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅?
LCD 1602 (тСкстовый)
OLED 0.96 (ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ)
TFT (Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ)
E-Ink (элСктронныС Ρ‡Π΅Ρ€Π½ΠΈΠ»Π°)

Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… особСнностСй OLED являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ пиксСлями. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои собствСнныС ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΈΠΊΠΎΠ½ΠΊΠΈ. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Π²Ρ‹Π³ΠΎΡ€Π°Π½ΠΈΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠΊΠΈ. Если статичная ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ ΠΈΠ»ΠΈ часы) Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π΅Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ мСстС слишком Π΄ΠΎΠ»Π³ΠΎ Π½Π° максимальной яркости, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ "ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒΡΡ" Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ навсСгда.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: НС оставляйтС OLED дисплСй Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ с статичным ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° максимальной яркости Π½Π° нСсколько часов подряд. Для продлСния срока слуТбы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ скринсСйвСры, ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ†Π²Π΅Ρ‚Π° periodically ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΠΉΡ‚Π΅ ΡΡ€ΠΊΠΎΡΡ‚ΡŒ Π² настройках Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… экранов ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ составляСт 128x64 ΠΈΠ»ΠΈ 128x32 пиксСля. НСсмотря Π½Π° ΠΌΠ°Π»Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, этого Π²ΠΏΠΎΠ»Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ для создания ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… мСню с нСсколькими уровнями влоТСнности. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GFX прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для курсора, позволяя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ экрану ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ тСкст Π² любой ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π΅.

Π¦Π²Π΅Ρ‚Π½Ρ‹Π΅ TFT экраны ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° TFT_eSPI

Когда Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ становится ΠΌΠ°Π»ΠΎ, Π² ΠΈΠ³Ρ€Ρƒ Π²ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ TFT дисплСи. Π­Ρ‚ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ ILI9341, ST7735 ΠΈΠ»ΠΈ HX8357. Π Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌΠΈ слоТнСС ΠΈΠ·-Π·Π° большого количСства Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ часто Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, поэтому ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ TFT_eSPI.

Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ ускорСниС SPI для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚ Arduino ΠΈ ESP, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ прирост скорости отрисовки Π² Ρ€Π°Π·Ρ‹. ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ User_Setup.h, ΡƒΠΊΠ°Π·Π°Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ ΠΏΠΈΠ½Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ слоТным для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°, Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΠ³ΠΎ стоит.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ LCD 1602 OLED SSD1306 TFT ILI9341
Π’ΠΈΠΏ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ЖидкокристалличСская ΠžΡ€Π³Π°Π½ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ свСтодиоды Π’ΠΎΠ½ΠΊΠΎΠΏΠ»Π΅Π½ΠΎΡ‡Π½Ρ‹Π΅ транзисторы
Π¦Π²Π΅Ρ‚ΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠœΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌ (с подсвСткой) ΠœΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌ ΠŸΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Π°Ρ (65k Ρ†Π²Π΅Ρ‚ΠΎΠ²)
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Parallel / I2C I2C / SPI SPI / 8-bit Parallel
ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π‘Ρ€Π΅Π΄Π½Π΅Π΅ НизкоС ВысокоС

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с TFT Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ экрана. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° позволяСт ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 90, 180 ΠΈΠ»ΠΈ 270 градусов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. Π’Π°ΠΊΠΆΠ΅ доступна функция установки области отрисовки, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ части экрана (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†ΠΈΡ„Ρ€ часов), Π½Π΅ пСрСрисовывая вСсь Ρ„ΠΎΠ½.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ графичСского интСрфСйса ΠΈ мСню

ΠŸΡ€ΠΎΡΡ‚ΠΎ вывСсти тСкст Π½Π° экран β€” это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΎ. Настоящая инТСнСрия начинаСтся, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ систСму Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. ГрафичСский интСрфСйс (GUI) Π½Π° Arduino ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ строится Π½Π° основС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° (state machine). Π’Ρ‹ опрСдСляСтС состояния: "Π“Π»Π°Π²Π½ΠΎΠ΅ мСню", "Настройки", "Π“Ρ€Π°Ρ„ΠΈΠΊ", ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π² зависимости ΠΎΡ‚ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΠΊΠ½ΠΎΠΏΠΎΠΊ.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ мСню часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ массивы строк ΠΈΠ»ΠΈ структур, хранящих ΠΏΡƒΠ½ΠΊΡ‚Ρ‹. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ "Π’Π²Π΅Ρ€Ρ…" ΠΈΠ»ΠΈ "Π’Π½ΠΈΠ·" индСкс Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта мСняСтся, ΠΈ экран пСрСрисовываСтся. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ мСрцания, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ буфСризирования (Ссли позволяСт ΠΏΠ°ΠΌΡΡ‚ΡŒ) ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ области.

β˜‘οΈ ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ интСрфСйса

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

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½Π°. ИспользованиС Ρ€Π°ΠΌΠΎΠΊ, ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΎΠΊ β€” всС это Π΄Π΅Π»Π°Π΅Ρ‚ устройство ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Adafruit GFX позволяСт Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³ΠΈ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ ΠΈ Π»ΠΈΠ½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ достаточно для создания простых ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ².

НС стоит ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ интСрфСйс. На малСньком экранС 128x64 пиксСлСй Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 4-5 ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π¨Ρ€ΠΈΡ„Ρ‚Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅, избСгая засСчСк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ "ΠΏΠ»Ρ‹Ρ‚ΡŒ" Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ памяти ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ ATmega328P (основа Arduino Uno) ΠΈΠΌΠ΅ΡŽΡ‚ всСго 32 ΠšΠ‘ Ρ„Π»ΡΡˆ-памяти ΠΈ 2 ΠšΠ‘ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти (SRAM). Π“Ρ€Π°Ρ„ΠΈΠΊΠ° "ΡΡŠΠ΅Π΄Π°Π΅Ρ‚" эти рСсурсы ΠΎΡ‡Π΅Π½ΡŒ быстро. Один Π±Π°ΠΉΡ‚ Π² SRAM Ρ…Ρ€Π°Π½ΠΈΡ‚ 8 пиксСлСй ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ изобраТСния, Π½ΠΎ для Ρ†Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ TFT ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ 2 Π±Π°ΠΉΡ‚Π° Π½Π° пиксСль. ΠŸΠΎΠ»Π½ΠΎΡΠΊΡ€Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 128x128 Π² 16-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ†Π²Π΅Ρ‚Π΅ Π·Π°ΠΉΠΌΠ΅Ρ‚ 32 ΠšΠ‘, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ всю Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ!

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, изобраТСния ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ хранят Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ памяти (Flash), Π° Π½Π΅ Π² RAM. Для этого Π² ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ PROGMEM. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GFX ΠΈ TFT_eSPI ΡƒΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Ρ„Π»ΡΡˆ-памяти, загруТая Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСбольшиС Π±ΡƒΡ„Π΅Ρ€Ρ‹ для отрисовки.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ буфСризация?

БуфСризация β€” это процСсс Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² быстрой памяти ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π½Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ устройство (экран). Полная буфСризация ΠΊΠ°Π΄Ρ€Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ RAM, поэтому часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‡Π°ΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ отрисовку построчно.

Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ использованиС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ динамичСского выдСлСния памяти. КаТдоС созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΡƒΡ‡ΠΈ ΠΈ eventual crash ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. БтатичСскоС распрСдСлСниС памяти β€” Π·ΠΎΠ»ΠΎΡ‚ΠΎΠΉ стандарт для встраиваСмых систСм.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ вСсти сСбя нСпрСдсказуСмо ΠΈΠ»ΠΈ Arduino ΡΠ°ΠΌΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ пСрСзагруТаСтся ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, скорСС всСго, Π²Ρ‹ исчСрпали ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ (SRAM). ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простыС ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ с большим объСмом памяти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Arduino Mega ΠΈΠ»ΠΈ ESP32.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

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

Π”Π°, Arduino Nano ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстима с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ дисплССв (LCD, OLED, TFT), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ связи (I2C, SPI) ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ достаточноС количСство ΠΏΠΈΠ½ΠΎΠ². ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Arduino Uno.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π° OLED экранС тСкст ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½?

Π­Ρ‚ΠΎ зависит ΠΎΡ‚ заводской настройки ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° дисплСя. Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Adafruit_SSD1306 Π΅ΡΡ‚ΡŒ функция display.setRotation(0-3), которая позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 0, 90, 180 ΠΈΠ»ΠΈ 270 градусов.

Какой дисплСй Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для часов?

Для часов ΠΈΠ΄Π΅Π°Π»Π΅Π½ OLED экран благодаря высокому контрасту ΠΈ возмоТности Π³Π°ΡΠΈΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ пиксСли (экономия Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ). Π’Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ сСгмСнтныС LCD ΠΈΠ»ΠΈ E-Ink дисплСи, Ссли Π²Π°ΠΆΠ½Π° Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΡΡ‚ΡŒ Π² нСсколько мСсяцСв.

НуТСн Π»ΠΈ рСзистор для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ I2C дисплСя?

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° модулях дисплССв ΡƒΠΆΠ΅ установлСны ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы ΡˆΠΈΠ½Ρ‹ I2C. Однако, Ссли шина длинная ΠΈΠ»ΠΈ Π½Π° Π½Π΅ΠΉ висит ΠΌΠ½ΠΎΠ³ΠΎ устройств, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ установка Π²Π½Π΅ΡˆΠ½ΠΈΡ… рСзисторов 4.7 кОм ΠΌΠ΅ΠΆΠ΄Ρƒ SDA/SCL ΠΈ VCC.