ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя 2019 ΠΊ Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ ΠΏΠΎ i2c: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя LCD 1602 ΠΊ arduino ΠΏΠΎ i2c / IIC с ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ΠΎΠΌ

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

arduino 20×4 lcd i2c code

Β 

[adrotate banner =”7β€³]
Β 
ДисплСй ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΡŒ Π½Π° Π΄Π²Π° устройства, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ 16 столбцы ΠΏΠΎ Π΄Π²Π΅ строки символов. Π‘ΡƒΠΊΠ²Ρ‹ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС символы для основных графичСских гистограмм. Π’Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° дисплСй ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ HD44780., Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€ΡŽΠΊΠ·Π°ΠΊ I Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ C., Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ uno you. Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π–Πš-дисплСй ΠΊ Ρ€Π°Π·ΡŠΠ΅ΠΌΡƒ uno.. Для этого я Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈ., ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π° Π–Πš-дисплСС ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅ VCC s da ΠΈ s CL Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ Π·Π΅ΠΌΠ»Π΅. Пин Π½Π° ΡƒΠ½ΠΎ. Π’Ρ‹Π²ΠΎΠ΄ VCC — это ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Π½Π° дисплСС, ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚ пяти Π²ΠΎΠ»ΡŒΡ‚., Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ ΠΏΡΡ‚ΠΈΠ²ΠΎΠ»ΡŒΡ‚ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ Π½Π° uno. SD, ΡˆΡ‚Ρ‹Ρ€ΡŒ — это Π΄Π°Π½Π½Ρ‹Π΅ C Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅, ΠΈ ΠΎΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ ΡˆΡ‚Ρ‹Ρ€ΡŽ Ρ‡Π΅Ρ‚Π²Π΅Ρ€ΠΊΠ΅ Π½Π° uno. ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ SCL — это часы C Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅., ΠΈ это связано с пятёркой Π½Π° Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ устройства I Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ C, Ссли ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ссли ΠΌΡ‹ сдСлаСм ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π΄Π»ΠΈΠ½Π½Π΅Π΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСсколько устройств., Ρ‚ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ подтягивания, рСзисторы ΠΊ линиям SDA ΠΈ Scl, Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Arduino для Π–Πš-дисплСя.

Π― использовал ΠΎΠ΄ΠΈΠ½ Ѐрансиско Мал ΠŸΠ°Ρ€Ρ‚ΠΈΠ΄Π°, называСтся Π½ΠΎΠ²Ρ‹ΠΌ ΠΆΠΈΠ΄ΠΊΠΈΠΌ кристаллом, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с сайта bitbucket org. Π―, помСститС ссылку Π² описаниС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² символ I Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ, ΡƒΠ³ΠΎΠ» экрана послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ zip-Ρ„Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π·Π°Ρ‚Π΅ΠΌ запускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Π° arduino ide, Sketch Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ zip-Ρ„Π°ΠΉΠ», Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ zip-Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ. Как я Π½Π°ΠΌΠ΅ΠΊΠ°Π» Ρ€Π°Π½Π΅Π΅, Π― Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ c ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько устройств. КаТдоС устройство прСдставляСт собой сСмибитный адрСс для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. НС всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ адрСс Ρƒ устройства., Π½ΠΎ Π½Π°ΠΉΡ‚ΠΈ это, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сканСр ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π° C, Π΅Ρ‰Π΅ Ρ€Π°Π· Π½Π°Π±Ρ€ΠΎΡΠ°ΡŽ ссылку Π² описании ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ, поэтому Π½Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скСтч, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°, ΠΈ ΠΎΠ½ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ C-адрСса Π–Πš-дисплСя. Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ C-адрСса Π–Πš-дисплСя ΠΈ установили Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ простой набросок.. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€ Π½Π° Π–Πš-дисплСС. ΠŸΠ΅Ρ€Π²Π°Ρ строка Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ². Вторая строка Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΆΠΈΠ΄ΠΊΠΎΠΊΡ€ΠΈΡΡ‚Π°Π»Π»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ C I Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ установили Ρ€Π°Π½Π΅Π΅.. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΆΠΈΠ΄ΠΊΠΈΠΌ кристаллом I Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ C, для обСспСчСния связи I Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ C с Ρ€ΡŽΠΊΠ·Π°ΠΊΠΎΠΌ Π½Π° Π–Πš-дисплСС. Π’Ρ€Π΅Ρ‚ΡŒΡ линия. Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΈΠ»ΠΈ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π–Πš-дисплССм, с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π–Πš-дисплСя..

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — это ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ C-адрСса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ нашли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скСтча сканСра C I Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ назначСния ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² для ПК f8 5748 Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ. Io expand Ρ‡ΠΈΠΏ Π½Π° Ρ€ΡŽΠΊΠ·Π°ΠΊΠ΅ I Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ C Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€ΡŽΠΊΠ·Π°ΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ‚ΠΎΠ³Π΄Π° эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, потрСбуСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Begin ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ интСрфСйс для Π–Πš-дисплСя ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ экран, ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота чистыС, ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π–Πš-дисплСй ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. ΠšΡƒΡ€ΡΠΎΡ€ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ, ΡƒΠ³ΠΎΠ» ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΎΠ² Π½Π° Π–Πš-дисплСС. Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ скомпилируСм это ΠΈ посмотрим, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ с Π²Π°ΠΌΠΈ.. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, поставляСмый с Π½ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΆΠΈΠ΄ΠΊΠΈΡ… кристаллов, просто ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²., ΠΆΠΈΠ΄ΠΊΠΎΡΡ‚ΡŒ, кристалл ΠΈ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€, Π― Π²ΠΎΠ·Π»ΠΎΠΆΠΈΠ» C. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС. Нам просто Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΆΠΈΠ΄ΠΊΠΎΠ³ΠΎ кристалла Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ C, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ я, просто ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ…, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эскиз ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, ΠΈ ΠΎΠ½ создаст Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π½Π° Π–Πš-дисплСС. Π•ΡΡ‚ΡŒ нСсколько Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с исходной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΆΠΈΠ΄ΠΊΠΈΡ… кристаллов.. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΆΠΈΠ΄ΠΊΠΎΠΊΡ€ΠΈΡΡ‚Π°Π»Π»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΆΠΈΠ΄ΠΊΠΎΠ³ΠΎ кристалла I Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ C, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΆΠΈΠ΄ΠΊΠΈΠΉ кристалл ΠΆΠΈΠ΄ΠΊΠΈΠΌ кристаллом. Π― скомпилировал C ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» скСтч, ΠΈ Π½Π° этот Ρ€Π°Π· ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€. Π² Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли Π–Πš-дисплСй Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ° ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ скСтч сканСра C Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ C ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ адрСс устройства Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ C.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π–Πš-дисплСя ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, установлСна ​​ли ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ° свСтодиода. НадСюсь, Π²Ρ‹ нашли это ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.. Если Π±Ρ‹ Ρ‚Ρ‹ сдСлал, Ρ‚ΠΎΠ³Π΄Π°, поТалуйста, ΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π»Π°ΠΉΠΊ ΠΈ посмотритС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΌΠΎΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΎ Π½ΠΎΠ²Ρ‹Ρ… Π²ΠΈΠ΄Π΅ΠΎ, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ подписки. Π― ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°ΡŽ ссылки Π² описании Π²ΠΈΠ΄Π΅ΠΎ, ΠΈ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² символ I Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ экрана..

Β 
Β 

[adrotate banner =”1β€³]

[mam_video id = xVC0X_PE_XE]

Β 

Β 

[adrotate banner =”2β€³]

Β 

[mam_tag id = 3580]

Β 

Β 

[adrotate banner =”3β€³]

Β 

Β 

Β 

Β 

Β 

Β 

[adrotate banner =”4β€³]

Β 

Β 

Β 

Β 

[adrotate banner =”5β€³]

Β 

Β 

πŸ‘‹ Π₯ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ принСсти Π’ΠΎΠ½ΠΈ Π‘Ρ‚Π°Ρ€ΠΊ, ΠΊΠ°ΠΊ ТСст управлСния для Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²? Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ с BLE ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ WiFi МКРА 1010 ΠΈ Nano 33 BLE доски Sense, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ArduinoBLE.

Ардуин-ΠΉΠΎ-Ρ…ΠΎ-Ρ…ΠΎ! Π―Ρ€ΠΌΠ°Ρ€ΠΎΡ‡Π½ΠΎΠΉ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ, пиратский ΠΊΠΎΡ€Π°Π±Π»ΡŒ прСдставляСт собой интСрСсный способ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ колСбания маятника. Бколько ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΡ, Ρ‚Ρ‹ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΡˆΡŒ? Доступ ΠΊ нашСй Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ Ρ„ΠΈΠ·ΠΈΠΊΠΈ Science Kit ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ сами: http://bit.ly/2oC6L0Q

πŸ”¬ Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ваши Π½ΠΎΠ³ΠΈ ΠΌΠΎΠΊΡ€Ρ‹Π΅, ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Ρ‚ΡŒΡΡ всС Π΄Π΅Π²ΡΡ‚ΡŒ экспСримСнтов. БСгодня ваша: http://bit.ly/2MnQ7fr

Β 

[adrotate banner =”6β€³]

Β 

Lcd 2004 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ ΠΏΠΎ i2c

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ 04.04.2013 11:00:00

LCD I2C ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ дисплСй ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Arduino всСго ΠΏΠΎ Π΄Π²ΡƒΠΌ ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π² ΠšΠΈΡ‚Π°Π΅):

β€’ Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΠ»Π°Ρ‚Π°

Arduino UNO 16U2, либо болСС дСшСвая Arduino UNO Ch440G,

Arduino Nano Ch440G, либо Arduino MEGA 16U2, либо болСС дСшСвая Arduino MEGA Ch440G,

Arduino PRO mini, Π»ΠΈΠ±ΠΎ Arduino Micro

β€’ LCD I2C ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

β€’ Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ тСхничСскиС характСристики:

β€’ ДисплСй: Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ 16Ρ…02 Π»ΠΈΠ±ΠΎ 20Γ—04
β€’ ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ°: Биняя c Π±Π΅Π»Ρ‹ΠΌΠΈ символами
β€’ ΠšΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚: НастраиваСтся ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ
β€’ НапряТСниС питания: 5Π’
β€’ Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ: I2C
β€’ I2C адрСс: 0x27
β€’ Π Π°Π·ΠΌΠ΅Ρ€Ρ‹: 82ΠΌΠΌ x 35ΠΌΠΌ x 18ΠΌΠΌ

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

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…-ΠΏΠΈΠ½ΠΎΠ²Ρ‹ΠΌ Ρ€Π°Π·ΡŠΠ΅ΠΌΠΎΠΌ стандарта 2.54ΠΌΠΌ

SCL: ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия тактирования (Serial CLock)

SDA: ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия Π΄Π°Π½Π½Ρ‹Ρ… (Serial DAta)

VCC: «+» питания

GND: «-» питания

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° интСрфСйс I2C Π½Π° ΠΏΠ»Π°Ρ‚Π°Ρ… Arduino Π½Π° Π±Π°Π·Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² разнятся

LCD I2C ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠΠ° Π±Π°Π·Π΅ ATmega 328LeonardoMEGA, ADK, DUE
SCLA5D3D21
SDAA4D2D20
VCC+5V+5V+5V
GNDGNDGNDGND

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LiquidCrystal_I2C1602V1

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ, распаковываСм ΠΈ Π·Π°ΠΊΠΈΠ΄Ρ‹Π²Π°Π΅ΠΌ Π² ΠΏΠ°ΠΏΠΊΡƒ libraries Π² ΠΏΠ°ΠΏΠΊΠ΅ Arduino. Π’ случаС, Ссли Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ добавлСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Arduino IDE Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ, ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ срСду.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ нСпосрСдствСнно ΠΊ скСтчу. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ стандартный «Hello, world!» ΠΈ для адрСс нашСго сообщСства.

ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнных символов

Π‘ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ тСкста Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, Π±ΡƒΠΊΠ²Ρ‹ английского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° Π·Π°ΡˆΠΈΡ‚Ρ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ дисплСя ΠΈ с Π½ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅Ρ‚. А Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ символа Π² памяти ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅Ρ‚?

НС Π±Π΅Π΄Π°, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ символ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π”Π°Π½Π½Ρ‹ΠΉ способ частично, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² 7 символов, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Π°.

Π―Ρ‡Π΅ΠΉΠΊΠ°, Π² рассматриваСмых Π½Π°ΠΌΠΈ дисплСях, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ 5Ρ…8 Ρ‚ΠΎΡ‡Π΅ΠΊ. ВсС, ΠΊ Ρ‡Π΅ΠΌΡƒ сводится Π·Π°Π΄Π°Ρ‡Π° создания символа, это Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ²ΡƒΡŽ маску ΠΈ Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΠΈ Π² мСстах Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π³ΠΎΡ€Π΅Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Π½ΠΎΠ»ΠΈΠΊΠΈ Π³Π΄Π΅ Π½Π΅Ρ‚.

Π’ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ нарисуСм смайлик.

ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΠ° для Π»Π΅Π³ΠΊΠΎΠ³ΠΎ создания символов

Π’ коммСнтариях участник сообщСства скинул ссылку Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ символов

Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ символов ΠΏΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π²Ρ‹ΡˆΠ΅,

сдСлал ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ слабо )
http://codepen.io/nardist01/pen/RPPvMg?editors=101

Π‘Ρ‚Π°Ρ‚ΡŒΠΈ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅:

ΠšΡƒΠΏΠΈΡ‚ΡŒ Π² России LCD I2C ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

А ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ?

Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Ρ‰Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π΅ всС элСмСнты нашСго сообщСства. ΠœΡ‹ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ Π½ΠΈΠΌ ΠΈ Π² блиТайшСС врСмя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ коммСнтирования статСй Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°.

ΠšΡ‚ΠΎ сказал, Ρ‡Ρ‚ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ дисплСи для символов? КакиС-Ρ‚ΠΎ скучныС Ρ‡ΡƒΠ²Π°ΠΊΠΈ. Если Π±Ρ‹ это Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊ, эти дисплСи Π½Π΅ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΡŽΠ±ΠΈΠΌΡ‹ ΠΈ популярны Π² Arduino срСдС (ΠΊΡƒΠΏΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΡƒΡ‚ https://alexgyver.ru/arduino_shop/). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ Π³Π°ΠΉΠ΄Π° Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ мСня ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚, Π½ΠΎ ΡΡƒΡ‚ΡŒ такая: Π² этих дисплСях Π΅ΡΡ‚ΡŒ 8 ячССк для хранСния β€œΠΊΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹Ρ…β€ символов, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ самому, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ½Π»Π°ΠΉΠ½ сСрвисов Ρ‚ΠΈΠΏΠ° Ρ‚Π°ΠΊΠΎΠ³ΠΎ http://maxpromer.github.io/LCD-Character-Creator/. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ массив Π±Π°ΠΉΡ‚ΠΎΠ² вставляСтся Π² скСтч, пСрСдаётся Π² дисплСй, ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ write(). ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅ΡΡ‚ΡŒ Π½Π° ΠΎΡ„Ρ„ сайтС Ардуино https://www.arduino.cc/en/Reference/LiquidCrystalCreateChar. К слову эти ячСйки Π² памяти Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ мСста с 0 ΠΏΠΎ 7


Π‘Ρ‹Π» Ρƒ мСня ΠΎΡ‡ ΠΊΡ€ΡƒΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, PCdisplay https://alexgyver.ru/pcdisplay/, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π° дисплСС 2004 ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»Π°ΡΡŒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ информация ΠΎ ΠΆΠ΅Π»Π΅Π·Π΅ ПК: Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, для красоты я Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ» ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числами, Π½ΠΎ ΠΈ графичСски, Π² Π²ΠΈΠ΄Π΅ β€œΠΏΠΎΠ»ΠΎΡ загрузки” ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ².

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ получился ΠΎΡ‡Π΅Π½ΡŒ классный, Π½ΠΎ Π²ΠΎΡ‚ я ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Π° ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ вынСсти построСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈ полос Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями? Π’Π΅Π΄ΡŒ ΠΏΠΎ-Π»ΡŽΠ±ΠΎΠΌΡƒ пригодятся ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· вас, Π° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· PCdisplay Π½ΠΎΠ²ΠΈΡ‡ΠΊΡƒ Π½Π΅ ΠΏΠΎΠ΄ силу (ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½ Ρ‚Π°ΠΌ Ρ‡ΡƒΡ‚ΠΊΠ° кривоват…). Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию GyverLCDbars – Π½Π°Π±ΠΎΡ€ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… инструмСнтов для ΡƒΠΊΡ€Π°ΡˆΠ΅Π½ΠΈΡ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² графичСскими элСмСнтами: полосками Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌΠΈ. ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ вСрсия всСгда Π»Π΅ΠΆΠΈΡ‚ Ρƒ мСня Π½Π° GitHub https://github.com/AlexGyver/GyverLCDbars. ВЫКНИ для прямой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°.

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ вас ΠΆΠ΄Ρ‘Ρ‚ 6 ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²: 4 Ρ‚ΠΈΠΏΠ° полос Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ.

Как этим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ? Π”Π° ΠΎΡ‡Π΅Π½ΡŒ просто. Одна функция для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€œΠΊΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹Ρ…β€ символов, вторая – для Π²Ρ‹Π²ΠΎΠ΄Π° Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ элСмСнта с настройками Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π½Π° дисплСС!

Полоса Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ: fillBar(столбСц, строка, ΡˆΠΈΡ€ΠΈΠ½Π°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)

  • Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†: ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ полосы, нумСрация ΠΈΠ΄Ρ‘Ρ‚ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ с нуля
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ°: ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ полосы, нумСрация ΠΈΠ΄Ρ‘Ρ‚ свСрху Π²Π½ΠΈΠ· с нуля
  • Π¨ΠΈΡ€ΠΈΠ½Π°: полная ΡˆΠΈΡ€ΠΈΠ½Π° полосы ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΡˆΠΈΡ€ΠΈΠ½Π° + стартовая позиция ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ (столбСц) Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ дисплСя Π² символах ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ
  • Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: число ΠΎΡ‚ 0 Π΄ΠΎ 100 – ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ заполнСния полосы. Π›ΡŽΠ±Π°Ρ ваша Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° приводится ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ 0-100 ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ардуиновской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ map
  • ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ свои кастомныС символы, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ полосок Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ initBar() для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ дисплСя символов полосы! Полоски Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠ΅ количСство мСст Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ°, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ смотритС Π² самих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…

Π“Ρ€Π°Ρ„ΠΈΠΊ ΠΈΠ· массива: drawPlotArray(столбСц, строка, ΡˆΠΈΡ€ΠΈΠ½Π°, высота, ΠΌΠΈΠ½. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, макс. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, массив) – смотри ΠΏΡ€ΠΈΠΌΠ΅Ρ€!

Π“Ρ€Π°Ρ„ΠΈΠΊ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: drawPlot(столбСц, строка, ΡˆΠΈΡ€ΠΈΠ½Π°, высота, ΠΌΠΈΠ½. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, макс. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°)

  • Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†: нумСрация ΠΈΠ΄Ρ‘Ρ‚ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ с нуля. Начало ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° – ниТняя лСвая Ρ‚ΠΎΡ‡ΠΊΠ°!
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ°: нумСрация ΠΈΠ΄Ρ‘Ρ‚ свСрху Π²Π½ΠΈΠ· с нуля. Начало ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° – ниТняя лСвая Ρ‚ΠΎΡ‡ΠΊΠ°!
  • Π¨ΠΈΡ€ΠΈΠ½Π°: ΡˆΠΈΡ€ΠΈΠ½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΡˆΠΈΡ€ΠΈΠ½Π° + стартовая позиция ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ (столбСц) Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ дисплСя Π² символах ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ
  • Высота: высота Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ высота+ стартовая позиция ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ (строка) Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ высоту дисплСя Π² символах ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ для 2004 максимум высота 4, для 1602 максимум 2.
  • Мин. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, Π½ΠΈΠΆΠ΅ Π½Π΅Π³ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ (Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int -32,768 to 32,767)
  • Макс. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, Π²Ρ‹ΡˆΠ΅ Π½Π΅Π³ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ (Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int -32,768 to 32,767)
  • Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π°: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ построСно Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ с ΠΊΡ€Π°ΡŽ, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ столбики автоматичСски сдвинутся Π² сторону ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ drawPlot. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int -32,768 to 32,767
  • Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΅ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ кусок ΠΊΠΎΠ΄Π° для расчёта ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° максимального ΠΈ минимального значСния Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅!
  • ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ свои кастомныС символы, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ initPlot() для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ дисплСя символов Π³Ρ€Π°Ρ„ΠΈΠΊΠ°! Они Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ всС мСста, с 0 ΠΏΠΎ 7!

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ дисплСй β€œLCD2004” ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ 20 символов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· 4 строк, ΠΈΠΌΠ΅Π΅Ρ‚ Π³ΠΎΠ»ΡƒΠ±ΡƒΡŽ подсвСтку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΆΠ°ΠΌΠΏΠ΅Ρ€Π° (ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ) Π½Π° ΠΏΠ»Π°Ρ‚Π΅. Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ β€œLCD2004” ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ имССтся интСрфСйс β€œI2C”.

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ дисплСй – Π²ΠΈΠ΄ сзади

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ LCD2004 ΠΊ Arduino Ρ‡Π΅Ρ€Π΅Π· I2C:

  • GND – ΠΎΠ±Ρ‰ΠΈΠΉ
  • VCC – ” +5 В”
  • SDA – ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия Π΄Π°Π½Π½Ρ‹Ρ… – Π½Π° Arduino Uno ΠΈ Nano А4 (SDA), Π½Π° Arduino Mega – 20 (SDA)
  • SCL – ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия синхронизации – Π½Π° Arduino Uno ΠΈ Nano А5 (SCL), Π½Π° Arduino Mega – 21 (SCL)

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ 2004-lcd ΠΊ Arduino Ρ‡Π΅Ρ€Π΅Π· I2C

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

  • строк: 4
  • символов Π² строкС: 20
  • напряТСниС питания, Π’: 5
  • интСрфСйс: I2C
  • Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, ΠΌΠΌ: 98 x 60 x 12

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

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ардуино Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

Β«>

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ дисплСй LCD 1602 ΠΏΠΎ i2c Π² XOD | Π­Π»Π΅ΠΊΡ‚Ρ€ΠΈΠΊ ΠΏΠΎ-ΠΆΠΈΠ·Π½ΠΈ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π΄Ρ€ΡƒΠ·ΡŒΡ!

Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя LCD 1602, сСгодня рассмотрим ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ i2c соСдинСнию.

IΒ²C (IIC, Π°Π½Π³Π». Inter-Integrated Circuit) β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ асиммСтричная шина для связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ схСмами Π²Π½ΡƒΡ‚Ρ€ΠΈ элСктронных ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π΅ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ связи (SDA ΠΈ SCL), примСняСтся для соСдинСния низкоскоростных ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² с процСссорами ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° матСринских ΠΏΠ»Π°Ρ‚Π°Ρ…, Π²ΠΎ встраиваСмых систСмах, Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…).
ВикипСдия

