ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° U8glib.h β ΡΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π½ΡΠΌΠΈ Π΄ΠΈΡΠΏΠ»Π΅ΡΠΌΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ
Arduino, AVR ΠΈ STM32. ΠΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ 300 ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΠΊΡΠ°Π½ΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ OLED (SSD1306, SH1106), LCD (HD44780, KS0108) ΠΈ TFT, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Ρ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° GitHub Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ, Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ Π½Π°ΠΉΠ΄ΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΊΠ°ΡΠ°ΡΡ U8glib.h (Π²ΠΊΠ»ΡΡΠ°Ρ Π°ΡΡ
ΠΈΠ²Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ), ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π² Arduino IDE ΠΈ PlatformIO, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΈΡΠ½ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΡΠΎΠ΄Π΅ #error "U8glib: No display definition found". ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌ, ΡΠ΅ΠΌ U8glib ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π΅Ρ ΠΏΡΠ΅Π΅ΠΌΠ½ΠΈΠΊΠ° β U8g2, ΠΈ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΡΡΠΎΡ Π³Π°ΠΉΠ΄ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΡΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ U8glib.h
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° U8glib ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»Π°ΡΡ Oliver Kraus ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π»Π°ΡΡ Π½Π° GitHub. ΠΠ΄Π½Π°ΠΊΠΎ Ρ 2017 Π³ΠΎΠ΄Π° ΠΏΡΠΎΠ΅ΠΊΡ Π·Π°ΠΌΠΎΡΠΎΠΆΠ΅Π½, Π° Π²ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ Π½Π° U8g2 β Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, U8glib.h Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π° ΠΈΠ·-Π·Π° ΠΏΡΠΎΡΡΠΎΡΡ API ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΠ΄Π΅ ΠΈΡΠΊΠ°ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ:
- π¦ ΠΡΡ
ΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ GitHub: ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ (1.19.1) Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎ ΠΏΡΡΠΌΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅. Π‘ΠΊΠ°ΡΠΈΠ²Π°ΠΉΡΠ΅ ZIP-Π°ΡΡ
ΠΈΠ² ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡΠ΅ ΡΠ΅ΡΠ΅Π·
Sketch β Include Library β Add .ZIP Library. - π Fork-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ: ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ½ΡΡΠ·ΠΈΠ°ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΡΠΈ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ
Π΄ΠΈΡΠΏΠ»Π΅Π΅Π². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π΅ΡΡΠΈΡ ΠΎΡ adafruit Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ
SSD1327β ΡΡΡΠ»ΠΊΠ°. - πΎ Arduino Library Manager: ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π² ΠΏΠΎΠΈΡΠΊΠ΅
U8glibβ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΌ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° (Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ Π΄Π°ΡΡ Π²ΡΠΏΡΡΠΊΠ°!). - π Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Ρ ΠΎΡΡΠΈΠ½Π³ΠΈ: ΠΠ° ΡΠ°ΠΉΡΠ°Ρ Π²ΡΠΎΠ΄Π΅ Arduino Libraries ΠΈΠ»ΠΈ PlatformIO Registry ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π·Π΅ΡΠΊΠ°Π»Π°, Π½ΠΎ ΡΠΈΡΠΊ Π½Π°ΡΠ²Π°ΡΡΡΡ Π½Π° Π²ΠΈΡΡΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π²ΡΡΠ΅.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ΅ ΡΠΊΠ°ΡΠΈΠ²Π°ΠΉΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Ρ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
ΡΠΎΡΡΠΌΠΎΠ² ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊΠΎΠ²! Π Π°ΡΡ
ΠΈΠ²Π°Ρ
ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΡΡΡΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΠΏΠ° U8glib_full_pro_v2.7z. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°.
- ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ GitHub
- Arduino IDE (Library Manager)
- PlatformIO
- Π€ΠΎΡΡΠΌΡ/ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°
- ΠΡΡΠ³ΠΎΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° U8glib.h Π² Arduino IDE ΠΈ PlatformIO
ΠΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΈΠΆΠ΅ β ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ»Ρ Arduino IDE (Π²Π΅ΡΡΠΈΠΈ 1.8.x ΠΈ 2.x):
- Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ZIP-Π°ΡΡ ΠΈΠ² Ρ GitHub.
- ΠΡΠΊΡΠΎΠΉΡΠ΅ Arduino IDE ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π²
Sketch β Include Library β Add .ZIP Library. - ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΊΠ°ΡΠ°Π½Π½ΡΠΉ Π°ΡΡ
ΠΈΠ². ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΡΠ²ΠΈΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅
Sketch β Include Library. - ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π΅Ρ Π² ΠΊΠΎΠ΄Π΅:
#include <U8glib.h>
ΠΠ»Ρ PlatformIO:
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ»
platformio.iniΠ²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. - ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡΠΎΠΊΡ:
lib_deps =https://github.com/olikraus/U8glib_Arduino/archive/refs/heads/master.zip
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ Π΄ΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΠ°Π³ΡΡΠ·ΠΈΠ»ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ HelloWorld ΠΈΠ· File β Examples β U8glib|
ΠΠ΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠΈΠΏΠ° fatal error: U8glib.h: No such file or directory|
Π ΠΏΠ°ΠΏΠΊΠ΅ <ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ>/Arduino/libraries ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ U8glib|
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Sketch β Include Library-->
ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ #error "U8glib: No display definition found", Π·Π½Π°ΡΠΈΡ, Π²Ρ Π½Π΅ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΈΡΠΏΠ»Π΅Ρ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ SSD1306 Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ U8glib.h Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° U8glib ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»Π°ΡΡ Π΄Π»Ρ AVR (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ATmega328P Π² Arduino Uno), Π½ΠΎ Ρ ΠΎΠ³ΠΎΠ²ΠΎΡΠΊΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ . ΠΠΈΠΆΠ΅ β ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΠΠ:
| ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ | ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° | ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ | Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ |
|---|---|---|---|
| AVR (Uno, Nano, Mega) | β ΠΠΎΠ»Π½Π°Ρ | ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ (ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Ρ Π²Π°ΡΠΈΡΡ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ) | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ U8G_PAGE_BUFFER Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ RAM |
| ESP8266/ESP32 | β οΈ Π§Π°ΡΡΠΈΡΠ½Π°Ρ | ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ°ΠΉΠΌΠΈΠ½Π³Π°ΠΌΠΈ I2C, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅ | ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ U8G_I2C_OPT_FAST ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΠ΅ Π½Π° U8g2 |
| STM32 (Blue Pill, Nucleo) | β Π‘ ΠΏΠ°ΡΡΠ°ΠΌΠΈ | Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ½Π°Ρ ΠΏΡΠ°Π²ΠΊΠ° utility/u8g_com_stm32duino_hw_i2c.cpp |
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ STM32duino Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ |
| Raspberry Pi Pico (RP2040) | β ΠΠ΅Ρ | ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ I2C/SPI | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Pico-Graphics ΠΈΠ»ΠΈ U8g2 Ρ ΡΠΌΡΠ»ΡΡΠΈΠ΅ΠΉ |
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π΄Π»Ρ ESP32: ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ U8glib.h Ρ Π΄ΠΈΡΠΏΠ»Π΅ΡΠΌΠΈ Π½Π° ΡΠΈΠ½Π΅ I2C ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠΈΠ½Ρ SDA/SCL Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, ΠΈΠ½Π°ΡΠ΅ ΡΠΊΡΠ°Π½ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΈΠΌΠ΅Ρ:
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0, 21, 22); // SDA=21, SCL=22
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΡΠΊΠ΅ΡΡ ΡΡΠΈΡΡ u8g_font_cyrillic ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ UTF-8 Π² IDE. ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π°: u8g.drawStr(0, 10, "ΠΡΠΈΠ²Π΅Ρ!");
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ U8glib.h: Π±ΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ API Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ ΠΈ ΡΠ΅ΠΊΡΡΠΎΠΌ. ΠΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ Π² 90% ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²:
- π ΠΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ°:
u8g.setFont(u8g_font_unifont); // Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈΡΡu8g.drawStr(0, 10, "Hello, U8glib!"); // ΠΡΠ²Π΅ΡΡΠΈ ΡΡΡΠΎΠΊΡ
- π¨ Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ²:
u8g.drawFrame(0, 0, 64, 32); // ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊu8g.drawCircle(32, 16, 10); // ΠΠΊΡΡΠΆΠ½ΠΎΡΡΡ
- π ΠΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΡΠΊΡΠ°Π½Π°:
u8g.firstPage();do {
// ΠΠ°Ρ ΠΊΠΎΠ΄ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
} while(u8g.nextPage());
- π ΠΡΠΈΡΡΠΊΠ° ΡΠΊΡΠ°Π½Π°:
u8g.clearBuffer(); // ΠΠ»Ρ Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π²u8g.clearDisplay(); // ΠΠ»Ρ Π½Π΅Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π²ΠΈΠΊΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ u8g_font_6x10 Π²ΠΌΠ΅ΡΡΠΎ u8g_font_unifont β ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π² 5 ΡΠ°Π· ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ°.
ΠΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ Π³ΡΠ°ΡΠΈΠΊΠΈ?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ U8G_I2C_OPT_FAST ΠΈΠ»ΠΈ U8G_I2C_OPT_NO_ACK Π΄Π»Ρ I2C-Π΄ΠΈΡΠΏΠ»Π΅Π΅Π², Π½ΠΎ Π±ΡΠ΄ΡΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠ°ΠΌ. ΠΠ»Ρ SPI-Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² ΡΠ²Π΅Π»ΠΈΡΡΡΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠΎΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅: U8GLIB_ST7920_128X64 u8g(13, 11, 10, U8G_COM_SPI_HW_FAST);
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ U8glib.h ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ. ΠΠΎΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ:
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ avr/gcc: internal compiler error ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄Π»Ρ AVR, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΊΠ΅ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ. Π£ΠΌΠ΅Π½ΡΡΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Arduino Mega (Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ).
| ΠΡΠΈΠ±ΠΊΠ° | ΠΡΠΈΡΠΈΠ½Π° | Π Π΅ΡΠ΅Π½ΠΈΠ΅ |
|---|---|---|
#error "U8glib: No display definition found" |
ΠΠ΅ ΡΠΊΠ°Π·Π°Π½ ΡΠΈΠΏ Π΄ΠΈΡΠΏΠ»Π΅Ρ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ | ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡΠΎΠΊΡ Π²ΠΈΠ΄Π° U8GLIB_SSD1306_128X64 u8g(...); |
undefined reference to `u8g_ll_HW_I2C_fn' |
ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° I2C Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΠΌΡΠ»ΡΡΠΈΡ: U8G_I2C_OPT_NO_ACK |
| ΠΠΊΡΠ°Π½ Π½Π΅ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ (Π±Π΅Π»ΡΠΉ/ΡΡΡΠ½ΡΠΉ) | ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΠΈΠ½Ρ ΠΈΠ»ΠΈ Π°Π΄ΡΠ΅Ρ I2C | ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π΄ΡΠ΅Ρ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΡΠΊΠ°Π½Π΅ΡΠΎΠΌ I2CScanner |
Section `.bss' will not fit in region `ram' |
ΠΠ΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ | Π£ΠΌΠ΅Π½ΡΡΠΈΡΠ΅ Π±ΡΡΠ΅Ρ ΡΠΊΡΠ°Π½Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ U8G_PAGE_BUFFER |
ΠΡΠ»ΠΈ Π²Π°Ρ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ SSD1306 ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠ΅ΡΠΎΠ³Π»ΠΈΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ°, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π°Π΄ΡΠ΅Ρ I2C:
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0, 0x3C); // 0x3C ΠΈΠ»ΠΈ 0x3D
U8glib vs U8g2: ΡΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°?
Π‘ 2017 Π³ΠΎΠ΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ U8glib ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° U8g2 β Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π½ΠΎΠ²ΡΡ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ U8glib.h Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π°ΠΊΡΡΠ°Π»ΡΠ½Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ :
- π Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ: ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° U8glib, ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° U8g2 ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΎΠΊ API.
- π ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ: U8g2 ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ·-Π·Π° ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ²Π΅ΡΠ½ΡΡ TFT).
- π οΈ ΠΡΠΎΡΡΠΎΡΠ° API: Π U8glib ΠΏΡΠΎΡΠ΅ ΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ Π½Π° U8g2, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ:
- π ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΡΡ
Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
SSD1322,IL3820). - π¨ Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π³ΡΠ°ΡΠΈΠΊΠ° (Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ, Π°Π½ΡΠΈΠ°Π»ΠΈΠ°ΡΠΈΠ½Π³).
- π± ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ESP32 ΠΈ STM32.
ΠΠ»Ρ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ U8g2, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠΎ ΡΡΠ°ΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ β ΠΎΡΡΠ°Π²Π°ΠΉΡΠ΅ΡΡ Π½Π° U8glib.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ U8glib.h Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ
ΠΡΠ»ΠΈ U8glib Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ:
| ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° | ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ | ΠΡΡΡΠ΅ Π΄Π»Ρ... |
|---|---|---|---|
| U8g2 | ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΡΡ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π², ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ESP32 | Π‘Π»ΠΎΠΆΠ½Π΅Π΅ API, Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ | Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ TFT/OLED |
| Adafruit GFX | ΠΡΠΎΡΡΠΎΠΉ API, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ "ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ" | ΠΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ U8glib Π½Π° AVR | ΠΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² |
| TFT_eSPI | ΠΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π΄Π»Ρ SPI-Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² | Π’ΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ TFT, ΡΠ»ΠΎΠΆΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° | ΠΠ³Ρ ΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π½Π° ΡΠ²Π΅ΡΠ½ΡΡ ΡΠΊΡΠ°Π½Π°Ρ |
| LiquidCrystal | ΠΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½Π°, ΠΈΠ΄Π΅Π°Π»ΡΠ½Π° Π΄Π»Ρ HD44780 | Π’ΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π½ΡΠ΅ LCD | ΠΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² 16x2 |
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ Π±Π΅Π· ΡΠ°Π½ΡΠ΅Π² Ρ Π±ΡΠ±Π½ΠΎΠΌ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Adafruit_Russian β Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΡ Π½Π°Π΄ Adafruit GFX, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΡΡΠΊΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ.
FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ U8glib.h
πΉ ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ Π°Π΄ΡΠ΅Ρ I2C ΠΌΠΎΠ΅Π³ΠΎ OLED-Π΄ΠΈΡΠΏΠ»Π΅Ρ?
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠΊΠ΅ΡΡ I2CScanner β ΠΎΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° ΡΠΈΠ½Π΅. ΠΠ»Ρ SSD1306 ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°: 0x3C ΠΈΠ»ΠΈ 0x3D.
πΉ ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ U8glib.h Π½Π° Arduino Due?
ΠΠ°, Π½ΠΎ Ρ ΠΎΠ³ΠΎΠ²ΠΎΡΠΊΠ°ΠΌΠΈ: Arduino Due (ARM Cortex-M3) ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ, Π½ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ°ΠΉΠΌΠΈΠ½Π³Π°ΠΌΠΈ I2C. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ U8G_I2C_OPT_FAST ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
πΉ ΠΠΎΡΠ΅ΠΌΡ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΌΠ΅ΡΡΠ°Π΅Ρ?
ΠΡΠΎ ΡΠΈΠΏΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
- ΠΡΠΊΠ»ΡΡΠΈΡΡ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ:
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_BUFFER); - Π£ΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°ΡΡΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°.
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΏΠΈΡΠ°Π½ΠΈΡ (Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡ 100nF ΡΡΠ΄ΠΎΠΌ Ρ Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ).
πΉ ΠΠ΄Π΅ Π½Π°ΠΉΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌ Π΄ΠΈΡΠΏΠ»Π΅ΡΠΌ?
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΡΠ°ΡΠ΅Π»Π°, Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ:
- Π Π²ΠΈΠΊΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
- Π ΡΠ°ΠΉΠ»Π΅
U8glib.hβ ΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π²ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ (ΠΈΡΠΈΡΠ΅ ΡΡΡΠΎΠΊΠΈU8GLIB_*). - ΠΠ° ΡΠΎΡΡΠΌΠ°Ρ Arduino.cc ΠΈ EEVblog (ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ).
πΉ ΠΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ Π³ΡΠ°ΡΠΈΠΊΠΈ Π½Π° ESP32?
ΠΠ»Ρ ESP32:
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
U8G_I2C_OPT_FAST. - ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌΡ I2C (ΠΏΠΈΠ½Ρ
GPIO21/SDAΠΈGPIO22/SCL). - Π£Π²Π΅Π»ΠΈΡΡΡΠ΅ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠΎΡΡ I2C Π΄ΠΎ 800 ΠΊΠΡ (Π²
Wire.begin()).
ΠΡΠ»ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ ΠΎΡΡΠ°ΡΡΡΡ β Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅ 400 ΠΊΠΡ.