Для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ i2c, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ дисплСй, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚ΠΎΠΉ, Π΄Π°ΡŽΡ‰Π΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ 2 ΠΏΠΈΠ½Π°ΠΌ, Ρ‡Ρ‚ΠΎ сущСствСнно Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ возмоТности ΠΏΠ»Π°Ρ‚Ρ‹ Ардуино, высвобоТдая Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΈΠ½Ρ‹.

ДисплСй с ΠΏΠ»Π°Ρ‚ΠΎΠΉ I2S

ДисплСй с ΠΏΠ»Π°Ρ‚ΠΎΠΉ I2S

ДисплСй с ΠΏΠ»Π°Ρ‚ΠΎΠΉ i2c ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΊΡƒΠΏΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ i2c ΠΈ Π²ΠΏΠ°ΡΡ‚ΡŒ самому, слоТного Π² этом Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ дисплСй ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ соСдинСнию ΠΏΠΎ Ρ‚Π°ΠΊΠΈΠΌ схСмС.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ LCD 1602 ΠΏΠΎ I2S

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ LCD 1602 ΠΏΠΎ I2S

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ XOD Ρ‚Π°ΠΊΠΎΠΉ дисплСй для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ прСдставлСн Π½ΠΎΠ΄ΠΎΠΉ text-lcd-i2c-16×2

ОписаниС Π½ΠΎΠ΄Ρ‹ text-lcd-i2c-16×2

ОписаниС Π½ΠΎΠ΄Ρ‹ text-lcd-i2c-16×2

Π’ инспСкторС Π½ΠΎΠ΄Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ адрСс ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² строкС ADDR, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для дисплССв LCD 1602 ΠΎΠ½ 27.

Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€ Π½ΠΎΠ΄Ρ‹ text-lcd-i2c-16×2

Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€ Π½ΠΎΠ΄Ρ‹ text-lcd-i2c-16×2

Π’ строках L1 ΠΈ L2 ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ тСкст, ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅, Π΄ΡƒΠΌΠ°ΡŽ, понятно.

Для использования Π½ΠΎΠ΄Ρ‹ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ установлСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° xod-dev/text-lcd, Π΅Ρ‘ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ XOD. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π·Π° ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ научимся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ, ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅.

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ поиск Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π°ΠΊ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° XOD

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° XOD

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ мСню File/Add Library… ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ Add Library ΠΈ Π² появившСйся поисковой строкС Π²Π²ΠΎΠ΄ΠΈΠΌ xod-dev/text-lcd, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²Ρ‹ΠΏΠ°Π²ΡˆΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ· списка.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ‚Ρ‡, ΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅.

ЭкспСримСнтируйтС!!!

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ дисплСй LCD 1602 ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π² XOD

Π‘Π΄Π΅Π»Π°ΠΉ сам. Π”Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ сигнализация Π±Π΅Π· написания ΠΊΠΎΠ΄Π°

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ самый Π²Π°ΠΆΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π² XOD

АналоговыС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ сСрвопривод

Π‘Π΅Ρ€Π²ΠΎΠΏΡ€ΠΈΠ²ΠΎΠ΄. Π§Ρ‚ΠΎ Π·Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄?

ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€Π°

Π˜Π·ΠΌΠ΅Ρ€ΡΠ΅ΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ардуино

ΠŸΡ€ΠΎΡΡ‚Π°Ρ — Π½Π΅ простая ΠΊΠ½ΠΎΠΏΠΊΠ° Π² Arduino

Π Π΅Π»Π΅ SRD-05VDC ΠΈ способы ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² XOD

Бпасибо, Ρ‡Ρ‚ΠΎ Π΄ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°.

НадСюсь ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈ интСрСсна.

ΠŸΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ ΡΡ‚Π°Ρ‚ΡŒΡ, ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°Π»Π΅Ρ† Π²Π²Π΅Ρ€Ρ….

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° новостями,Β ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒΒ Π½Π° наш ΠΊΠ°Π½Π°Π».

Π’ΠΏΠ΅Ρ€Π΅Π΄ΠΈ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсного!

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ:

Π Π°Π±ΠΎΡ‚Π° Raspberry Pi Pico с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ дисплСя 16Γ—2 LCD Display

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΈΠ½ΠΊΡƒ этого Π³ΠΎΠ΄Π° β€” ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΎΡ‚ Raspberry Pi Foundation Π½Π° Ρ‡ΠΈΠΏΠ΅ собствСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ RP2040 β€” Raspberry Pi Pico, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π² Π½Π°Ρ‡Π°Π»Π΅ 2021 Π³ΠΎΠ΄Π°. Π­Ρ‚ΠΎΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° часто ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ связаны с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ, символьной ΠΈΠ»ΠΈ графичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, для Ρ‡Π΅Π³ΠΎ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ дисплССв. К слову, Pico Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Π½Π΅Π³ΠΎ дисплСями (ΠΊΠ°ΠΊ это часто Π±Ρ‹Π²Π°Π΅Ρ‚ с ΠΏΠ»Π°Ρ‚Π°ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Ρ€Π΅Π½Π΄ΠΎΠ²) β€” ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ‚ΠΎΠΌ числС со стандартным интСрфСйсом I2C, Ρ‡Ρ‚ΠΎ позволяСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ дисплСи Π² ряд с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройствами ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ, хотя Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±ΠΎ всём ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅…

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈΒ ΠΌΡ‹ ставим ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ взаимодСйствия модуля ТидкокристалличСского дисплСя 16Γ—2 (16Γ—2 LCD Display) с Raspberry Pi Pico.Β 

LCD дисплСй прСдставляСт собой элСктронный дисплСйный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ для создания Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ изобраТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ТидкокристалличСская тСхнология. ΠœΠΎΠ΄ΡƒΠ»ΡŒ 16Γ—2 LCD Display β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² элСктронных схСмах для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΈ/ΠΈΠ»ΠΈ тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ИндСкс 16Γ—2 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ дисплСй ΠΈΠΌΠ΅Π΅Ρ‚Β 16 символов Π² строкС Π² 2 Ρ‚Π°ΠΊΠΈΡ… строки ΠΏΠΎ высотС экрана. Если Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ LCD-дисплСя,Β  Ρ‚ΠΎ он отобраТаСтся Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ 5Γ—8 пиксСлСй.

Β 

LCD-дисплСй основан Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ HD44780. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ 2 вСрсии этого LCD-дисплСя: вСрсия с I2C ΠΈ вСрсии Π±Π΅Π· I2C. ΠœΡ‹ возьмСм ΠΎΠ±Π΅ вСрсии этого дисплСя в качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, присоСдиним ΠΊΒ Raspberry Pi Pico, Π° Π·Π°Ρ‚Π΅ΠΌ напишСм ΠΊΠΎΠ΄ Π½Π° MicroPython для взаимодСйствия LCD-дисплСя 16Γ—2 с Raspberry Pi Pico.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹:

  1. ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Raspberry Pi PicoΒ 
  2. ΠœΠΎΠ΄ΡƒΠ»ΡŒ 16Γ—2 LCD Display
  3. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ для написания ΠΊΠΎΠ΄Π°
  4. КабСль USB Type-A — MicroUSB для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ.

Β 

Β 

ΠžΠ±Π·ΠΎΡ€ модуля дисплСя 16Γ—2 LCD Display.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ 16Γ—2 LCD Display Π½Π°Π·Π²Π°Π½ Ρ‚Π°ΠΊ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ 16 столбцов ΠΈ 2 строки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Π½Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ всСго (16 Γ— 2 = 32) 32 символа, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 5 Γ— 8 пиксСлСй. ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ символ со всСми Π΅Π³ΠΎ пиксСлями ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рисункС Π½ΠΈΠΆΠ΅.

Β 

Β 

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ символ ΠΈΠΌΠ΅Π΅Ρ‚ (5 ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ Γ— 8 ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ = 40) 40 пиксСлСй, Π° для 32 символов ΠΈΡ‚ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ (32 Γ— 40) 1280 пиксСлСй. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, этот Π–Πš-дисплСй Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ проинструктирован ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ пиксСлСй. Π‘ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ со всСм этим с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, поэтому Π² Π–Πš-дисплСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ интСрфСйсный Ρ‡ΠΈΠΏ (ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Π°Ρ схСма), Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΌΠΎΠ΄Π΅Π»ΠΈΒ HD44780. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ РуководствС ΠΎΡ‚ производитСля HITACHI ΠΏΠΎ ссылкС:Β  HD44780U (Dot MAtrix Liquid Crystal Display Controller/Driver). Π­Ρ‚ΠΎΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ установлСна Π½Π° Π·Π°Π΄Π½Π΅ΠΉ сторонС ΠΏΠ»Π°Ρ‚Ρ‹ Π–Πš-модуля.Β 

Ѐункция Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° β€” ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° (MCU) ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… для отобраТСния Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° Π–Πš-экранС. Π Π°Π±ΠΎΡ‡Π΅Π΅ напряТСниС Π–Πš-дисплСя составляСт ΠΎΡ‚ 4,7 Π’ Π΄ΠΎ 5,3 Π’, Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ° составляСт 1 мА (Π±Π΅Π· подсвСтки). ДисплСй ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π² 8-Π±ΠΈΡ‚Π½ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ Π² 4-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π°Β Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ созданныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ символы. Π­Ρ‚ΠΈ Π–Πš-дисплСи доступны с Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΈ синСй подсвСткой Ρ„ΠΎΠ½Π°.

Β 

Β  Β 

Β 

Β 

ВСрсия модуля 16Γ—2 LCD Display Π±Π΅Π· I2C

На Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΏΠ»Π°Ρ‚Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»ΡΒ Π–Πš-Π΄ΠΈΡΠΏΠ»Π΅ΡΒ Π΅ΡΡ‚ΡŒ 16 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ питания. ВсС вмСстС ΠΎΠ½ΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² процСссС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΡƒΠΆΠ½Ρ‹Ρ… пиксСлСй экрана, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ LED-подсвСтки Ρ„ΠΎΠ½Π°.Β 

Β 

ВСрсия модуля 16Γ—2 LCD Display с I2C

Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ дисплСя Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ интСрфСйс I2C, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° (SDA ΠΈ SCL) для соСдинСния с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ.Β I2C (Inter-Integrated Circuit, IIC, IΒ²C) β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ асиммСтричная шина, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Ρ„ΠΈΡ€ΠΌΠΎΠΉ Philips Semiconductors Π² Π½Π°Ρ‡Π°Π»Π΅ 1980-Ρ… Π³ΠΎΠ΄ΠΎΠ², для связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ схСмами Π²Π½ΡƒΡ‚Ρ€ΠΈ элСктронных ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠ². Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π΅ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ связи: ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ линию Π΄Π°Π½Π½Ρ‹Ρ… SDA (Serial DAta) ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ линию тактирования SCL (Serial CLock), ΠΈ примСняСтся для соСдинСния низкоскоростных ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² с процСссорами ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ I2C β€” это Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Π° (Π°Π΄Π°ΠΏΡ‚Π΅Ρ€), прикрСплСнная ΠΊ Π·Π°Π΄Π½Π΅ΠΉ части Π–Πš-модуля ΠΈ припаянная ΠΊ 16 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ Π½Π° ΠΏΠ»Π°Ρ‚Π΅ модуля дисплСя. АдрСс I2C для этих дисплССв β€”Β 0x3F ΠΈΠ»ΠΈ 0x27.

Β 

АдаптСр ΠΈΠΌΠ΅Π΅Ρ‚ 8-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ‡ΠΈΠΏ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° / Π²Ρ‹Π²ΠΎΠ΄Π° PCF8574 производитСля TI (Texas Instruments). Π‘ тСхничСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ этого Ρ‡ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ, пСрСйдя ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ссылкС:Β Β PCF8574 Remote 8-Bit I/O Expander for I 2C Bus.

Π­Ρ‚ΠΎΡ‚ Ρ‡ΠΈΠΏ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ I2C ΠΎΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π–Πš-дисплСя. Π•ΡΡ‚ΡŒ нСбольшой подстроСчный рСзистор для Ρ‚ΠΎΡ‡Π½ΠΎΠΉ настройки контрастности дисплСя (Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π²Ρ‹ΡˆΠ΅ ΠΎΠ½ синСго Ρ†Π²Π΅Ρ‚Π° ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡˆΠ»ΠΈΡ† для вращСния крСстовой ΠΎΡ‚Π²Ρ‘Ρ€Ρ‚ΠΊΠΎΠΉ). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ°, ΠΏΠΎΠ΄Π°ΡŽΡ‰Π°Ρ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π° подсвСтку (Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΎΡ‚ Ρ€Π°Π·ΡŠΡ‘ΠΌΠ° I2C сторонС Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°).

Π’ Ρ‡Ρ‘ΠΌ ΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ прСимущСство использования Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° с интСрфСйсом I2C для ΠΏΠ»Π°Ρ‚Ρ‹ дисплСя ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Raspberry Pi Pico?Β 

На этот вопрос ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ достаточно просто. Raspberry Pi Pico построСн с использованиСм ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° RP2040. На Π΅Π³ΠΎ ΠΏΠ»Π°Ρ‚Π΅ имССтся 26 ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO ΠΈΠ· 36 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO. 10 ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO Π½Π΅ доступны для использования. Из 26 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO Π΅ΡΡ‚ΡŒ 2 ΠΏΠ°Ρ€Ρ‹ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² I2C.

Как Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ, синхронная нСсиммСтричная шина I2C (I2C Bus) ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ связи с нСсколькими Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌΠΈ, нСсколькими Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌΠΈ устройствами с ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²Β ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для присоСдинСния низкоскоростных ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… схСм ΠΊ процСссорам ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ расстояния ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹.

Как ΠΈ связь UART, I2C ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами.

Β 

Β 

I2C Bus β€” cинхронная нСсиммСтричная шина I2C.

Device 1,Β Device 2,Β Device 3 β€”Β Β Π²Π½Π΅ΡˆΠ½ΠΈΠ΅ устройства с интСрыфСйсом I2C.

SDAΒ (Serial Data Line)Β β€”Β ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия Π΄Π°Π½Π½Ρ‹Ρ….

SCLΒ (Serial Clock Line)Β β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия синхронизации.

Π”Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ²ΠΎΠ΄ SDA ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΌ сигналом (clock signal) ΠΎΡ‚ SCL. ВсС устройства / ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ схСмы Π² сСти I2C (I2C network)Β ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ Ρ‚Π΅ΠΌ ΠΆΠ΅ линиям SCL ΠΈ SDA, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅.

Устройства, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ шинС I2C, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌΠΈ (master), Π»ΠΈΠ±ΠΎ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌΠΈ (slave). Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° шинС I2C остаСтся Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ (мастСр). Он управляСт Π»ΠΈΠ½ΠΈΠ΅ΠΉ синхронизации SCL ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, какая опСрация Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… SDA.

Β 

Β 

ВсС устройства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π½Π° инструкции ΠΎΡ‚ этого Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ устройства, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌΠΈ. Для различСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… устройств, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ ΠΎΠ΄Π½ΠΎΠΉ шинС I2C, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠΌΡƒ устройству физичСски назначаСтся постоянный 7-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс.

Β 

Β 

Когда Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство (master device) Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство (slave device)Β ΠΈΠ»ΠΈ ΠΎΡ‚ Π½Π΅Π³ΠΎ, ΠΎΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ этот ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ адрСс Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ устройства Π² строкС SDA, Π° Π·Π°Ρ‚Π΅ΠΌ приступаСт ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ устройством ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌ устройством происходит эффСктивная связь. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Π΄ΠΎΠΌΡ‹Π΅ устройства Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚, Ссли ΠΈΡ… адрСс Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ устройством Π² строкС SDA.

Β 

Β 

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΠ° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° RP2040 ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° I2C (см. схСму Π²Ρ‹ΡˆΠ΅), ΠΈ ΠΊΒ Π½ΠΈΠΌ ΠΎΠ±ΠΎΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ GPIO Raspberry Pi Pico. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO ΠΊ ΠΎΠ±ΠΎΠΈΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ I2C.

Β 

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ I2C Π Π°Π·ΡŠΡ‘ΠΌΡ‹ GPIO
I2C0 – SDA GP0 / GP4 / GP8 / GP12 / GP16 / GP20
I2C0 – SCL GP1 / GP5 / GP9 / GP13 / GP17 / GP21
I2C1 – SDA GP2 / GP6 / GP10 / GP14 / GP18 / GP26
I2C1 – SCL GP3 / GP7 / GP11 / GP15 / GP19 / GP27

Β 

КаТдоС соСдинСниС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· нСсколько ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° схСмС. Но ΠΏΠ΅Ρ€Π΅Π΄ использованиСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° I2C Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии, ΠΊΠ°ΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ GPIO Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ I2C.

Β 

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Raspberry Pi Pico I2C:
Raspberry Pi Pico ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡ΠΈΠΏ RP2040, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  1. Устройство ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ (MasterΒ Mode)Β ΠΈΠ»ΠΈ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ (Slave Mode) с адрСсом ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ = 0x055.
  2. ΠŸΠΈΠ½Ρ‹ I2C ΠΈΠΌΠ΅ΡŽΡ‚ 3 Ρ€Π΅ΠΆΠΈΠΌΠ° скорости: стандартный (ΠΎΡ‚ 0 Π΄ΠΎ 100 ΠšΠ±ΠΈΡ‚/с), быстрый (Π΄ΠΎ 400 ΠšΠ±ΠΈΡ‚/с) ΠΈ Ρ€Π΅ΠΆΠΈΠΌ Fast Plus (Π΄ΠΎ 1000 ΠšΠ±ΠΈΡ‚/с).
  3. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€Ρ‹ (Buffers).
  4. Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСрывания (interrupt)Β ΠΈ DMA.

Для дСмонстрации ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ устройств ΠΏΠΎ шинС I2C ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Β 

Β 

Π’ Π΄Π°Π½Π½ΠΎΠΉ схСмС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΒ 3 Ρ€Π°Π·Π½Ρ‹Ρ… устройства I2C ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Pico: Π΄Π°Ρ‚Ρ‡ΠΈΠΊ MPU6050, 0,96-Π΄ΡŽΠΉΠΌΠΎΠ²Ρ‹ΠΉ OLED-дисплСй ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ BME680 (слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ соотвСтствСнно).Β Π’Ρ‹Π²ΠΎΠ΄Ρ‹ SDA ΠΈ SCL MPU6050, BME680 ΠΈ OLED-дисплСя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ I2C Raspberry Pi Pico. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈΒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² I2C, Π½ΠΎ всС эти устройства ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡΒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΏΠ°Ρ€Ρƒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² I2C Raspberry Pi Pico. Π” Π΄Π°Π½Π½ΠΎΠΌ случаС это GPIO8 ΠΊΠ°ΠΊ SDA0 ΠΈ GPIO9 ΠΊΠ°ΠΊ SCL0.

Β 

Β 

НапоминаСм, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ упомянуто Π²Ρ‹ΡˆΠ΅, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° с шиной I2C, Π΅Ρ‘ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Ρ‚.ΠΊ. ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½Π° Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ Π² графичСской срСдС ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π».

Β 

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² графичСской срСдС:

НаТимаСм ΠΈΠΊΠΎΠ½ΠΊΡƒ ΠΌΠ°Π»ΠΈΠ½Ρ‹ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ экрана ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ -> Raspberry Pi Configuration:

Β 

Β 

ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ настроСк, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Interfaces:

Β 

,

Β 

Π’ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Interfaces Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ enable (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ) для I2C:

Β 

Β 

НаТимаСм ОК ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ интСрфСйс Π²ΠΊΠ»ΡŽΡ‡Π΅Π½.

Β 

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

Настройка Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ понадобится, Ссли ΠΌΡ‹, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ Raspberry ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ. Для настройки Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹Β sudo raspi-configΒ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ enter:

Β 

Β 

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡΒ ΠΌΠ΅Π½ΡŽ настроСк, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ 5-ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ Interfacing Options ΠΈΒ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ enter:

Β 

Β 

ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ мСню Π²Ρ‹Π±ΠΎΡ€Π° интСрфСйсов, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ P5 I2C:

Β 

Β 

На вопрос ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅ΠΌ <Π”Π°>:

Β 

Β 

Π“ΠΎΡ‚ΠΎΠ²ΠΎ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½.

Β 

Β 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ вСрнёмся ΠΊ вопросу ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ нашСго модуля Π–Πš-дисплСя ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Pico.

Β 

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ (для вСрсии Π±Π΅Π· I2C).

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ 1, 5 ΠΈ 16 Π–Πš-дисплСя ΠΊ GND Raspberry Pi Pico. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ 2 ΠΈ 15 Π–Πš-дисплСя ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 5 Π’ (Vbus) Raspberry Pi Pico. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ 4, 6, 11, 12, 13, 14 Π–Πš-дисплСя ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ Raspberry Pi Pico GP16, GP17, GP18, GP19, GP20, GP21.

Для Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ контрастности Π–Πš-дисплСя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ 10кОм ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 3 Π–Πš-дисплСя.

Β 

Β 

Π£ нас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Β 

Β 

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ / ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Raspberry Pi Pico ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° MicroPython для взаимодСйствия с Π–Πš-дисплССм 16 Γ— 2. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Thonny IDE ΠΈΠ»ΠΈ uPyCraft IDE для запуска ΠΊΠΎΠ΄Π° MicroPython. Установка Thonny IDE Π±Ρ‹Π»Π° рассмотрСна Π½Π°ΠΌΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅: ИспользованиС АЦП Π² Raspberry Pi Pico с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π½Π° MicroPython.

Π’ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для взаимодСйствия с Π–Πš-дисплССм 16Ρ…2 Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ HD44780 с Raspberry Pi Pico. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Π² IDE ΠΈ сохранитС Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ main.py.

Β 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

import machine

import utime

Β 

rs = machine.Pin(16,machine.Pin.OUT)

e = machine.Pin(17,machine.Pin.OUT)

d4 = machine.Pin(18,machine.Pin.OUT)

d5 = machine.Pin(19,machine.Pin.OUT)

d6 = machine.Pin(20,machine.Pin.OUT)

d7 = machine.Pin(21,machine.Pin.OUT)

Β 

def pulseE():

Β Β Β Β e.value(1)

Β Β Β Β utime.sleep_us(40)

Β Β Β Β e.value(0)

Β Β Β Β utime.sleep_us(40)

def send2LCD4(BinNum):

Β Β Β Β d4.value((BinNum & 0b00000001) >>0)

Β Β Β Β d5.value((BinNum & 0b00000010) >>1)

Β Β Β Β d6.value((BinNum & 0b00000100) >>2)

Β Β Β Β d7.value((BinNum & 0b00001000) >>3)

Β Β Β Β pulseE()

def send2LCD8(BinNum):

Β Β Β Β d4.value((BinNum & 0b00010000) >>4)

Β Β Β Β d5.value((BinNum & 0b00100000) >>5)

Β Β Β Β d6.value((BinNum & 0b01000000) >>6)

Β Β Β Β d7.value((BinNum & 0b10000000) >>7)

Β Β Β Β pulseE()

Β Β Β Β d4.value((BinNum & 0b00000001) >>0)

Β Β Β Β d5.value((BinNum & 0b00000010) >>1)

Β Β Β Β d6.value((BinNum & 0b00000100) >>2)

Β Β Β Β d7.value((BinNum & 0b00001000) >>3)

Β Β Β Β pulseE()

def setUpLCD():

Β Β Β Β rs.value(0)

Β Β Β Β send2LCD4(0b0011)#8 bit

Β Β Β Β send2LCD4(0b0011)#8 bit

Β Β Β Β send2LCD4(0b0011)#8 bit

Β Β Β Β send2LCD4(0b0010)#4 bit

Β Β Β Β send2LCD8(0b00101000)#4 bit,2 lines?,5*8 bots

Β Β Β Β send2LCD8(0b00001100)#lcd on, blink off, cursor off.

Β Β Β Β send2LCD8(0b00000110)#increment cursor, no display shift

Β Β Β Β send2LCD8(0b00000001)#clear screen

Β Β Β Β utime.sleep_ms(2)#clear screen needs a long delay

Β 

setUpLCD()

rs.value(1)

for x in ‘Hello World!’:

Β Β Β Β send2LCD8(ord(x))

Β 

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запуска этого ΠΊΠΎΠ΄Π°Β Π–Πš-дисплСй Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ сообщСниС Hello World! Π½Π° своём экранС.

Β 

Β 

Β 

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΡˆΠΈΠ½ΡƒΒ I2C).

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ дСйствитСлСн для Π–Πš-дисплСя 16Γ—2 Π±Π΅Π· модуля I2C. ΠœΠΎΠ΄ΡƒΠ»ΡŒ PCF8574 I2C ΠΈΠ»ΠΈ SMBus Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅Β ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ большоС количСство ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ ΡΡ…Π΅ΠΌΡ‹Β ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ всС Π»ΠΈΠ½ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² 2 физичСских ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ Π–Πš-дисплСй становится устройством I2C с адрСсом I2C 0x27. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Raspberry Pi Pico ΠΈ Π–Πš-дисплССм I2C ΠΎΡ‡Π΅Π½ΡŒ простоС (см. схСму):

Β 

Β 

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ Π–Πš-дисплСя VCC ΠΈ GND ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ Raspberry Pi Pico 5V ΠΈ GND соотвСтствСнно. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ SDA ΠΈ SCL Π–Πš-дисплСя ΠΊ Raspberry Pi Pico GP8 ΠΈ GP9 соотвСтствСнно.

Β 

Β 

Π’Ρ€ΡƒΠ΄Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠΏΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ. На Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ I2C Π½Π΅ распаян Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ сторонС модуля дисплСя, Π° вынСсСн ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ соСдинён Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ с ΠΏΠ»Π°Ρ‚ΠΎΠΉ дисплСя Π³Ρ€Π΅Π±Ρ‘Π½Ρ‡Π°Ρ‚Ρ‹ΠΌ Ρ€Π°Π·ΡŠΡ‘ΠΌΠΎΠΌ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹.

Β 

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ / ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ выглядит Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТнСС ΠΈΒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° 3 части. Нам Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° I2C, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π² основном классС main.py.

Π’Π°ΠΌ ΠΆΠ΅ просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ Π²Π΅ΡΡŒ этот ΠΊΠΎΠ΄, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС 3 ΠΊΠΎΠ΄Π° Π½Π° Raspberry Pi Pico Board оотвСтствСнно Π² Ρ„Π°ΠΉΠ»Ρ‹: lcd_api.py,Β  pico_i2c_lcd.py,Β  main.py.

Β 

lcd_api.py

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

import time

Β 

class LcdApi:

Β 

Β Β Β Β LCD_CLR = 0x01Β Β Β Β Β Β Β Β Β Β Β Β Β Β # DB0: clear display

Β Β Β Β LCD_HOME = 0x02Β Β Β Β Β Β Β Β Β Β Β Β  # DB1: return to home position

Β 

Β Β Β Β LCD_ENTRY_MODE = 0x04Β Β Β Β Β Β  # DB2: set entry mode

Β Β Β Β LCD_ENTRY_INC = 0x02Β Β Β Β Β Β Β Β # —DB1: increment

Β Β Β Β LCD_ENTRY_SHIFT = 0x01Β Β Β Β Β Β # —DB0: shift

Β 

Β Β Β Β LCD_ON_CTRL = 0x08Β Β Β Β Β Β Β Β Β Β # DB3: turn lcd/cursor on

Β Β Β Β LCD_ON_DISPLAY = 0x04Β Β Β Β Β Β  # —DB2: turn display on

Β Β Β Β LCD_ON_CURSOR = 0x02Β Β Β Β Β Β Β Β # —DB1: turn cursor on

Β Β Β Β LCD_ON_BLINK = 0x01Β Β Β Β Β Β Β Β  # —DB0: blinking cursor

Β 

Β Β Β Β LCD_MOVE = 0x10Β Β Β Β Β Β Β Β Β Β Β Β  # DB4: move cursor/display

Β Β Β Β LCD_MOVE_DISP = 0x08Β Β Β Β Β Β Β Β # —DB3: move display (0-> move cursor)

Β Β Β Β LCD_MOVE_RIGHT = 0x04Β Β Β Β Β Β  # —DB2: move right (0-> left)

Β 

Β Β Β Β LCD_FUNCTION = 0x20Β Β Β Β Β Β Β Β  # DB5: function set

Β Β Β Β LCD_FUNCTION_8BIT = 0x10Β Β Β Β # —DB4: set 8BIT mode (0->4BIT mode)

Β Β Β Β LCD_FUNCTION_2LINES = 0x08Β Β # —DB3: two lines (0->one line)

Β Β Β Β LCD_FUNCTION_10DOTS = 0x04Β Β # —DB2: 5×10 font (0->5×7 font)

Β Β Β Β LCD_FUNCTION_RESET = 0x30Β Β  # See «Initializing by Instruction» section

Β 

Β Β Β Β LCD_CGRAM = 0x40Β Β Β Β Β Β Β Β Β Β Β Β # DB6: set CG RAM address

Β Β Β Β LCD_DDRAM = 0x80Β Β Β Β Β Β Β Β Β Β Β Β # DB7: set DD RAM address

Β 

Β Β Β Β LCD_RS_CMD = 0

Β Β Β Β LCD_RS_DATA = 1

Β 

Β Β Β Β LCD_RW_WRITE = 0

Β Β Β Β LCD_RW_READ = 1

Β 

Β Β Β Β def __init__(self, num_lines, num_columns):

Β Β Β Β Β Β Β Β self.num_lines = num_lines

Β Β Β Β Β Β Β Β if self.num_lines > 4:

Β Β Β Β Β Β Β Β Β Β Β Β self.num_lines = 4

Β Β Β Β Β Β Β Β self.num_columns = num_columns

Β Β Β Β Β Β Β Β if self.num_columns > 40:

Β Β Β Β Β Β Β Β Β Β Β Β self.num_columns = 40

Β Β Β Β Β Β Β Β self.cursor_x = 0

Β Β Β Β Β Β Β Β self.cursor_y = 0

Β Β Β Β Β Β Β Β self.implied_newline = False

Β Β Β Β Β Β Β Β self.backlight = True

Β Β Β Β Β Β Β Β self.display_off()

Β Β Β Β Β Β Β Β self.backlight_on()

Β Β Β Β Β Β Β Β self.clear()

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_ENTRY_MODE | self.LCD_ENTRY_INC)

Β Β Β Β Β Β Β Β self.hide_cursor()

Β Β Β Β Β Β Β Β self.display_on()

Β 

Β Β Β Β def clear(self):

Β Β Β Β Β Β Β Β «»»Clears the LCD display and moves the cursor to the top left

Β Β Β Β Β Β Β Β corner.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_CLR)

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_HOME)

Β Β Β Β Β Β Β Β self.cursor_x = 0

Β Β Β Β Β Β Β Β self.cursor_y = 0

Β 

Β Β Β Β def show_cursor(self):

Β Β Β Β Β Β Β Β «»»Causes the cursor to be made visible.»»»

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_ON_CTRL | self.LCD_ON_DISPLAY |

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  self.LCD_ON_CURSOR)

Β 

Β Β Β Β def hide_cursor(self):

Β Β Β Β Β Β Β Β «»»Causes the cursor to be hidden.»»»

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_ON_CTRL | self.LCD_ON_DISPLAY)

Β 

Β Β Β Β def blink_cursor_on(self):

Β Β Β Β Β Β Β Β «»»Turns on the cursor, and makes it blink.»»»

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_ON_CTRL | self.LCD_ON_DISPLAY |

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  self.LCD_ON_CURSOR | self.LCD_ON_BLINK)

Β 

Β Β Β Β def blink_cursor_off(self):

Β Β Β Β Β Β Β Β «»»Turns on the cursor, and makes it no blink (i.e. be solid).»»»

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_ON_CTRL | self.LCD_ON_DISPLAY |

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  self.LCD_ON_CURSOR)

Β 

Β Β Β Β def display_on(self):

Β Β Β Β Β Β Β Β «»»Turns on (i.e. unblanks) the LCD.»»»

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_ON_CTRL | self.LCD_ON_DISPLAY)

Β 

Β Β Β Β def display_off(self):

Β Β Β Β Β Β Β Β «»»Turns off (i.e. blanks) the LCD.»»»

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_ON_CTRL)

Β 

Β Β Β Β def backlight_on(self):

Β Β Β Β Β Β Β Β «»»Turns the backlight on.

Β Β Β Β Β Β Β Β This isn’t really an LCD command, but some modules have backlight

Β Β Β Β Β Β Β Β controls, so this allows the hal to pass through the command.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β self.backlight = True

Β Β Β Β Β Β Β Β self.hal_backlight_on()

Β 

Β Β Β Β def backlight_off(self):

Β Β Β Β Β Β Β Β «»»Turns the backlight off.

Β Β Β Β Β Β Β Β This isn’t really an LCD command, but some modules have backlight

Β Β Β Β Β Β Β Β controls, so this allows the hal to pass through the command.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β self.backlight = False

Β Β Β Β Β Β Β Β self.hal_backlight_off()

Β 

Β Β Β Β def move_to(self, cursor_x, cursor_y):

Β Β Β Β Β Β Β Β «»»Moves the cursor position to the indicated position. The cursor

Β Β Β Β Β Β Β Β position is zero based (i.e. cursor_x == 0 indicates first column).

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β self.cursor_x = cursor_x

Β Β Β Β Β Β Β Β self.cursor_y = cursor_y

Β Β Β Β Β Β Β Β addr = cursor_x & 0x3f

Β Β Β Β Β Β Β Β if cursor_y & 1:

Β Β Β Β Β Β Β Β Β Β Β Β addr += 0x40Β Β Β Β # Lines 1 & 3 add 0x40

Β Β Β Β Β Β Β Β if cursor_y & 2:Β Β Β Β # Lines 2 & 3 add number of columns

Β Β Β Β Β Β Β Β Β Β Β Β addr += self.num_columns

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_DDRAM | addr)

Β 

Β Β Β Β def putchar(self, char):

Β Β Β Β Β Β Β Β «»»Writes the indicated character to the LCD at the current cursor

Β Β Β Β Β Β Β Β position, and advances the cursor by one position.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β if char == ‘\n’:

Β Β Β Β Β Β Β Β Β Β Β Β if self.implied_newline:

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β # self.implied_newline means we advanced due to a wraparound,

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β # so if we get a newline right after that we ignore it.

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β pass

Β Β Β Β Β Β Β Β Β Β Β Β else:

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β self.cursor_x = self.num_columns

Β Β Β Β Β Β Β Β else:

Β Β Β Β Β Β Β Β Β Β Β Β self.hal_write_data(ord(char))

Β Β Β Β Β Β Β Β Β Β Β Β self.cursor_x += 1

Β Β Β Β Β Β Β Β if self.cursor_x >= self.num_columns:

Β Β Β Β Β Β Β Β Β Β Β Β self.cursor_x = 0

Β Β Β Β Β Β Β Β Β Β Β Β self.cursor_y += 1

Β Β Β Β Β Β Β Β Β Β Β Β self.implied_newline = (char != ‘\n’)

Β Β Β Β Β Β Β Β if self.cursor_y >= self.num_lines:

Β Β Β Β Β Β Β Β Β Β Β Β self.cursor_y = 0

Β Β Β Β Β Β Β Β self.move_to(self.cursor_x, self.cursor_y)

Β 

Β Β Β Β def putstr(self, string):

Β Β Β Β Β Β Β Β «»»Write the indicated string to the LCD at the current cursor

Β Β Β Β Β Β Β Β position and advances the cursor position appropriately.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β for char in string:

Β Β Β Β Β Β Β Β Β Β Β Β self.putchar(char)

Β 

Β Β Β Β def custom_char(self, location, charmap):

Β Β Β Β Β Β Β Β «»»Write a character to one of the 8 CGRAM locations, available

Β Β Β Β Β Β Β Β as chr(0) through chr(7).

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β location &= 0x7

Β Β Β Β Β Β Β Β self.hal_write_command(self.LCD_CGRAM | (location << 3))

Β Β Β Β Β Β Β Β self.hal_sleep_us(40)

Β Β Β Β Β Β Β Β for i in range(8):

Β Β Β Β Β Β Β Β Β Β Β Β self.hal_write_data(charmap[i])

Β Β Β Β Β Β Β Β Β Β Β Β self.hal_sleep_us(40)

Β Β Β Β Β Β Β Β self.move_to(self.cursor_x, self.cursor_y)

Β 

Β Β Β Β def hal_backlight_on(self):

Β Β Β Β Β Β Β Β «»»Allows the hal layer to turn the backlight on.

Β Β Β Β Β Β Β Β If desired, a derived HAL class will implement this function.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β pass

Β 

Β Β Β Β def hal_backlight_off(self):

Β Β Β Β Β Β Β Β «»»Allows the hal layer to turn the backlight off.

Β Β Β Β Β Β Β Β If desired, a derived HAL class will implement this function.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β pass

Β 

Β Β Β Β def hal_write_command(self, cmd):

Β Β Β Β Β Β Β Β «»»Write a command to the LCD.

Β Β Β Β Β Β Β Β It is expected that a derived HAL class will implement this

Β Β Β Β Β Β Β Β function.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β raise NotImplementedError

Β 

Β Β Β Β def hal_write_data(self, data):

Β Β Β Β Β Β Β Β «»»Write data to the LCD.

Β Β Β Β Β Β Β Β It is expected that a derived HAL class will implement this

Β Β Β Β Β Β Β Β function.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β raise NotImplementedError

Β 

Β Β Β Β def hal_sleep_us(self, usecs):

Β Β Β Β Β Β Β Β «»»Sleep for some time (given in microseconds).»»»

Β Β Β Β Β Β Β Β time.sleep_us(usecs)

Β 

pico_i2c_lcd.py

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

from lcd_api import LcdApi

from machine import I2C

from time import sleep_ms

Β 

DEFAULT_I2C_ADDR = 0x27

Β 

# Defines shifts or masks for the various LCD line attached to the PCF8574

Β 

MASK_RS = 0x01

MASK_RW = 0x02

MASK_E = 0x04

SHIFT_BACKLIGHT = 3

SHIFT_DATA = 4

Β 

Β 

class I2cLcd(LcdApi):

Β Β Β Β «»»Implements a character based lcd connected via PCF8574 on i2c.»»»

Β 

Β Β Β Β def __init__(self, i2c, i2c_addr, num_lines, num_columns):

Β Β Β Β Β Β Β Β self.i2c = i2c

Β Β Β Β Β Β Β Β self.i2c_addr = i2c_addr

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([0]))

Β Β Β Β Β Β Β Β sleep_ms(20)Β Β  # Allow LCD time to powerup

Β Β Β Β Β Β Β Β # Send reset 3 times

Β Β Β Β Β Β Β Β self.hal_write_init_nibble(self.LCD_FUNCTION_RESET)

Β Β Β Β Β Β Β Β sleep_ms(5)Β Β Β Β # need to delay at least 4.1 msec

Β Β Β Β Β Β Β Β self.hal_write_init_nibble(self.LCD_FUNCTION_RESET)

Β Β Β Β Β Β Β Β sleep_ms(1)

Β Β Β Β Β Β Β Β self.hal_write_init_nibble(self.LCD_FUNCTION_RESET)

Β Β Β Β Β Β Β Β sleep_ms(1)

Β Β Β Β Β Β Β Β # Put LCD into 4 bit mode

Β Β Β Β Β Β Β Β self.hal_write_init_nibble(self.LCD_FUNCTION)

Β Β Β Β Β Β Β Β sleep_ms(1)

Β Β Β Β Β Β Β Β LcdApi.__init__(self, num_lines, num_columns)

Β Β Β Β Β Β Β Β cmd = self.LCD_FUNCTION

Β Β Β Β Β Β Β Β if num_lines > 1:

Β Β Β Β Β Β Β Β Β Β Β Β cmd |= self.LCD_FUNCTION_2LINES

Β Β Β Β Β Β Β Β self.hal_write_command(cmd)

Β 

Β Β Β Β def hal_write_init_nibble(self, nibble):

Β Β Β Β Β Β Β Β «»»Writes an initialization nibble to the LCD.

Β Β Β Β Β Β Β Β This particular function is only used during intiialization.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β byte = ((nibble >> 4) & 0x0f) << SHIFT_DATA

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte | MASK_E]))

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte]))

Β 

Β Β Β Β def hal_backlight_on(self):

Β Β Β Β Β Β Β Β «»»Allows the hal layer to turn the backlight on.»»»

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([1 << SHIFT_BACKLIGHT]))

Β 

Β Β Β Β def hal_backlight_off(self):

Β Β Β Β Β Β Β Β «»»Allows the hal layer to turn the backlight off.»»»

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([0]))

Β 

Β Β Β Β def hal_write_command(self, cmd):

Β Β Β Β Β Β Β Β «»»Writes a command to the LCD.

Β Β Β Β Β Β Β Β Data is latched on the falling edge of E.

Β Β Β Β Β Β Β Β «»»

Β Β Β Β Β Β Β Β byte = ((self.backlight << SHIFT_BACKLIGHT) | (((cmd >> 4) & 0x0f) << SHIFT_DATA))

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte | MASK_E]))

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte]))

Β Β Β Β Β Β Β Β byte = ((self.backlight << SHIFT_BACKLIGHT) | ((cmd & 0x0f) << SHIFT_DATA))

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte | MASK_E]))

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte]))

Β Β Β Β Β Β Β Β if cmd <= 3:

Β Β Β Β Β Β Β Β Β Β Β Β # The home and clear commands require a worst case delay of 4.1 msec

Β Β Β Β Β Β Β Β Β Β Β Β sleep_ms(5)

Β 

Β Β Β Β def hal_write_data(self, data):

Β Β Β Β Β Β Β Β «»»Write data to the LCD.»»»

Β Β Β Β Β Β Β Β byte = (MASK_RS | (self.backlight << SHIFT_BACKLIGHT) | (((data >> 4) & 0x0f) << SHIFT_DATA))

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte | MASK_E]))

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte]))

Β Β Β Β Β Β Β Β byte = (MASK_RS | (self.backlight << SHIFT_BACKLIGHT) | ((data & 0x0f) << SHIFT_DATA))

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte | MASK_E]))

Β Β Β Β Β Β Β Β self.i2c.writeto(self.i2c_addr, bytearray([byte]))

Β 

Ну ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

main.py

1

2

3

4

5

6

7

8

9

10

11

12

from pico_i2c_lcd import I2cLcd

from machine import I2C

from machine import Pin

import utime as time

Β 

Β 

i2c = I2C(id=1,scl=Pin(9),sda=Pin(8),freq=100000)

lcd = I2cLcd(i2c, 0x27, 2, 16)

Β 

while True:

Β Β Β Β Β Β lcd.move_to(2,0)

Β Β Β Β Β Β lcd.putstr(‘Hello world’)

Β 

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ запуститС всС эти ΠΊΠΎΠ΄Ρ‹ Π½Π° Raspberry Pi Pico, Π½Π° Π–Πš-дисплСС появится сообщСниС Hello World!

Β 

Β 

Π£Π΄Π°Ρ‡Π½ΠΎ вывСдСнная классичСская Ρ„Ρ€Π°Π·Π°Β Hello World!Β Β ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ практичСски Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ возмоТности для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° дисплСй. Если Π²Ρ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΈ с Π½Π°ΠΌΠΈ вСсь ΠΏΡƒΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ модуля, Ρ‚ΠΎ нСбольшая модСрнизация исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с Π²Π°ΡˆΠΈΡ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΠΈ тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ примСнСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ.

Π‘Ρ‚ΠΎΠΈΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ дисплСя для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Β Raspberry Pi Pico ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, поэтому знания, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ пригодятся Π²Π°ΠΌ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² любой слоТности.

Β 

UART ΠΏΡ€ΠΎΡ‚ΠΈΠ² I2C ΠΏΡ€ΠΎΡ‚ΠΈΠ² SPI — ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ связи ΠΈ ΠΈΡ… использованиС

Когда ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ… связи, UART, SPI ΠΈ I2C ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ интСрфСйсами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ интСрфСйсы: UART, SPI ΠΈ I2C, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… различия. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ Π½Π° основС ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², прСимущСств ΠΈ нСдостатков ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ интСрфСйса ΠΈ Ρ‚. Π”., И ΠΌΡ‹ прСдоставим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ эти интСрфСйсы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ….


Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ UART

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ UART?

  • ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ асинхронный ΠΏΡ€ΠΈΠ΅ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° (UART)
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ связи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт хосту ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ устройством.
  • UART ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ, Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….
  • Он ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ΄Π½Ρƒ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ (TX), Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ для ΠΏΡ€ΠΈΠ΅ΠΌΠ° (RX), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для связи Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 0, Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ 1.
  • TX ΠΈ RX ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя устройствами. (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, USB ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€)
  • UART Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ управлСния синхронизациСй ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ ΠΈ внСшними ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ устройствами.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

  • Он ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами трСмя способами:
    • БимплСкс = ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ
    • ΠŸΠΎΠ»ΡƒΠ΄ΡƒΠΏΠ»Π΅ΠΊΡ = ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² любом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Π½ΠΎ Π½Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ
    • ΠŸΠΎΠ»Π½ΠΎΠ΄ΡƒΠΏΠ»Π΅ΠΊΡΠ½Ρ‹ΠΉ = ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±ΠΎΠΈΡ… направлСниях ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ
  • ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Π΅ проходят ΠΎΡ‚ TX ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ UART ΠΊ RX ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ UART.
  • ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ UART являСтся ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ асинхронной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ = НСт часов
  • ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° UART ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ устройства (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CPU) Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ UART. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ устройства
Бсылка: ΠžΡΠ½ΠΎΠ²Ρ‹ связи UART.
  • ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ UART Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ часов, UART добавляСт стартовыС ΠΈ стоповыС Π±ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ для прСдставлСния Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° сообщСния.
  • Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌΡƒ UART Π·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΈ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ². Когда ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ UART ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ стартовый Π±ΠΈΡ‚, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΡ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ BAUD.
  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… UART называСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ BAUD ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ установлСна ​​на 115200 (ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ BAUD основана Π½Π° скорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ символов, Π½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° скорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Π±ΠΈΡ‚Π°Ρ…).
  • Оба UART Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. Если Ρ€Π°Π·Π½ΠΈΡ†Π° Π² скорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ BAUD ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 10%, синхронизация Π±ΠΈΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ станут Π½Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌΠΈ для использования.ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ UART настроСны для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» UART

  • UART, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, сначала ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΡˆΠΈΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CPU).
  • ПослС получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΡˆΠΈΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ½ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ стартовый Π±ΠΈΡ‚, Π±ΠΈΡ‚ чСтности ΠΈ стоповый Π±ΠΈΡ‚ для создания ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ….
  • ΠŸΠ°ΠΊΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Ρ‚Π΅ΠΌ пСрСдаСтся Π½Π° Π²Ρ‹Π²ΠΎΠ΄ TX, Π³Π΄Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ UART Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° своСм Π²Ρ‹Π²ΠΎΠ΄Π΅ RX.Π”Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π² ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰Π΅ΠΌ UART Π½Π΅ останСтся Π΄Π°Π½Π½Ρ‹Ρ….
ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
  • Когда Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰Π΅ΠΌΡƒ FIFO, Ρ„Π»Π°Π³ FIFO Β«BUSYΒ» Π±ΡƒΠ΄Π΅Ρ‚ установлСн ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Π²ΠΎ врСмя процСсса.
    • FIFO = ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΡˆΠ΅Π» — ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡƒΡˆΠ΅Π». Π­Ρ‚ΠΎ Π±ΡƒΡ„Π΅Ρ€ UART, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заставляСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌΡƒ UART.
  • Π‘ΠΈΡ‚ Β«Π—ΠΠΠ―Π’ΠžΒ» Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… закончится, FIFO очищаСтся ΠΈ всС Π±ΠΈΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ стоповый Π±ΠΈΡ‚.
  • Когда ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ UART находится Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ оТидания ΠΈ Ссли Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ послС получСния стартового Π±ΠΈΡ‚Π°, счСтчик ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π½Π°Ρ‡Π½Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ получСния Π΄Π°Π½Π½Ρ‹Ρ… Π² 8-ΠΌ Ρ†ΠΈΠΊΠ»Π΅ BAUD16.
  • Если RX всС Π΅Ρ‰Π΅ находится Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 8-Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° Baud16, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ стартовый Π±ΠΈΡ‚ дСйствитСлСн, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠ°ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ стартовый Π±ΠΈΡ‚ ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½.
  • Если стартовый Π±ΠΈΡ‚ дСйствитСлСн, Π±ΠΈΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ 16-ΠΉ Ρ†ΠΈΠΊΠ» Baud16 Π² зависимости ΠΎΡ‚ Π΄Π»ΠΈΠ½Ρ‹ символа Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ чСтности, Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСтся Π±ΠΈΡ‚ чСтности.
  • Если RX высокий, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ стоповый Π±ΠΈΡ‚. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ошибка кадрирования.
  • Когда ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌ FIFO.
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ прСрываниями
  • ЦСлью ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ являСтся автоматичСская ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° содСрТимого Π±ΡƒΡ„Π΅Ρ€Π°.
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСрывания Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:
    • Ошибка Ρ€Π°Π·Ρ€Ρ‹Π²Π° строки (сигнал RX остаСтся 0, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ стоповый Π±ΠΈΡ‚.)
    • Ошибка ΠΊΠ°Π΄Ρ€Π° (стоповый Π±ΠΈΡ‚ Π½Π΅ 1)
    • Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ( ΠΏΡ€ΠΈΠ΅ΠΌΠ½Ρ‹ΠΉ FIFO ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»Π½Ρ‹Π΅, ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ)

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ FIFO

  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ UART сСмСйства процСссоров ARM Stellaris содСрТит Π΄Π²Π° 16-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… FIFO: ΠΎΠ΄ΠΈΠ½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ ΠΎΠ΄ΠΈΠ½ для ΠΏΡ€ΠΈΠ΅ΠΌΠ°.
  • Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° запуск ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Π½Π° Ρ€Π°Π·Π½ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Π΅. НапримСр, Π³Π»ΡƒΠ±ΠΈΠ½Π° 1/8, 1/4, 1/2, 3/4 ΠΈ 7/8.
  • Если ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ FIFO запускаСт ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π½Π° 1/4, ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ° запускаСтся, ΠΊΠΎΠ³Π΄Π° UART ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ 4 Π΄Π°Π½Π½Ρ‹Ρ….

Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ FIFO:

  1. ΠŸΡ€ΠΎΡ†Π΅ΡΡ запускаСтся сразу послС Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, поэтому Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉ FIFO.
  2. Когда ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉ FIFO заполнится, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ придСтся ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ потСряСтС свои Π΄Π°Π½Π½Ρ‹Π΅.
  3. ΠŸΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉ FIFO Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ±ΠΈΡ‚Π½ΠΎ, ΠΏΠΎΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉ FIFO Π½Π΅ станСт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пустым. ПослС очистки ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉ FIFO Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ слот.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ΠΏΡ€ΠΈΠ΅ΠΌΠ° FIFO:

  1. Когда ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌ FIFO. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈ ΡΡ‚ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ FIFO, поэтому Π² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌ FIFO останСтся мСсто.Если Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌ FIFO Π½Π΅ ΡΡ‚ΠΈΡ€Π°ΡŽΡ‚ΡΡ, Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ FIFO Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ потСряны.
  2. FIFO ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанной с Π½Π΅ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ЦП ΠΈ слишком частым ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° UART. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ связь UART, Ρ€Π΅ΠΆΠΈΠΌ прСрывания ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ эффСктивнСС, Ρ‡Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ опроса. Π‘Π΅Π· FIFO ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° всС Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ станут нСэффСктивными. Π‘ FIFO ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ постоянно ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ (Π΄ΠΎ 14), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ°.
  3. ΠŸΠΎΡ‚Π΅Ρ€Ρ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ FIFO, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΡƒΠΆΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π» ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² процСссС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ получСния. Пока UART ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° прСрывания Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ всС автоматичСски.
ΠŸΠ΅Ρ‚Π»Ρ
  • UART ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ΅Ρ‚Π»ΠΈ для диагностики ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· TX, Π±ΡƒΠ΄ΡƒΡ‚ приняты Π²Ρ…ΠΎΠ΄ΠΎΠΌ RX.
ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ инфракрасный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»
  • UART ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ IrDA ΠœΠΎΠ΄ΡƒΠ»ΡŒ инфракрасного (SIR) ΠΊΠΎΠ΄Π΅Ρ€Π° / Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π°.ΠœΠΎΠ΄ΡƒΠ»ΡŒ IrDA SIR ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ асинхронным ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… UART ΠΈ полудуплСксным ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ интСрфСйсом SIR.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обСспСчСния Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ для UART. Π‘ΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ UART ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ инфракрасному трансивСру для физичСского уровня IrDA SIR связь.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования UART

  • ΠŸΡ€ΠΎΡΡ‚ Π² использовании, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ с большим количСством рСсурсов Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅
  • Часы Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ
  • Π‘ΠΈΡ‚ чСтности для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ошибок

НСдостатки использования UART

  • Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Π΄Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ всСго 9 Π±ΠΈΡ‚Π°ΠΌΠΈ
  • НСвозмоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… систСм ΠΈ Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… устройств
  • Бкорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ UART Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… 10% Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ Π΄Π°Π½Π½Ρ‹Ρ….
  • Низкая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ UART Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…:

USB CP2102 ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ
  • ВысокоинтСгрированный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ моста USB-UART, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для обновлСния конструкций RS-232 Π΄ΠΎ USB с использованиСм минимального количСства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ мСста Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅. Он обСспСчиваСт USB-ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ устройствам с интСрфСйсом UART.
    • Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стандартный USB-ΡˆΡ‚Π΅ΠΊΠ΅Ρ€ Ρ‚ΠΈΠΏΠ° A ΠΈ 6-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ TTL.
  • Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ USB CP2102 прСдставляСт собой нСбольшой Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ для ΠΏΠ»Π°Ρ‚Ρ‹ Arduino / Seeeduino для ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.
FT232r USB UART / USB ΠΊ UART 5 Π’
  • Компания Seeed ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚: USB-UART 5V
  • Π­Ρ‚ΠΎ USB-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс UART, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ USB-ΠΏΠΎΡ€Ρ‚ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.
  • Π£ΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ количСство Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΡ€ΠΈ этом эффСктивно работая с хост-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ USB, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС ΠΎΠ±Ρ‰Π΅ΠΉ доступной полосы пропускания USB.
  • Для USB Π² UART 5V ΠΎΠ½ основан Π½Π° Ch440, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой микросхСму прСобразования ΡˆΠΈΠ½Ρ‹ USB ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ USB Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс.
    • Π­Ρ‚ΠΎΡ‚ USB-ΠΏΠΎΡ€Ρ‚ прСобразуСтся Π² инфракрасный ΠΏΠΎΡ€Ρ‚ IrDA ΠΈΠ»ΠΈ USB-ΠΏΠΎΡ€Ρ‚ для прСобразования Π² интСрфСйс ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ связи с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ.
UART Seeeduino V4.2
  • ВсС ΠΏΠ»Π°Ρ‚Ρ‹ Arduino ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ (UART), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обмСниваСтся Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄Π°Ρ… 0 (RX) ΠΈ 1 (TX), Π° Ρ‚Π°ΠΊΠΆΠ΅ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· USB.
  • Π­Ρ‚ΠΎ Arduino-совмСстимая ΠΏΠ»Π°Ρ‚Π°, основанная Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ATmga328P. Π‘ ATMEGA16U2 Π² качСствС прСобразоватСля UART-USB, ΠΏΠ»Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π² основном Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ микросхСма FTDI, ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· кабСль micro-USB.
Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‰ΠΈΡ‚ V2
  • Arduino Uno — самая популярная ΠΏΠ»Π°Ρ‚Π° Arduino Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ нСприятно, ΠΊΠΎΠ³Π΄Π° Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ трСбуСтся ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ свСтодиодов, Π° ваши ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ находятся Π² бСспорядкС.
  • НазначСниС этого ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° — ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ². Благодаря Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌ Ρ€Π°Π·ΡŠΠ΅ΠΌΠ°ΠΌ Grove Π½Π° плинтусС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Grove Π² Arduino Uno!
  • Π­Ρ‚ΠΈ устройства ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· UART ΠΈ I2C (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ΅ устройство, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я расскаТу!)

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ I2C

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ I2C?

  • ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠœΠ΅ΠΆΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Π°Ρ схСма (I2C)
  • Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ связи, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ UART.Однако ΠΎΠ½ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для связи ПК с устройством, Π° вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с модулями ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ.
  • Π­Ρ‚ΠΎ простая двунаправлСнная двухпроводная синхронная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ шина, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊ шинС.
  • Они ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ мноТСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ²), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎ 128 устройств ΠΊ матСринской ΠΏΠ»Π°Ρ‚Π΅, сохраняя ΠΏΡ€ΠΈ этом чистый ΠΊΠ°Π½Π°Π» связи!
  • Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ I2C ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π΄Ρ€Π΅ΡΠ½ΡƒΡŽ систСму ΠΈ ΠΎΠ±Ρ‰ΡƒΡŽ ΡˆΠΈΠ½Ρƒ = мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… устройств ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ с использованиСм ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², ΠΈ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Ρƒ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ нСбольшоС количСство ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ².Однако нСдостатком этого ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ SPI.
  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ I2C Ρ‚Π°ΠΊΠΆΠ΅ зависит ΠΎΡ‚ скорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, качСства ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΈ внСшнСго ΡˆΡƒΠΌΠ°.
  • ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» I2C Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС Π΄Π²ΡƒΡ…ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠ³ΠΎ интСрфСйса для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ низкоскоростных устройств, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹, EEPROM, Π°Π½Π°Π»ΠΎΠ³ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎ-Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. , Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства Π²ΠΎ встроСнных систСмах.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

  • Он ΠΈΠΌΠ΅Π΅Ρ‚ 2 Π»ΠΈΠ½ΠΈΠΈ: SCL (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия синхронизации) ΠΈ SDA (ΠΏΠΎΡ€Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…).
  • CL — линия синхронизации для синхронизации ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.SDA — это линия Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π±ΠΈΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….
  • Π’Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ шинС ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ часы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ΅ устройство, ΠΈ любоС адрСсуСмоС устройство считаСтся Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌ устройством.
  • Π’Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ ΠΈ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌ устройствами, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎ шинС, нСпостоянна. Π­Ρ‚ΠΎ зависит ΠΎΡ‚ направлСния ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.
  • Если Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ устройству, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ сначала ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½Ρ‹Π΅.
  • ΠœΠ°ΡΡ‚Π΅Ρ€ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ, Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство Π΄ΠΎΠ»ΠΆΠ½ΠΎ снова сначала ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ.
  • Π—Π°Ρ‚Π΅ΠΌ хост ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌ, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ процСсс ΠΏΡ€ΠΈΠ΅ΠΌΠ°. Π₯ост Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹Ρ… ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ² ΠΈ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….
  • Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ рСзистор. Когда шина простаиваСт, ΠΎΠ±Π΅ Π»ΠΈΠ½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с высоким ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ мощности.
  • Π•ΠΌΠΊΠΎΡΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ шинС. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ тСкущая ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Π½Π° шинС ΠΌΠ°Π»Π°, слишком большая Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ошибки ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΅Π³ΠΎ нагрузочная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ 400 ΠΏΠ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ ΡˆΠΈΠ½Ρ‹ ΠΈ количСство ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… устройств.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» I2C

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
  • Π’Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство отправляСт сигнал ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌΡƒ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ устройству, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ линию SDA с высокого уровня напряТСния Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΈ линию SCL с высокого Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ послС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΈ SDA.
  • Π’Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство отправляСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ устройству 7 ΠΈΠ»ΠΈ 10-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ устройства ΠΈ Π±ΠΈΡ‚ чтСния / записи Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ устройству, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ.
  • ΠŸΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠ΅ устройство Π·Π°Ρ‚Π΅ΠΌ сравнит адрСс со своим собствСнным. Если адрСс совпадаСт, Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΠΈΡ‚ ACK, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ линию SDA Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π° ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚. Если адрСс Π½Π΅ совпадаСт с Π΅Π³ΠΎ адрСсом, Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство оставляСт линию SDA Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅
  • Π—Π°Ρ‚Π΅ΠΌ Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство отправляСт ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ„Ρ€Π΅ΠΉΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. ПослС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π΅ устройство Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŽ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ ACK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ.
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ отправляСт сигнал остановки Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ SCL ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ высокого уровня SDA
Бинхронизация часов
  • ВсС мастСра Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ свои собствСнныС часы Π½Π° Π»ΠΈΠ½ΠΈΠΈ SCL для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний Π½Π° Π¨ΠΈΠ½Π° I2C.
  • Π”Π°Π½Π½Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² высокий ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
  • Часы синхронизация осущСствляСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ интСрфСйса I2C ΠΊ Π»ΠΈΠ½ΠΈΠΈ SCL Π³Π΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ΄Π΅Ρ‚ с высокого Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ. Когда часы устройства ΠΈΠ΄ΡƒΡ‚ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, ΠΎΠ½ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ линию SCL Π² этом состоянии Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ достигнСт высокого уровня Часы.
  • Если Π΄Ρ€ΡƒΠ³ΠΈΠ΅ часы всС Π΅Ρ‰Π΅ находятся Π² Π½ΠΈΠ·ΠΊΠΎΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π΅, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ-высокого Π½Π΅ измСняСтся состояниС Π»ΠΈΠ½ΠΈΠΈ SCL. Линия SCL всСгда удСрТиваСтся Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ устройством с самый ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄. На этот Ρ€Π°Π· устройство с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² состояниС высокого ΠΈ оТидания.
  • Когда всС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ устройства Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ свой Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, линия часов ΠΈΠ΄Π΅Ρ‚ высокий.
  • ПослС Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π² состоянии часов устройства ΠΈ Π»ΠΈΠ½ΠΈΠΈ SCL, ΠΈ всС устройства Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ свой высокий ΠΏΠ΅Ρ€ΠΈΠΎΠ΄.Устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° максимума снова потянСт Π·Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π»ΠΈΠ½ΠΈΠΈ SCL.
  • Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ синхронных часов SCL опрСдСляСтся устройством с самый Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ высокий ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ опрСдСляСтся устройством с самым ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ высоким Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ.

Π Π΅ΠΆΠΈΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ

Быстрый Ρ€Π΅ΠΆΠΈΠΌ:
  • Устройства быстрого Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 400 ΠΊΠ±ΠΈΡ‚ / с. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ способны ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ 400 ΠΊΠ±ΠΈΡ‚ / с ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ сигнала SCL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ.
  • Устройства быстрого Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстимы ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с устройствами стандартного Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚ 0 Π΄ΠΎ 100 ΠΊΠ±ΠΈΡ‚ / с ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ систСмами I2C. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ устройства Π² стандартном Ρ€Π΅ΠΆΠΈΠΌΠ΅ нСсовмСстимы снизу Π²Π²Π΅Ρ€Ρ…, ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² систСмС быстрой ΡˆΠΈΠ½Ρ‹ I2C. БпСцификация ΡˆΠΈΠ½Ρ‹ I2C для быстрого Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ характСристики ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со стандартным Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ:
    • Максимальная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° Π΄ΠΎ 400 ΠΊΠ±ΠΈΡ‚ / с;
    • Π‘ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° синхронизация сигналов ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (SDA) ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… часов (SCL).
    • Π˜ΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ подавлСния сбоСв, Π° Π²Ρ…ΠΎΠ΄Ρ‹ SDA ΠΈ SCL ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ Π¨ΠΌΠΈΡ‚Ρ‚Π°.
    • Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ управлСния ΠΊΡ€ΡƒΡ‚ΠΈΠ·Π½ΠΎΠΉ для ΡΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ² сигналов SDA ΠΈ SCL
    • ПослС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ питания устройства быстрого Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π²Π²ΠΎΠ΄Π° / Π²Ρ‹Π²ΠΎΠ΄Π° SDA ΠΈ SCL Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ остался Π±Π΅Π· Π΄Π΅Π»Π° ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ автобус.
    • Π’Π½Π΅ΡˆΠ½Π΅Π΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ устройство, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΊ шинС, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ настроСно Π½Π° максимально ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ максимально допустимоС врСмя нарастания ΡˆΠΈΠ½Ρ‹ I2C Π² быстром Ρ€Π΅ΠΆΠΈΠΌΠ΅.Для шин с максимальной Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ 200 ΠΏΠ€ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ устройством ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡˆΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рСзистор. Для ΡˆΠΈΠ½Ρ‹ с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΎΡ‚ 200 ΠΏΠ€ Π΄ΠΎ 400 ΠΏΠ€ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ устройством ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ источник Ρ‚ΠΎΠΊΠ° (максимум 3 мА) ΠΈΠ»ΠΈ Ρ†Π΅ΠΏΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ рСзистора.
Высокоскоростной Ρ€Π΅ΠΆΠΈΠΌ:
  • Устройства Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Hs ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 3,4 ΠœΠ±ΠΈΡ‚ / с ΠΈ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстимыми с устройствами Π² быстром Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ»ΠΈ стандартном Ρ€Π΅ΠΆΠΈΠΌΠ΅ (Ρ€Π΅ΠΆΠΈΠΌ F / S), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π΄Π²ΡƒΡ… направлСниях Π² систСмС со смСшанной ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ.
  • ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Hs ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΈΠ½Ρ‹ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΈ систСма Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ F / S, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆΠ° ΠΈ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ синхронизации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ.
  • БпСцификация ΡˆΠΈΠ½Ρ‹ I2C Π² высокоскоростном Ρ€Π΅ΠΆΠΈΠΌΠ΅ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
    • Π’ высокоскоростном Ρ€Π΅ΠΆΠΈΠΌΠ΅ (Hs) Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство ΠΈΠΌΠ΅Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ стоком для высокоскоростного сигнала (SDAH) ΠΈ вытягиваниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ стоком. — Ρ†Π΅ΠΏΡŒ пониТСния ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ напряТСния источника Ρ‚ΠΎΠΊΠ° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ высокоскоростной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ синхронизации (SCLH). Π­Ρ‚ΠΎ сокращаСт врСмя нарастания сигнала SCLH, ΠΈ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ источник Ρ‚ΠΎΠΊΠ° хоста;
    • Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Hs систСмы с нСсколькими Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆ ΠΈ тактовая синхронизация, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΈΡ‚ΠΎΠ².ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ заканчиваСтся послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ хоста ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ F / S.
    • Π’Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Hs Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ сигнал высокого ΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня с ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ 1: 2, Ρ‡Ρ‚ΠΎ устраняСт Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ трСбования для Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ установки ΠΈ удСрТания.
    • Устройство, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ HS, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ встроСнный мост. Π’ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Hs Π»ΠΈΠ½ΠΈΠΈ SDAH ΠΈ SCLH устройства Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Hs ΠΎΡ‚Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΡ‚ Π»ΠΈΠ½ΠΈΠΉ SDA ΠΈ SCL, Ρ‡Ρ‚ΠΎ сниТаСт Π΅ΠΌΠΊΠΎΡΡ‚Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π»ΠΈΠ½ΠΈΠΉ SDAH ΠΈ SCLH ΠΈ ускоряСт рост ΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅.
    • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ устройствами Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Hs ΠΈ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ устройствами F / S Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² скорости, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.
    • Устройство Ρ€Π΅ΠΆΠΈΠΌΠ° Hs ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π°Π²Π»ΡΡ‚ΡŒ выбросы, Π° Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ SDAH ΠΈ SCLH Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ Π¨ΠΌΠΈΡ‚Ρ‚Π°;
    • Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ устройства Ρ€Π΅ΠΆΠΈΠΌΠ° Hs ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ управлСния ΠΊΡ€ΡƒΡ‚ΠΈΠ·Π½ΠΎΠΉ спада для сигналов SDAH ΠΈ SCLH.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования I2C

  • Π˜ΠΌΠ΅Π΅Ρ‚ нСбольшоС количСство Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² / сигналов Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ большого количСства устройств Π½Π° шинС.
  • Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ связь с нСсколькими Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌΠΈ ΠΈ нСсколькими Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌΠΈ устройствами.
  • ΠŸΡ€ΠΎΡΡ‚ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для установлСния связи ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими устройствами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°.
  • ΠŸΡ€ΠΈΡΠΏΠΎΡΠ°Π±Π»ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ потрСбностям Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… устройств.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мастСров.

НСдостатки использования I2C

  • Π‘ΠΎΠ»Π΅Π΅ низкая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для этого Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы, Π° Π½Π΅ Π΄Π²ΡƒΡ…Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ рСзисторы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ SPI. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ стоком = ограничСнная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ.
  • ВрСбуСтся большС мСста, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ рСзисторы Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Ρ†Π΅Π½Π½ΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅.
  • ΠœΠΎΠΆΠ΅Ρ‚ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ увСличСния количСства устройств.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ I2C Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…

Grove — ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ‚ΠΎΡ€ I2C (6 ΠΏΠΎΡ€Ρ‚ΠΎΠ²)
  • I2C — ΠΎΡ‡Π΅Π½ΡŒ популярный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» связи. Π’ систСмС Grove I2C ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 80 Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ для связи, 19 ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… связаны с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды.
  • БСгодня всС большС ΠΈ большС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡƒΡ€ΠΎΠ²Π½ΠΈ связи 3,3 Π’, Π½ΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ArduinoUno ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 5 Π’, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСобходимости выравнивания ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, особСнно сСнсорных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΏΡ€ΠΈ ΠΈΡ… использовании.
  • ΠœΡ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ этой ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сСнсорных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Grove ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сдвига уровня, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ использованиС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° 3,3 Π’ ΠΈΠ»ΠΈ 5 Π’ ΠΏΡ€ΠΈ Π΅Π³ΠΎ использовании. Π­Ρ‚ΠΎ соотвСтствуСт Π΄Π΅Π²ΠΈΠ·Ρƒ Π“Ρ€ΠΎΡƒΠ²: ΠΏΠ»Π°Π³ΠΈΠ½, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ, это Ρ‚Π°ΠΊ просто. Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±Π·ΠΎΡ€Π° совмСстимости Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ нашС Руководство ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ Grove.
4-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ 16-разрядный АЦП для Raspberry Pi (ADS1115)

  • Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΎΡ‚ Seeed ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстим с Raspberry Pi.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Raspberry Pi Π±Π΅Π· Π°Π½Π°Π»ΠΎΠ³ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ прСобразоватСля ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ АЦП.
  • ΠœΡ‹ прСдоставляСм 4-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ 16-разрядный АЦП для Raspberry Pi (ADS1115) Ρ‡Π΅Ρ€Π΅Π· I2C, 4-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ АЦП Π½Π° Π±Π°Π·Π΅ Texas Instrument ADS1115, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой высокоточный 16-разрядный Ρ‡ΠΈΠΏ АЦП с Π½ΠΈΠ·ΠΊΠΈΠΌ энСргопотрСблСниСм.
I2C Ардуино
  • Бвязь I2C Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΠ»Π°Ρ‚Π°ΠΌΠΈ Arduino.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для связи Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ расстояния ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ синхронизированный Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΈΠΌΠΏΡƒΠ»ΡŒΡ.
  • Π’ основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для связи с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройствами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ мастСру.
Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ I2C / Π›Π΅Π³ΠΊΠΎ управляСмый Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Устройства I2C
  • Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ IΒ²C — это простой Π² использовании инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для управлСния устройствами IΒ²C. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Windows, Mac ΠΈ Linux ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ экран, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ отобраТаСтся вся Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ IΒ²C.
  • Благодаря встроСнному дисплСю, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅ΠΌΡƒ Ρ‚Π΅ΠΏΠ»ΠΎΠ²ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ всСх Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сСтСвых ΡƒΠ·Π»ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΈΠ· сСти IΒ²C с нСсколькими устройствами, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ.
  • Когда Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ IΒ²C ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ шинС IΒ²C, ΠΎΠ½ «отслСТиваСт» Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π° экранС.
  • Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ инструмСнт для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с IΒ²C, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ происходит.
MCP 23017
Бсылка: Electronicwings, 16-разрядный Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚Π΅Π»ΡŒ GPIO MCP23017.
  • 16-Π±ΠΈΡ‚Π½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния для ΡˆΠΈΠ½Ρ‹ I2C. АналогичСн MCP23S17, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса (I2C ΠΏΡ€ΠΎΡ‚ΠΈΠ² SPI).
  • Π Π°ΡΡˆΠΈΡ€ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΡ€Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ практичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со стандартными ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ.
PCF 8574
Бсылка: PCF8574 ΠŸΠ»Π°Ρ‚Π° модуля ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π–Πš-дисплСя.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния Ρ‡Π΅Ρ€Π΅Π· Π΄Π²ΡƒΡ…ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΡƒΡŽ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΡˆΠΈΠ½Ρƒ I2C (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ часы (SCL), ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (SDA)).
  • Seeed Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это Π² Π½Π°ΡˆΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слСдитС Π·Π° Π½ΠΈΠΌ!
Grove Base Hat для Raspberry Pi
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€ΠΎΡ‰Π°?
    • Π­Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ стандартизированная систСма прототипирования соСдинитСлСй.ΠŸΡ€ΠΈ сборкС элСктроники Grove ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ конструктивный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, экспСримСнтированиС ΠΈ созданиС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ систСму обучСния.
  • БСгодня сСрия Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΈ дисплССв Grove выросла Π² большоС сСмСйство, ΠΈ сСгодня ΠΌΡ‹ прСдставляСм Raspberry Pi для всСй систСмы Grove.
  • Базовая шляпа Grove для Raspberry Pi прСдоставляСт Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ / Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ / I2C / PWM / UART ΠΏΠΎΡ€Ρ‚ для удовлСтворСния всСх Π²Π°ΡˆΠΈΡ… потрСбностСй.
  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного MCU для Raspberry Pi Ρ‚Π°ΠΊΠΆΠ΅ доступСн 12-Π±ΠΈΡ‚Π½Ρ‹ΠΉ 8-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ АЦП.Π’ настоящСС врСмя Π±ΠΎΠ»Π΅Π΅ 60 Groves ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π»ΠΈ Grove Base Hat для Raspberry Pi.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ SPI

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SPI?

  • ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ интСрфСйс (SPI)
  • Он ΠΏΠΎΡ…ΠΎΠΆ Π½Π° I2C ΠΈ прСдставляСт собой Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ связи, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².
  • Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² полнодуплСксном Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.
  • Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π±ΠΎΠ»Π΅Π΅ высоких скоростях ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… = 8 ΠœΠ±ΠΈΡ‚ ΠΈΠ»ΠΈ большС
  • ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это быстрСС, Ρ‡Π΅ΠΌ I2C ΠΈΠ·-Π·Π° простого ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°.Π”Π°ΠΆΠ΅ Ссли Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… / часов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ совмСстно ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ устройству потрСбуСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ адрСсный ΠΏΡ€ΠΎΠ²ΠΎΠ΄.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ. (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SD-ΠΊΠ°Ρ€Ρ‚Ρ‹, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ дисплСя ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° информация обновляСтся ΠΈ быстро мСняСтся, ΠΊΠ°ΠΊ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Ρ‹)

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

  • ΠžΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ двумя способами:
    1. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ устройства строкой Chip Select. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ устройства трСбуСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ строка Chip Select. Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнный способ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² настоящСС врСмя RPi ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ SPI.
    2. ГирляндноС соСдинСниС, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ устройство ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· свои Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² строкС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ.
  • ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… устройств SPI Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ. Однако ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ практичСскиС ограничСния ΠΈΠ·-Π·Π° количСства Π»ΠΈΠ½ΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€Π° оборудования, доступных Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ устройствС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π±ΠΎΡ€Π° микросхСмы, ΠΈΠ»ΠΈ слоТности ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· устройства Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.
  • ΠŸΡ€ΠΈ Π΄Π²ΡƒΡ…Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠΉ связи интСрфСйс SPI Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ адрСсации ΠΈ являСтся полнодуплСксным, Ρ‡Ρ‚ΠΎ являСтся простым ΠΈ эффСктивным.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» SPI

  • SPI обмСниваСтся Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· 4 ΠΏΠΎΡ€Ρ‚Π°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
    • MOSI — Π²Ρ‹Π²ΠΎΠ΄ основных Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ
    • MISO — Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ, Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ
    • SCLK — Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ сигнал, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ устройством, Π΄ΠΎ fPCLK / 2, частота Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Π΄ΠΎ fCPU / 2
    • NSS — сигнал с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌ устройством, управляСмый Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ устройством, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ИБ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ CS (Π²Ρ‹Π±ΠΎΡ€ микросхСмы)
  • Π’ ΠΌΡƒΠ»ΡŒΡ‚ΠΈ-Π²Π΅Π΄ΠΎΠΌΠΎΠΌ Π’ систСмС ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ сигнала, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния оборудования, Ρ‡Π΅ΠΌ систСма I2C.
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ SPI Π½Π° самом Π΄Π΅Π»Π΅ прСдставляСт собой Π΄Π²Π° простых сдвиговых рСгистра Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ 8 Π±ΠΈΡ‚. Он пСрСдаСтся Π±ΠΈΡ‚ Π·Π° Π±ΠΈΡ‚ΠΎΠΌ ΠΏΠΎΠ΄ сигналом Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ ΠΈ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠΌ сдвига, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ устройством. Π‘Ρ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ находится спСрСди, Π° младший — сзади.
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ SPI — это синхронная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ЦП ΠΈ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ низкоскоростным устройством. Под ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠΌ сдвига Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ устройства Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π±ΠΈΡ‚ Π·Π° Π±ΠΈΡ‚ΠΎΠΌ. Π‘Ρ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ находится спСрСди, Π° младший — сзади.Π­Ρ‚ΠΎ полнодуплСксная связь, ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ†Π΅Π»ΠΎΠΌ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ ΡˆΠΈΠ½Ρ‹ I2C, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ скорости Π² нСсколько ΠœΠ±ΠΈΡ‚ / с.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования SPI

  • ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» прост, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅Ρ‚ слоТной систСмы адрСсации Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… устройств, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ I2C.
  • Π­Ρ‚ΠΎ самый быстрый ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с UART ΠΈ I2C.
  • НСт стартовых ΠΈ стоповых Π±ΠΈΡ‚ΠΎΠ², Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ UART, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ Π±Π΅Π· прСрывания
  • ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ MISO ΠΈ MOSI, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ

НСдостатки использования SPI

  • Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΡ€Ρ‚ΠΎΠ² Pin занято, практичСскоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° количСство устройств.
  • НС ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ, ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ подтвСрТдСния Π½Π΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ I2C
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ строки — MOSI, MISO, NCLK, NSS
  • НСт Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ошибок Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ UART (с использованиСм Π±ΠΈΡ‚Π° чСтности)
  • ВсСго 1 мастСр

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ SPI Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…:

MCP 3008 / Grove I2C АЦП
  • Seeed ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Grove I2C ADC, Π½ΠΎ Π΅Π³ΠΎ коммуникационная пСрифСрия — I2C.
  • Π­Ρ‚ΠΎ 10-Π±ΠΈΡ‚Π½Ρ‹ΠΉ 8-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ (АЦП).
  • Для MCP 3008 ΠΎΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Raspberry Pi Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ соСдинСниС SPI. ВыполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΡˆΠΈΠ½Ρ‹ SPI ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² GPIO ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ SPI для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ MCP 3008.
ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ CAN-BUS Π½Π° Π±Π°Π·Π΅ MCP2551 ΠΈ MCP2515
  • Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚: ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΈΠ½Ρ‹ CAN прСдоставляСт Π²Π°ΡˆΠ΅ΠΌΡƒ Arduino возмоТности ΡˆΠΈΠ½Ρ‹ CAN ΠΈ позволяСт Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ ваш Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ. Он позволяСт Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ сообщСния Π½Π° ΡˆΠΈΠ½Ρƒ CAN.
  • Π¨ΠΈΠ½Π° CAN — это систСма ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, которая позволяСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. CAN обСспСчиваСт ΠΌΠ΅ΠΆΠ΄ΡƒΠ³ΠΎΡ€ΠΎΠ΄Π½ΡƒΡŽ, ΡΡ€Π΅Π΄Π½ΡŽΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ.
  • Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΈΠ½Ρ‹ CAN Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ вашСй Arduino Ρ‡Π΅Ρ€Π΅Π· встроСнный Ρ€Π°Π·ΡŠΠ΅ΠΌ Grove.
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ ΠΏΠΎ SPI.
SPI Seeeduino V4.2
  • ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ связь SPI ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Arduino для связи ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Arduino, Π³Π΄Π΅ ΠΎΠ΄ΠΈΠ½ Arduino Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ — ΠΊΠ°ΠΊ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΉ.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для связи Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ расстояния Π½Π° высокой скорости.
  • Π­Ρ‚ΠΎ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚: Arduino v4.2 ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° UART
ENC28J60 ΠΠΠšΠ›ΠΠ”ΠšΠ Π”Π›Π― Raspberry pi
  • Pi zero ENC28J60 — это простой сСтСвой Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ для Pi zero, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ.
  • Π­Ρ‚ΠΎ позволяСт Π²Π°ΡˆΠ΅ΠΌΡƒ Raspberry Pi zero бСспрСпятствСнно ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ сСти, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ обновлСния систСмы ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ установкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.
  • Microchip ENC28J60 — это 28-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ethernet 10BASE-T с интСрфСйсом SPI.
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ SPI слуТит ΠΊΠ°Π½Π°Π»ΠΎΠΌ связи ΠΌΠ΅ΠΆΠ΄Ρƒ хост-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ΠΈ ENC28J60.
Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ SPI / АдаптСр — простой Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для устройств SPI
  • Π­Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ I2C Driver / Adapter-Easy Driver I2C Device, Π½ΠΎ для SPI. Π­Ρ‚ΠΎ простой Π² использовании инструмСнт для управлСния устройствами SPI. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Windows, Mac ΠΈ Linux ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ экран, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ отобраТаСтся логичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ всСго Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° SPI.
  • Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стандартный ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ USB-Ρ‡ΠΈΠΏ FTDI для связи с ПК, поэтому установка ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π½Π΅ трСбуСтся.На ΠΏΠ»Π°Ρ‚Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π±Π»ΠΎΠΊΠΈ питания 3,3 ΠΈ 5 Π’ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ напряТСния ΠΈ Ρ‚ΠΎΠΊΠ°.
  • Ѐлэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ SPI ΠΎΡ‡Π΅Π½ΡŒ распространСна, ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстового Π·Π°ΠΆΠΈΠΌΠ° SPIDriver позволяСт ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„Π»ΡΡˆ-ΠΏΠ°ΠΌΡΡ‚ΡŒ SPI Π² Ρ†Π΅ΠΏΠΈ. ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ скрипт — это всС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для чтСния ΠΈΠ»ΠΈ записи Π²ΡΠΏΡ‹ΡˆΠΊΠΈ Atmel, Π° свСтодиодныС Π»Π΅Π½Ρ‚Ρ‹ SPI Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ SPI. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ!
  • ИспользованиС SPI Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ достаточно быстро для ΠΏΠ»Π°Π²Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… полос ΠΈ достиТСния эффСктов POV.ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ полоски Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΡ‚ ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ встроСнного источника питания SPIDriver Π½Π° 470 мА.

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· этих ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств являСтся Β«Π»ΡƒΡ‡ΡˆΠΈΠΌΒ»? UART, SPI ΠΈΠ»ΠΈ I2C?

К соТалСнию, Β«Π»ΡƒΡ‡ΡˆΠ΅ΠΉΒ» ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈ Π½Π΅Ρ‚. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ устройства Π΅ΡΡ‚ΡŒ свои прСимущСства ΠΈ нСдостатки.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ΅ устройство, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящСС для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.НапримСр, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ самоС быстроС ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ΅ устройство связи, SPI Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ устройств, Π½Π΅ слишком слоТноС, I2C Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎ 127 устройств ΠΈ прост Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.


Π‘Π²ΠΎΠ΄ΠΊΠ°

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

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» UART I2C SPI
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ объСдинСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… устройств Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ КомплСкс ΠΊΠ°ΠΊ устройство
увСличиваСтся
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π‘Π°ΠΌΡ‹ΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ быстрСС, Ρ‡Π΅ΠΌ UART Π‘Π°ΠΌΡ‹ΠΉ быстрый
Кол-Π²ΠΎ устройств Π”ΠΎ 2 устройств Π”ΠΎ 127, Π½ΠΎ услоТняСтся Много, Π½ΠΎ услоТняСтся
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΆΠΈΠ» 1 2 4
ДуплСкс ΠŸΠΎΠ»Π½Ρ‹ΠΉ дуплСкс полудуплСкс ΠŸΠΎΠ»Π½Ρ‹ΠΉ дуплСкс
No.мастСров ΠΈ Ρ€Π°Π±ΠΎΠ² ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ НСсколько Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… ΠΈ Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… 1 Π³Π»Π°Π²Π½Ρ‹ΠΉ, нСсколько ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Ρ…

ЭксклюзивноС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅!

Seeed ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ BREADBOARD, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ (4,90 Π΄ΠΎΠ»Π»Π°Ρ€Π° БША) Π² Seeed!

Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Π½Π°ΠΌΠΈ ΠΈ ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π»Π°ΠΉΠΊΠΈ:

Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Amazon.com: ΠœΠΎΠ΄ΡƒΠ»ΡŒ дисплСя PEMENOL 5PCS OLED для Arduino, 0.96-Π΄ΡŽΠΉΠΌΠΎΠ²Ρ‹ΠΉ I2C IIC ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ 128 x 64 OLED Π–Πš-дисплСй с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ SSD1306 для Raspberry Pi ΠΈ ESP8266

5.0 ΠΈΠ· 5 Π·Π²Π΅Π·Π΄ ΠŸΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ дисплСи — Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ старыС ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π–Πš-дисплСи!
Π‘Π΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½ Π”. Π₯ΠΎΠ»Π», 20 августа 2019 Π³.

Когда я Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π½Π°Ρ‡Π°Π» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ 20 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, СдинствСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ вас Π±Ρ‹Π» для дисплСя, Π±Ρ‹Π» ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ТидкокристалличСский дисплСй (Π–ΠšΠ”) ΠΈΠ»ΠΈ нСсколько 8-ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… свСтодиодных дисплССв.Π–Πš-дисплСи Π±Ρ‹Π»ΠΈ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌΠΈ, ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ малСнькими, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π΄Π²Π΅ строки ΠΏΠΎ 16 символов Π² строкС, ΠΈ ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… / Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ², оставляя Π²Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°ΡˆΠΈΡ… потрСбностСй Π²Π²ΠΎΠ΄Π° / Π²Ρ‹Π²ΠΎΠ΄Π°. 8-ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ свСтодиоды ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят для Ρ†ΠΈΡ„Ρ€, Π½ΠΎ уТасны для тСкста. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π½Π° любом ΠΈΠ· Π½ΠΈΡ… Π±Ρ‹Π»ΠΎ довольно слоТно. Π–Πš-дисплСи с подсвСткой Π±Ρ‹Π»ΠΈ Π΅Ρ‰Π΅ Π΄ΠΎΡ€ΠΎΠΆΠ΅ ΠΈ потрСбляли ΠœΠΠžΠ“Πž Ρ‚ΠΎΠΊΠ°. Π’ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π»ΠΎ слоТно, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ выглядСл Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, это выглядСло, Π½Ρƒ, Π½Ρƒ, ΠΊΠ°ΠΊ Ρ…ΠΎΠ±Π±ΠΈ-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π² 2019 Π³ΠΎΠ΄Ρƒ, Ρƒ нас Π΅ΡΡ‚ΡŒ эти ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠ΅ дисплСи Π½Π° органичСских свСтодиодах (OLED) SSD1306, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ всС эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹! Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ это Π΄Π΅Π»Π°ΡŽΡ‚:

Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ. Π― ΠΊΡƒΠΏΠΈΠ» ΠΏΡΡ‚ΡŒ дисплССв Π·Π° 22,99 Π΄ΠΎΠ»Π»Π°Ρ€Π° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания этого ΠΎΠ±Π·ΠΎΡ€Π° (август 2019 Π³ΠΎΠ΄Π°), ΠΈ с Prime ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΌΠ½Π΅ бСсплатно. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ сдСланныС дисплСи Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ качСства, поэтому низкая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ ΠΈΠ΄Π΅Ρ‚ Π² ΡƒΡ‰Π΅Ρ€Π± качСству. Они ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ смонтированным Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΌ Ρ€Π°Π·ΡŠΠ΅ΠΌΠΎΠΌ — дисплСй ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ (ΠΊΠ°ΠΊ я сдСлал Π½Π° фотографиях) ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ°ΠΌΠΈ DuPont.

Π Π°Π·ΠΌΠ΅Ρ€. Π₯отя эти дисплСи нСбольшиС, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 27 ΠΌΠΌ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ (ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 1,125 дюйма Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅), ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ графичСскими дисплСями, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ своСго символа. На ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ сСмь строк тСкста, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎ 20 символов Π² строкС. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 140 символов! Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ символы большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ это построчно. НапримСр, пСрвая строка (вСрхняя строка) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ тСкстом, Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки — Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшим ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! На ΠΌΠΎΠ΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ Ρ„ΠΎΡ‚ΠΎ самыС Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ ΠΈ самыС Π½ΠΈΠΆΠ½ΠΈΠ΅ строки дисплСя Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ Π½Π° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠ΅ΠΉ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, Π° Π½Π΅ дисплСя!

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ. Π­Ρ‚ΠΈ дисплСи ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» I2C (с адрСсом 0x3C), для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Π²Ρ…ΠΎΠ΄Π° / Π²Ρ‹Ρ…ΠΎΠ΄Π° вашСго ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Arduino ΠΈΠ»ΠΈ Raspberry Pi, оставляя Π²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² свободными для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡. I2C — это ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ нСсколькими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ Arduino, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просты Π² использовании ΠΈ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с Π₯ОРОШИМИ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.Они ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ Π² использовании!

Π“Ρ€Π°Ρ„ΠΈΠΊΠ°. Π­Ρ‚ΠΎ графичСскиС дисплСи, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС 128 пиксСлСй Π½Π° 64 пиксСля, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, обСспСчивая большой графичСский ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π». Если Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ сСрфингом, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ люди Π΄Π΅Π»Π°ΡŽΡ‚ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ с этими дисплСями. Π•ΡΡ‚ΡŒ нСсколько ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Arduino SSD1306, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ рисования Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

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

Π­Π½Π΅Ρ€Π³ΠΎΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅. Π­Π½Π΅Ρ€Π³ΠΎΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ этих устройств Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΈΠ·ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ я Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ показания с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ своСго ΠΈΡΠΏΡ‹Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ оборудования. Моя Π»ΡƒΡ‡ΡˆΠ°Ρ ΠΎΡ†Π΅Π½ΠΊΠ°, подтвСрТдСнная Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ тСстировали эти дисплСи, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π²Ρ‹Π΄Π°ΡŽΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 20 мА ΠΏΡ€ΠΈ 3,3 Π²ΠΎΠ»ΡŒΡ‚. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ этих дисплССв — ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΎΡ‚ 5 Π’ постоянного Ρ‚ΠΎΠΊΠ°, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ 3,3 Π’ постоянного Ρ‚ΠΎΠΊΠ°. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ уровня Π½Π΅ трСбуСтся.Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ я Π·Π°ΠΏΠΈΡ‚Π°Π» SSD1306 ΠΎΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° Arduino — Π²ΠΎΡ‚ насколько Π½ΠΈΠ·ΠΊΠΈΠΌ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ°.

ΠœΠΎΠ½Ρ‚Π°ΠΆ. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ эти дисплСи довольно просто — просто Π²Ρ‹Ρ€Π΅ΠΆΡŒΡ‚Π΅ нСбольшоС отвСрстиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ мСньшС Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ стСкла дисплСя Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΈ помСститС дисплСй Π·Π° Π½ΠΈΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ отвСрстия для крСплСния. Π‘Π΅Π·Π΅Π»ΡŒ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, ΠΈ выглядит ΠΎΠ½ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ! Π’Π°ΠΊ Π΄ΡƒΠΌΠ°Π»Π° Π΄Π°ΠΆΠ΅ моя ΠΆΠ΅Π½Π° … ΠΈ ΠΎΠ½Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π΄ΡƒΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠΎΠΈΡ… элСктронных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½Ρƒ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ²Ρ‹Π΅.(Но ΠΎΠ½Π° ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΆΠ΅Π½Ρ‰ΠΈΠ½Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ….)

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

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ графичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ для Arduino — ДисплСй I2C LCD1602 Β«osoyoo.com

Π’ΠΎ врСмя сборки Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² для Arduino Π²Π°ΠΌ часто потрСбуСтся ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ прямо с Π–Πš-дисплСя. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π–Πš-дисплСй Π½Π° Π²Π°ΡˆΡƒ Arduino, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ связь I2C. НаконСц, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ тСкст Π½Π° дисплСС.

ΠΠŸΠŸΠΠ ΠΠ’ΠΠžΠ• ΠžΠ‘Π•Π‘ΠŸΠ•Π§Π•ΠΠ˜Π•

  • ΠŸΠ»Π°Ρ‚Π° Osoyoo UNO (ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстима с Arduino UNO rev.3) x 1
  • I2C LCD 1602 ДисплСй x 1
  • Π”ΠΆΠ΅ΠΌΠΏΠ΅Ρ€Ρ‹ F / M
  • КабСль USB x 1
  • ΡˆΡ‚ x 1

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Π–Πš-дисплСя Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.Π­Ρ‚ΠΈ значСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ простым тСкстом, Π»ΠΈΠ±ΠΎ числовыми значСниями, считываСмыми Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ количСством Ρ†ΠΈΠΊΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выполняСт Arduino.

Однако с этими дисплСями Π΅ΡΡ‚ΡŒ нСбольшая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Когда ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Arduino), для этих дисплССв трСбуСтся практичСски ΠΌΠ½ΠΎΠ³ΠΎ ПИН-ΠΊΠΎΠ΄ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ практичСски всС доступныС Π²Π²ΠΎΠ΄Ρ‹-Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΈ ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρƒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π° нСсколько Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² для Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… устройств ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ².Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π° благодаря связи ΠΏΠΎ шинС I2C.

ДисплСй LCD1602 ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный ΠΌΠΈΠΊΡ€ΠΎΡ‡ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ управляСт этим Ρ‚ΠΈΠΏΠΎΠΌ связи, Π° Π·Π°Ρ‚Π΅ΠΌ вся входная ΠΈ выходная информация ограничиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ двумя PIN-ΠΊΠΎΠ΄Π°ΠΌΠΈ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ источника питания). I2C — это Ρ‚ΠΈΠΏ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΈΠ½Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Philips, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π΅ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ SDA (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ SCL (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия синхронизации). Оба Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ напряТСния — 5 Π’ ΠΈ 3.3Π’.

Π‘ΠΈΠ½ΠΈΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ Π½Π° I2C LCD1602 (см. Рисунок Π½ΠΈΠΆΠ΅) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ подсвСтки для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ отобраТСния. А Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ°, Ссли Π²Ρ‹ ΡƒΠ±Π΅Ρ€Π΅Ρ‚Π΅ эту ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΡƒ, подсвСтка всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π°.

Для использования Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, поТалуйста, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Β«LiquidCrystal_I2C.hΒ» Π² исходном ΠΊΠΎΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ I2C LCD.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ схСму. Для этого соСдинитС ΠΏΠΈΠ½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Osoyoo UNO LCD1602
Π—Π•ΠœΠ›Π― Π—Π•ΠœΠ›Π―
5Π’ VCC
A4 SDA
A5 SCL

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

  • Для Mega2560: соСдинСния I2C находятся Π½Π° SDA = 20 ΠΈ SCL = 21.Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΡ… вмСстС с двумя Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ питания ΠΊ ΠΊΠ»Π΅ΠΌΠΌΠ°ΠΌ 5V ΠΈ GND .
  • Для Arduino Leonardo: ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ SDA ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 2, Π° SCL — ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ 3 Π½Π° вашСм Arduino.

Из эскизов Fritzing Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° соСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простым способом:

ΠšΠžΠ” ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ«

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρƒ Arduino ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ кабСля USB. Π—Π΅Π»Π΅Π½Ρ‹ΠΉ свСтодиодный ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ питания (с надписью PWR ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π³ΠΎΡ€Π΅Ρ‚ΡŒΡΡ.ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ графичСского программирования Mixly ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊ Monitor ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ 1602 LCD ΠΈ установитС адрСс 0x27.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π–Πš-дисплСй для этого экспСримСнта, Π² строкС 1 Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΠΉΡ‚Π΅ Β«Hello,Β», Π² строкС 2 Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΠΉΡ‚Π΅ Β«World!Β».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ очистку Π–Πš-дисплСя,

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΡƒΠΊΠ²Ρ‹, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ.ΠŸΠ΅Ρ€Π΅Π΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚. Для установки ΠΏΠ»Π°Ρ‚Ρ‹ Uno просто Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Arduino / Genuino Uno: Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Mega2560, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Arduino / Genuino Mega ΠΈΠ»ΠΈ Mega2560.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ устройство ΠΏΠ»Π°Ρ‚Ρ‹ Arduino ΠΈΠ· мСню COM . Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, это COM3 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ ( COM1 ΠΈ COM2 ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ²). Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ это, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ Arduino ΠΈ снова ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ мСню; ΠΏΡ€ΠΎΠΏΠ°Π΄Π°ΡŽΡ‰Π°Ρ запись Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚ΠΎΠΉ Arduino.Π‘Π½ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρƒ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ этот ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚.

Π—Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΊΠΎΠ΄. Если Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π΅ ΡƒΠ΄Π°Π»Π°ΡΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄ Π² соотвСтствии с подсказками.

НаконСц, статус измСнится Π½Π° Β«Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½Π°!Β».

Π§Π΅Ρ€Π΅Π· нСсколько сСкунд послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ваш I2C LCD1602 ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ статичСскиС символы: Β«Hello, World!Β», Π—Π°Ρ‚Π΅ΠΌ Π–Πš-дисплСй очистится, Π° Π·Π°Ρ‚Π΅ΠΌ Β«Hello, OSOYOO!Β» Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ.

, сопряТСниС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° MAX30100 с Arduino


БопряТСниС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° MAX30100 с Arduino

Π’ этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° MAX30100 I , ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠΌ Π΅Π³ΠΎ с Arduino . Π”Π°Ρ‚Ρ‡ΠΈΠΊ MAX30100 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ кислорода Π² ΠΊΡ€ΠΎΠ²ΠΈ ΠΈ ΠΏΡƒΠ»ΡŒΡ . ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой дисплСй, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π–Πš-дисплСй 16×2 , для просмотра Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ SpO2 ΠΈ ΡƒΠ΄Π°Ρ€ΠΎΠ² Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ .ΠšΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ†ΠΈΡ кислорода Π² ΠΊΡ€ΠΎΠ²ΠΈ, называСмая SpO2, измСряСтся Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ…, Π° Π‘Π΅Ρ€Π΄Ρ†Π΅Π±ΠΈΠ΅Π½ΠΈΠ΅ / частота ΠΏΡƒΠ»ΡŒΡΠ° измСряСтся Π² ΡƒΠ΄Π°Ρ€Π°Ρ… Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ.

MAX30100 — это Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ сСрдСчного Ρ€ΠΈΡ‚ΠΌΠ°. Он сочСтаСт Π² сСбС Π΄Π²Π° свСтодиода , Ρ„ΠΎΡ‚ΠΎΠ΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ , ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠΏΡ‚ΠΈΠΊΡƒ ΠΈ ΠΌΠ°Π»ΠΎΡˆΡƒΠΌΡΡ‰ΡƒΡŽ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сигналов для обнаруТСния сигналов ΠΏΡƒΠ»ΡŒΡΠΎΠ²ΠΎΠΉ оксимСтрии ΠΈ частоты сСрдСчных сокращСний. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π΄Π°Ρ‚Ρ‡ΠΈΠΊ с Π»ΡŽΠ±Ρ‹ΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Arduino , ESP8266 ΠΈΠ»ΠΈ ESP32 , ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°.Π­Ρ‚ΠΎΡ‚ Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ DIY Pulse Oximeter стоит всСго ΠΎΠΊΠΎΠ»ΠΎ 5 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… прилоТСниях, Ссли Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ ΠΈΠ»ΠΈ энтузиаст элСктроники.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… с использованиСм этого Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°:
1. Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ кислорода Π² ΠΊΡ€ΠΎΠ²ΠΈ ΠΈ ΠΏΡƒΠ»ΡŒΡΠ° Π½Π° OLED-дисплСС
2. ΠŸΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€ IoT с использованиСм Blynk & ESP8266
3. Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ SpO2 ΠΈ BPM Π½Π° Blynk с использованиСм ESP32
4. БистСма ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π½Π° основС Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π²Π΅Ρ‰Π΅ΠΉ


БпСцификация

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для взаимодСйствия Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° MAX30100 с Arduino.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ приобрСсти всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Amazon. НазваниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ссылка Π½Π° ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅.


Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€?

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

МалСнькиС Π»ΡƒΡ‡ΠΈ свСта проходят Ρ‡Π΅Ρ€Π΅Π· ΠΊΡ€ΠΎΠ²ΡŒ Π² ΠΏΠ°Π»ΡŒΡ†Π΅, измСряя количСство кислорода. Он Π΄Π΅Π»Π°Π΅Ρ‚ это ΠΏΡƒΡ‚Π΅ΠΌ измСрСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² свСтопоглощСнии Π² оксигСнированной ΠΈΠ»ΠΈ дСоксигСнированной ΠΊΡ€ΠΎΠ²ΠΈ .


MAX30100 ΠŸΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€

Π”Π°Ρ‚Ρ‡ΠΈΠΊ прСдставляСт собой ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΏΡƒΠ»ΡŒΡΠ°. Он сочСтаСт Π² сСбС Π΄Π²Π° свСтодиода, Ρ„ΠΎΡ‚ΠΎΠ΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠΏΡ‚ΠΈΠΊΡƒ ΠΈ ΠΌΠ°Π»ΠΎΡˆΡƒΠΌΡΡ‰ΡƒΡŽ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сигналов для обнаруТСния сигналов ΠΏΡƒΠ»ΡŒΡΠ° ΠΈ частоты сСрдСчных сокращСний.Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚ источников питания 1,8 Π’ ΠΈ 3,3 Π’ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΎΠΊΠΎΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ оТидания , Ρ‡Ρ‚ΠΎ позволяСт источнику питания всСгда ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ.


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

1. ΠŸΠΎΡ‚Ρ€Π΅Π±Π»ΡΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ энСргии (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚ 1,8 Π’ ΠΈ 3,3 Π’)
2. Π‘Π²Π΅Ρ€Ρ…Π½ΠΈΠ·ΠΊΠΈΠΉ Ρ‚ΠΎΠΊ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (0,7 мкА, Ρ‚ΠΈΠΏ.)
3. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстрого Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…
4. Π’ΠΈΠΏ интСрфСйса: I2C


Π Π°Π±ΠΎΡ‚Π° ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΏΡƒΠ»ΡŒΡΠ° MAX30100

Π’ устройствС Π΄Π²Π° свСтодиода , ΠΎΠ΄ΠΈΠ½ ΠΈΠ·Π»ΡƒΡ‡Π°Π΅Ρ‚ красный свСт , Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ·Π»ΡƒΡ‡Π°Π΅Ρ‚ инфракрасный свСт .Для измСрСния частоты ΠΏΡƒΠ»ΡŒΡΠ° Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ инфракрасный свСт. И красный, ΠΈ инфракрасный свСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСрСния уровня кислорода Π² ΠΊΡ€ΠΎΠ²ΠΈ.

Когда сСрдцС ΠΏΠ΅Ρ€Π΅ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€ΠΎΠ²ΡŒ, происходит ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ насыщСнной кислородом ΠΊΡ€ΠΎΠ²ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ увСличСния количСства ΠΊΡ€ΠΎΠ²ΠΈ. Когда сСрдцС расслабляСтся, объСм насыщСнной кислородом ΠΊΡ€ΠΎΠ²ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ. Зная врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ΠΌ насыщСнной кислородом ΠΊΡ€ΠΎΠ²ΠΈ, опрСдСляСтся частота ΠΏΡƒΠ»ΡŒΡΠ° .

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, насыщСнная кислородом ΠΊΡ€ΠΎΠ²ΡŒ ΠΏΠΎΠ³Π»ΠΎΡ‰Π°Π΅Ρ‚ большС инфракрасного свСта ΠΈ пропускаСт большС красного свСта, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ дСзоксигСнированная ΠΊΡ€ΠΎΠ²ΡŒ ΠΏΠΎΠ³Π»ΠΎΡ‰Π°Π΅Ρ‚ красный свСт ΠΈ пропускаСт большС инфракрасного свСта.Π­Ρ‚ΠΎ основная функция MAX30100: ΠΎΠ½ считываСт ΡƒΡ€ΠΎΠ²Π½ΠΈ поглощСния для ΠΎΠ±ΠΎΠΈΡ… источников свСта ΠΈ сохраняСт ΠΈΡ… Π² Π±ΡƒΡ„Π΅Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ считан с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° связи I2C .


БопряТСниС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° MAX30100 с Arduino

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ соСдиним Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° MAX30100 с Arduino ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Π½ΡŒ просты. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ самому.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ Vin MAX30100 ΠΊ Arduino 5V ΠΈΠ»ΠΈ 3.3V ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚, GND Π½Π° GND. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ I2C MAX30100, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ SCL ΠΈ SDA ΠΊ A5 ΠΈ A4 Arduino.


Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ / ​​программа

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ / ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для взаимодСйствия ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° MAX30100 с Arduino написана Π½Π° языкС C для Arduino IDE. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ этот ΠΊΠΎΠ΄ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ Arduino.

Но ΠΏΠ΅Ρ€Π΅Π΄ этим Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» MAX30100 Library ΠΎΡ‚ΡΡŽΠ΄Π°:
Arduino MAX30100 Library

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

18

19

20

21

22

23

24

25

26

27

28

29

30

000

000 34

35

36

37

38

39

40

41

42

43

44

45

46

47

#include

#include «MAX30100_PulseOximeter.h»

#define REPORTING_PERIOD_MS 1000

PulseOximeter pox;

uint32_t tsLastReport = 0;

void onBeatDetected ()

{

Serial.println («Beat!»);

}

void setup ()

{

Serial.begin (115200);

Serial.print (Β«Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° ..Β»);

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ экзСмпляр PulseOximeter

// Π‘Π±ΠΎΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, связаны с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ I2C, отсутствиСм источника питания

// ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌ Ρ‡ΠΈΠΏΠΎΠΌ

if (! Pox.begin ()) {

Serial.println («ΠΠ• Π˜Π‘ΠŸΠžΠ›Π¬Π—Π£Π•Π’Π‘Π―»);

для (;;);

} else {

Serial.println («Π£Π‘ΠŸΠ•Π₯»);

}

pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA);

// РСгистрируСм ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² для обнаруТСния Π±ΠΈΠ΅Π½ΠΈΠΉ

pox.setOnBeatDetectedCallback (onBeatDetected);

}

void loop ()

{

// ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС

pox.ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ();

if (millis () — tsLastReport> REPORTING_PERIOD_MS) {

Serial.print («Π§Π°ΡΡ‚ΠΎΡ‚Π° ΠΏΡƒΠ»ΡŒΡΠ°:»);

Serial.print (pox.getHeartRate ());

Serial.print (Β«ΡƒΠ΄ / ΠΌΠΈΠ½ / SpO2:Β»);

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (pox.getSpO2 ());

Serial.println («%»);

tsLastReport = millis ();

}

}

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ значСния, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ BPM ΠΈ SpO2 отобраТаСтся ΠΊΠ°ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ вскорС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ MAX30100 SpO2 ΠΈ BPM Π½Π° Π–Πš-дисплСС

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π–Πš-дисплССм 16X2 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Ρ€ΠΎΠ² Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ ΠΈ ​​SpO2 вмСсто ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°. Π‘ΠΎΠ±Π΅Ρ€ΠΈΡ‚Π΅ схСму согласно ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ схСмС.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ Vin MAX30100 ΠΊ Arduino 5V ΠΈΠ»ΠΈ 3.ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ 3V, GND Π½Π° GND. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ I2C, SCL ΠΈ SDA MAX30100 ΠΊ A5 ΠΈ A4 Arduino. Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ 1, 5, 16 Π–Πš-дисплСя ΠΊ GND Arduino ΠΈ 2, 15 ΠΊ VCC. Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ 4, 6, 11, 12, 13, 14 Π–Πš-дисплСя ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ 13, 12, 11, 10, 9, 8 Arduino. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠΎΠΌΠ΅Ρ‚Ρ€ 10K Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ 3 Π–Πš-дисплСя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π–Πš-дисплСя.


Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ / ​​программа

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

18

19

20

21

22

23

24

25

26

27

28

29

30

000

000 34

35

36

37

38

39

40

41

42

43

44

45

46

49

0002 47

00030002 47

0003

51

52

53

54

55

56

57

58

59

60

61

62

63

9 0002 64

#include

#include

#include Β«MAX30100_PulseOximeter.hΒ»

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

#define REPORTING_PERIOD_MS 1000

ΠŸΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠ°Ρ оспа;

uint32_t tsLastReport = 0;

void onBeatDetected ()

{

Serial.println («Beat!»);

}

void setup ()

{

Serial.begin (115200);

Serial.print (Β«Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π°.. «);

lcd.begin (16,2);

lcd.print (» Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ … «);

delay (3000);

lcd.clear ();

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ PulseOximeter instance

// Π‘Π±ΠΎΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ I2C, отсутствия источника питания

// ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‡ΠΈΠΏΠ°

if (! Pox.begin ()) {

Serial.println («FAILED»);

для (;;);

} else {

Serial.println («Π£Π‘ΠŸΠ•Π₯»);

}

pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA);

// РСгистрируСм ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² для обнаруТСния Π±ΠΈΠ΅Π½ΠΈΠΉ

pox.setOnBeatDetectedCallback (onBeatDetected);

}

void loop ()

{

// ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ update ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС

pox.update ();

if (millis () — tsLastReport> REPORTING_PERIOD_MS) {

Serial.print («Π§Π°ΡΡ‚ΠΎΡ‚Π° ΠΏΡƒΠ»ΡŒΡΠ°:»);

Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ.ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (pox.getHeartRate ());

Serial.print (Β«ΡƒΠ΄ / ΠΌΠΈΠ½ / SpO2:Β»);

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (pox.getSpO2 ());

Serial.println («%»);

lcd.clear ();

lcd.setCursor (0,0);

lcd.print («BPM:»);

lcd.print (pox.getHeartRate ());

lcd.setCursor (0,1);

lcd.print (Β«SpO2:Β»);

lcd.print (pox.getSpO2 ());

Π–Πš.Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ(«%»);

tsLastReport = millis ();

}

}

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠ°Π»Π΅Ρ† ΠΊ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΡƒ MAX30100, ΠΈ Π½Π° Π–Πš-дисплСС начнСтся ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ содСрТания кислорода ΠΈ значСния ΡƒΠ΄Π°Ρ€ΠΎΠ² Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ.


MAX30100 НС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Поиск ΠΈ устранСниС нСисправностСй

Если Π²Ρ‹ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ MAX30100, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Π’ микросхСмС MAX30100 для VDD ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 1,8 Π’, ΠΈ этот ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π° рСгулятора для достиТСния этого напряТСния.

НичСго ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠ³ΠΎ Π² этом Π½Π΅Ρ‚. Однако, Ссли Π²Ρ‹ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ SCL ΠΈ SDA подтянуты Ρ‡Π΅Ρ€Π΅Π· рСзисторы 4,7 кОм Π΄ΠΎ 1,8 Π’! Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ с Π±ΠΎΠ»Π΅Π΅ высокими логичСскими уровнями.

Π•ΡΡ‚ΡŒ Π΄Π²Π° способа ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ MAX30100 Π ΠΠ‘ΠžΠ’ΠΠ’Π¬.

1-ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄

РСшСниС состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ рСзисторы с ΠΏΠ»Π°Ρ‚Ρ‹ (ΠΎΠ±Π²Π΅Π΄Π΅Π½Ρ‹ ΠΊΡ€ΡƒΠΆΠΊΠΎΠΌ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅) ΠΈ вмСсто этого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ внСшниС рСзисторы 4,7 кОм ΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ SDA, SCL ΠΈ INT.

ПослС удалСния всСх рСзисторов 4,7 кОм ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ INT, SDA, SCL ΠΊ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌΡƒ рСзистору 4,7 кОм.

2-ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄

Если Π²Π°ΠΌ Π½Π΅ нравится ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Достаточно ΠΏΡ€ΠΎΡ€Π΅Π·Π°Ρ‚ΡŒ Π΄ΠΎΡ€ΠΎΠΆΠΊΡƒ Π½Π° мСстС красного крСста ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΡƒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΆΠ΅Π»Ρ‚ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ. Для ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄. Из многоТильного ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Π»ΡƒΠΆΠ΅Π½ΡƒΡŽ ΠΏΡ€ΡΠ΄ΡŒ. ΠŸΠ»Π°Ρ‚Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚Π° Π·Π°Ρ‰ΠΈΡ‚Π½ΠΎΠΉ маской ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ замыкания Π½Π° ΠΌΠ΅Π΄Π½ΡƒΡŽ Π·Π°Π»ΠΈΠ²ΠΊΡƒ Π½Π΅Ρ‚.


ДСмонстрация Π²ΠΈΠ΄Π΅ΠΎ ΠΈ объяснСниС

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ кислорода Π² ΠΊΡ€ΠΎΠ²ΠΈ ΠΈ ΠΏΡƒΠ»ΡŒΡΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡƒΠ»ΡŒΡΠΎΠΊΡΠΈΠΌΠ΅Ρ‚Ρ€Π° MAX30100 / 02 ΠΈ Arduino

ВзаимодСйствиС OLED 128×64 I2C с Arduino Uno Β»DIY Usthad

Π’ этом руководствС ΠΌΡ‹ научимся Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Arduino UNO ΠΈ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ дисплССм OLED 128 Γ— 64 I2C.

Π’Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ

Basic: это руководство Ρ…ΠΎΡ€ΠΎΡˆΠΎ объяснСно для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

Π‘Ρ…Π΅ΠΌΠ°

Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ OLED со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ Arduino UNO, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

Ардуино UNO

ДисплСй OLED I2C

5Π²

VCC

GND

GND

SDA / A4

SDA

SCL / A5

SCL

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Π›ΠΈΠ±ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с Github ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ZIP-Ρ„Π°ΠΉΠ» Π² Arduino IDE, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ add.zip-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ прямо ΠΈΠ· Arduino IDE ΠΈΠ· Manage Libraries. Для установки Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

эскиз -> Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ -> ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ управлСния ΠΈΠ· эскиза -> Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ -> ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ

ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ adafruit ssd1306

Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ AdafruitSSD1306 ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ установки.

ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ adafruit gfx

Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ AdafruitGFX ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ установки. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установили Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Adafruit ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ adafruitSSD1306 ΠΈ протСстируСм Π½Π°ΡˆΡƒ настройку.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Π€Π°ΠΉΠ» -> ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ -> Adafruit SSD1306 -> ssd1306_128x64_i2c,

Ρ‚.ΠΊ. ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ OLED-дисплСй с интСрфСйсом I2C с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ экрана 128 Γ— 64.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ ΠΊΠΎΠ΄

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² мСню инструмСнтов -> ΠŸΠ»Π°Ρ‚Ρ‹ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Arduino UNO, Π·Π°Ρ‚Π΅ΠΌ Π² ΠŸΠΎΡ€Ρ‚ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΡ€Ρ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ Arduino.

Π’ΠΈΠ΄Π΅ΠΎ

I2C Arduino Uno Tutorial: I2C Tutorial для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… | Arrow.com

Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ схСмами, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ IΒ²C. Π‘ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° своСго появлСния Π² 1982 Π³ΠΎΠ΄Ρƒ I2C позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими ΡƒΠ·Π»Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сигналов.Π­Ρ‚Π° тСхнология, Ρ‚Π°ΠΊΠΆΠ΅ извСстная ΠΊΠ°ΠΊ IIC ΠΈΠ»ΠΈ I2C, ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ другая вСрсия, Π΄Π²ΡƒΡ…ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ интСрфСйс (TWI), всС Π΅Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСгодня, Π° с 2006 Π³ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ IΒ²C Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… тСхнологиях, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ доступными ΠΏΠ»Π°Ρ‚Π°ΠΌΠΈ Arduino .

ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ° I2C: настройка физичСской ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: Π”ΠΆΠ΅Ρ€Π΅ΠΌΠΈ Π‘. ΠšΡƒΠΊ

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с основ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ понадобится для запуска модуля IΒ²C.Π’ этом руководствС ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Arduino Uno, хотя Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Arduino ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ систСму. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Arduino Wire , Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ связан с Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ IΒ²C. НастройтС свою доску ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • SDA (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия Π΄Π°Π½Π½Ρ‹Ρ…): A4
  • SCL (ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ линия синхронизации): A5
  • Vcc: + 5 Π’ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ + 3,3 Π’ Π² зависимости ΠΎΡ‚ модуля
  • ЗСмля: ЗСмля
  • ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅: зависит ΠΎΡ‚ модуля ΠΈ программирования

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ SDA ΠΈ SCL ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Π½Π°ΠΏΡ€ΡΠΆΠ΅Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ рСзистор.ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для этой настройки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4,7 кОм, Ρ‡Ρ‚ΠΎ являСтся стандартным, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. НСкоторыС ΠΏΠ»Π°Ρ‚Ρ‹ Π΄Π°ΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнныС приспособлСния для этих рСзисторов. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π²Π°ΠΌ понадобится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ рСзистор для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ соСдинили Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

ΠœΠΎΠ΄ΡƒΠ»ΠΈ

IΒ²C содСрТат Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для своСго адрСса, Π½ΠΎ для ΠΈΡ… настройки Π²Π°ΠΌ потрСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ для ΠΏΠ°ΠΉΠΊΠΈ. Если Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² адрСсС своСго устройства, ΠΈ особСнно Ссли ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ устройство IΒ²C, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Arduino I2C Scanner , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ адрСс ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ устройства.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Arduino I2C

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: Π”ΠΆΠ΅Ρ€Π΅ΠΌΠΈ Π‘. ΠšΡƒΠΊ

ВСхнология

IΒ²C ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ; ΠΌΡ‹ продСмонстрируСм, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ IΒ²C, Π° Ρ‚Π°ΠΊΠΆΠ΅ нСбольшой OLED-дисплСй . ΠœΡ‹ использовали интСрфСйс IΒ²C ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поставляСтся Π² Π²ΠΈΠ΄Π΅ нСбольшой ΠΏΠ»Π°Ρ‚Ρ‹ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ IΒ²C. Π­Ρ‚ΠΎΡ‚ интСрфСйс Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ сам ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ.

1. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ припаяли ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ вмСстС с ΠΏΡΡ‚ΡŒΡŽ линиями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ΄Ρ‚ΠΈ ΠΊ Arduino Uno , всС ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Arduino.

2. Π­Ρ‚Π° распиновка ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π½ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ пятый ΠΏΡ€ΠΎΠ²ΠΎΠ΄, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ Β«INTΒ» для прСрывания, ΠΊ A2. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ Π½Π΅ ΠΈΠ΄Π΅Ρ‚ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ прСрывания Arduino; вмСсто этого ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мастСру Arduino ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ сигнал ΠΎΡ‚ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ модуля ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°.

3. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС соСдинСния Π±ΡƒΠ΄ΡƒΡ‚ установлСны, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠ°Ρ€Ρƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎ ΠΈ эскиз.

Π’ зависимости ΠΎΡ‚ вашСго устройства Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 127 Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Ρ‡Ρ‚ΠΎ выраТаСтся ΠΊΠ°ΠΊ ΠΎΡ‚ 0x00 Π΄ΠΎ 0x7F.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ строку для коммСнтария ΠΈΠ»ΠΈ раскоммСнтирования Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅.

Π₯отя Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ IΒ²C остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ физичСски, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ этой ΡˆΠΈΠ½Ρ‹ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сущСствуСт довольно ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° сторонС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Для поиска ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСкоторая ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠ°, Π½ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ экономия Π½Π° Π²Π²ΠΎΠ΄Π΅-Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходах процСссора ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠΊΡƒΠΏΠ°Π΅Ρ‚ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ усилия.

IΒ²C Π’Ρ‹Ρ…ΠΎΠ΄

ΠŸΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°Ρ Ρ‚Π΅ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ IΒ²C, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали здСсь, ΠΈΠΌΠ΅Π΅Ρ‚ свои собствСнныС возмоТности Π²Ρ‹Π²ΠΎΠ΄Π° — Π² основном Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ GPIO — Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ IΒ²C для получСния Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи? Один ΠΈΠ· способов Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступный OLED-дисплСй 128×16 пиксСлСй .

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ эти устройства Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ энкодСр. Однако Π² этой настройкС Π½Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° Β«ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅Β», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ являСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пассивным устройством, Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ Π½Π° сигналы ΠΎΡ‚ Arduino, Π° Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. ΠœΡ‹ использовали Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ рСзисторов ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ SCL ΠΈ SDA ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ VCC, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… рСзисторы Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ OLED-экран Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π».Π”ΠΆΠ΅Ρ€Π΅ΠΌΠΈ Π‘. ΠšΡƒΠΊ

Для запуска устройства Π²Π°ΠΌ понадобится Adafruit SSD1306, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Adafruit GFX, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Arduino IDE. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит процСсс:

1. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ssd1306_128x64_i2c, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ устройство.

2. Как ΠΈ Π² случаС с ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π½Ρ‹ΠΌ энкодСром, Π²Π°ΠΌ потрСбуСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π‘Π½Π°Ρ‡Π°Π»Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ высоты Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Adafruit_SSD1306.h Π½Π° 128×64, раскоммСнтировав Π½ΡƒΠΆΠ½ΡƒΡŽ строку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Atom.Для ΠΌΠΎΠ΅Π³ΠΎ дисплСя ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ адрСс C I 2 Π½Π° 0x3C с 0x3D, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ соотвСтствовал Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ IΒ²C. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ для этого Ρ‚ΠΈΠΏΠ° устройства, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сканСр I 2 C.

3. Π—Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΏΠ»Π°Ρ‚Ρƒ Arduino.

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

One Wire I2C: рСализация Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ€ΠΎΠ»ΠΈ

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: Π”ΠΆΠ΅Ρ€Π΅ΠΌΠΈ Π‘. ΠšΡƒΠΊ

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ обСспСчиваСт числовой Π²Π²ΠΎΠ΄, Π° OLED-экран прСдоставляСт ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π²ΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π°? ΠœΡ‹ написали Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ тСкстС, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ поворачиваСтся Ρ€ΡƒΡ‡ΠΊΠ°. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ для управлСния нСсколькими устройствами Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π΄Π²ΡƒΠΌ линиям.ΠšΠΎΠ΄Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° дисплСй Π²Ρ‹Π²ΠΎΠ΄Ρ‹ питания, зазСмлСния, SCL ΠΈ SDA, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Arduino Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ².

Если Ρƒ вас ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄, эта установка — ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. ИспользованиС этого Ρ‚ΠΈΠΏΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΡƒ, особСнно Ссли Π²Ρ‹ ΠΏΡ€ΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ нСсколько ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ. I 2 C-устройства часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… усилий для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ±Ρ€ΠΈΡ‚Π΅ яка, ΠΈΡ… ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ простой интСрфСйс ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° I 2 C с Arduino ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с аксСлСромСтром MPU-6050 .

ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° связи I2C

Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎΠ± основах связи SPI ΠΈ UART, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ послСднСму ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ этой сСрии, ΠΌΠ΅ΠΆΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ схСмС ΠΈΠ»ΠΈ I2C.

ВСроятно, Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ I2C, Ссли ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ OLED-дисплСи, Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ атмосфСрного давлСния ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ гироскопа / аксСлСромСтра.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² связь I2C

I2C сочСтаСт Π² сСбС Π»ΡƒΡ‡ΡˆΠΈΠ΅ возмоТности SPI ΠΈ UART. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ I2C Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… устройств ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ мастСру (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SPI), ΠΈ Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько мастСров, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΊΠ°Ρ€Ρ‚Ρƒ памяти ΠΈΠ»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ тСкст Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Π–Πš-дисплСС.

Как ΠΈ связь UART, I2C ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами:

SDA (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅) — линия для Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΈ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ устройства для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ получСния Π΄Π°Π½Π½Ρ‹Ρ….

SCL (Serial Clock) — Линия, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСдаСтся Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ сигнал.

I2C — это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ связи, поэтому Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π±ΠΈΡ‚ Π·Π° Π±ΠΈΡ‚ΠΎΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Ρƒ (линия SDA).

Подобно SPI, I2C являСтся синхронным, поэтому Π²Ρ‹Π²ΠΎΠ΄ Π±ΠΈΡ‚ΠΎΠ² синхронизируСтся с Π²Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ Π±ΠΈΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ сигнала, совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ ΠΈ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌ. Π’Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ сигнал всСгда контролируСтся мастСром.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ I2C

ΠŸΡ€ΠΈ использовании I2C Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² сообщСниях. БообщСния Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ Π½Π° ΠΊΠ°Π΄Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. КаТдоС сообщСниС ΠΈΠΌΠ΅Π΅Ρ‚ адрСсный Ρ„Ρ€Π΅ΠΉΠΌ, содСрТащий Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ адрСс Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ устройства, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя условия запуска ΠΈ остановки, Π±ΠΈΡ‚Ρ‹ чтСния / записи ΠΈ Π±ΠΈΡ‚Ρ‹ ACK / NACK ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…:

УсловиС запуска: Линия SDA ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ с высокого уровня напряТСния Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ линия SCL ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ с высокого Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ.

УсловиС остановки: Линия SDA ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ с Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня напряТСния Π½Π° высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ послС линия SCL ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ с Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня Π½Π° высокий.

АдрСсный ΠΊΠ°Π΄Ρ€: 7- ΠΈΠ»ΠΈ 10-битная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ устройства, которая ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство, ΠΊΠΎΠ³Π΄Π° Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство Ρ…ΠΎΡ‡Π΅Ρ‚ с Π½ΠΈΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ.

Π‘ΠΈΡ‚ чтСния / записи: Один Π±ΠΈΡ‚, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ, отправляСт Π»ΠΈ Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство Π΄Π°Π½Π½Ρ‹Π΅ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ (Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния) ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ (высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния).

Π‘ΠΈΡ‚ ACK / NACK: Π—Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠ°Π΄Ρ€ΠΎΠΌ Π² сообщСнии слСдуСт Π±ΠΈΡ‚ подтвСрТдСния / отсутствия подтвСрТдСния. Если адрСсный ΠΊΠ°Π΄Ρ€ ΠΈΠ»ΠΈ ΠΊΠ°Π΄Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹, ΠΎΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ устройства ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŽ возвращаСтся Π±ΠΈΡ‚ ACK.

АдрСс

I2C Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ строк Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ устройства, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ SPI, поэтому Π΅ΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΅ΠΌΡƒ, Π° Π½Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠΌΡƒ устройству. Он Π΄Π΅Π»Π°Π΅Ρ‚ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ адрСса ΠΏΠΎ адрСсу . АдрСсный ΠΊΠ°Π΄Ρ€ всСгда являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΊΠ°Π΄Ρ€ΠΎΠΌ послС стартового Π±ΠΈΡ‚Π° Π² Π½ΠΎΠ²ΠΎΠΌ сообщСнии.

ΠœΠ°ΡΡ‚Π΅Ρ€ отправляСт адрСс ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ устройства, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠΌΡƒ устройству, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΊ Π½Π΅ΠΌΡƒ. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство сравниваСт адрСс, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ, со своим собствСнным адрСсом. Если адрСс совпадаСт, ΠΎΠ½ отправляСт Π±ΠΈΡ‚ ACK Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ напряТСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ мастСру. Если адрСс Π½Π΅ совпадаСт, Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΈ линия SDA остаСтся Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅.

Π‘ΠΈΡ‚ чтСния / записи

АдрСсный ΠΊΠ°Π΄Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя СдинствСнный Π±ΠΈΡ‚ Π² ΠΊΠΎΠ½Ρ†Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщаСт Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ устройству, Ρ…ΠΎΡ‡Π΅Ρ‚ Π»ΠΈ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ.Если Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ, Π±ΠΈΡ‚ чтСния / записи ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния. Если Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ, Π±ΠΈΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ напряТСния.

Π€Ρ€Π΅ΠΉΠΌ Π΄Π°Π½Π½Ρ‹Ρ…

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΈΡ‚ ACK ΠΎΡ‚ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π³ΠΎΡ‚ΠΎΠ² ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅.

ΠšΠ°Π΄Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… всСгда ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ 8 Π±ΠΈΡ‚ ΠΈ отправляСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ со ΡΡ‚Π°Ρ€ΡˆΠΈΠΌ Π±ΠΈΡ‚ΠΎΠΌ. Π—Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… сразу ΠΆΠ΅ слСдуСт Π±ΠΈΡ‚ ACK / NACK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ„Ρ€Π΅ΠΉΠΌ Π±Ρ‹Π» принят ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.Π‘ΠΈΡ‚ ACK Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Π»ΠΈΠ±ΠΎ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ, Π»ΠΈΠ±ΠΎ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌ (Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ отправляСт Π΄Π°Π½Π½Ρ‹Π΅), ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ°Π΄Ρ€ Π΄Π°Π½Π½Ρ‹Ρ….

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС ΠΊΠ°Π΄Ρ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹, Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ устройству условиС остановки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ. УсловиС останова — это ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ напряТСния ΠΎΡ‚ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊ высокому Π½Π° Π»ΠΈΠ½ΠΈΠΈ SDA послС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊ высокому ΡƒΡ€ΠΎΠ²Π½ΡŽ Π½Π° Π»ΠΈΠ½ΠΈΠΈ SCL, ΠΏΡ€ΠΈ этом линия SCL остаСтся Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅.

Π­Ρ‚Π°ΠΏΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… I2C

1. Π’Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство отправляСт условиС запуска ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌΡƒ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ устройству, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ линию SDA с высокого уровня напряТСния Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ линию SCL с высокого Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ:

2.ΠœΠ°ΡΡ‚Π΅Ρ€ отправляСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠΌΡƒ 7- ΠΈΠ»ΠΈ 10-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ устройства, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ, вмСстС с Π±ΠΈΡ‚ΠΎΠΌ чтСния / записи:

3. КаТдоС Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство сравниваСт адрСс, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ, со своим собствСнным адрСсом. Если адрСс совпадаСт, Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΠΈΡ‚ ACK, подтягивая линию SDA ΠΊ Π½ΠΈΠ·ΠΊΠΎΠΌΡƒ ΡƒΡ€ΠΎΠ²Π½ΡŽ Π½Π° ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚. Если адрСс ΠΎΡ‚ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ устройства Π½Π΅ совпадаСт с собствСнным адрСсом Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ, Π²Π΅Π΄ΠΎΠΌΡ‹ΠΉ оставляСт линию SDA Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅.

4. ΠœΠ°ΡΡ‚Π΅Ρ€ отправляСт ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ„Ρ€Π΅ΠΉΠΌ Π΄Π°Π½Π½Ρ‹Ρ…:

5.ПослС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π΅ устройство Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŽ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ ACK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Π΄Ρ€Π°:

6. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ устройство отправляСт условиС остановки Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡƒ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ SCL Π½Π° высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π° высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ SDA:

Один мастСр с нСсколькими ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ I2C ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ, нСсколько Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… устройств ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ устройства. ΠŸΡ€ΠΈ 7-Π±ΠΈΡ‚Π½ΠΎΠΌ адрСсС доступСн 128 (2 7 ) ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ адрСс.ИспользованиС 10-Π±ΠΈΡ‚Π½Ρ‹Ρ… адрСсов встрСчаСтся Ρ€Π΅Π΄ΠΊΠΎ, Π½ΠΎ обСспСчиваСт 1024 (2 10 ) ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… адрСса. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… устройств ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ мастСру, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΡ… Ρ‚Π°ΠΊ: ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы 4,7 кОм ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ Π»ΠΈΠ½ΠΈΠΈ SDA ΠΈ SCL с Vcc:

.

НСсколько мастСров с нСсколькими ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ

НСсколько мастСров ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ нСскольким ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с нСсколькими мастСрами Π² ΠΎΠ΄Π½ΠΎΠΉ систСмС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° мастСра ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ SDA.Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ мастСру Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, высокий ΠΈΠ»ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π»ΠΈΠ½ΠΈΠΈ SDA ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ сообщСния. Если Π½Π° Π»ΠΈΠ½ΠΈΠΈ SDA Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΡˆΠΈΠ½Ρƒ, ΠΈ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния. Если линия SDA высокий, Ρ‚ΠΎ сообщСниС бСзопасно. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько мастСров ΠΊ нСскольким ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ схСму с ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ рСзисторами 4,7 кОм, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΌΠΈ Π»ΠΈΠ½ΠΈΠΈ SDA ΠΈ SCL с Vcc:

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ нСдостатки I2C

Π’ I2C Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ слоТным ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько вСских ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ Π½Π΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ I2C для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ устройству:

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько мастСров ΠΈ нСсколько Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… устройств
  • Π‘ΠΈΡ‚ ACK / NACK ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π½Π΅Π΅ слоТноС, Ρ‡Π΅ΠΌ с UART
  • Π₯ΠΎΡ€ΠΎΡˆΠΎ извСстный ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»

НСдостатки

  • Π‘ΠΎΠ»Π΅Π΅ мСдлСнная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Π΅ΠΌ Ρƒ SPI
  • Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Π΄Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ 8 Π±ΠΈΡ‚Π°ΠΌΠΈ
  • Π‘ΠΎΠ»Π΅Π΅ слоТноС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Π΅ΠΌ SPI

Бпасибо Π·Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅! НадСюсь, Π²Ρ‹ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΡƒΠ·Π½Π°Π»ΠΈ ΠΈΠ· этой сСрии статСй ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ… элСктронной связи.

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

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