Агуулгын хүснэгт:

OLED I2C дэлгэц Arduino/NodeMCU заавар: 15 алхам
OLED I2C дэлгэц Arduino/NodeMCU заавар: 15 алхам

Видео: OLED I2C дэлгэц Arduino/NodeMCU заавар: 15 алхам

Видео: OLED I2C дэлгэц Arduino/NodeMCU заавар: 15 алхам
Видео: Display WiFi Access Points on LCD with ESP8266 signal strength as percentage 2024, Долдугаар сарын
Anonim
Image
Image

Та сурч эхэлмэгц бичиж буй хамгийн анхны програм a

програмчлалын шинэ хэл нь: "Сайн уу Дэлхий!".

Хөтөлбөр нь өөрөө "Hello World" текстийг дэлгэц дээр хэвлэхээс өөр юу ч хийдэггүй.

Тэгэхээр, бид Arduino -гоо "Сайн уу Дэлхий!"

Энэ видеон дээр би жижиг 0.91 (128x32) ба 0.96 (128x64) I2C OLED дэлгэцийг хэрхэн эхлүүлэх талаар танд үзүүлэх болно.

Вэб дээр нэг зүйлийг өөр өөрөөр тайлбарласан 100 гаруй заавар байдаг боловч би OLED дэлгэцийн талаар болон өөр өөр хувилбаруудад хэрхэн ашиглах талаар бүгдийг нь хэлж өгсөн нэгийг ч олж чадаагүй. Энэ бүхнийг шийдэхийн тулд хэсэг хугацаа зарцуулсан. Тиймээс би сурч мэдсэн зүйлийнхээ талаар зааварчилгаа гаргаж, OLED дэлгэцийг манай төсөлд ашиглах бүх боломж, арга замыг нэгтгэх хэрэгтэй гэж бодлоо.

Алхам 1: Өнөөдөр бидний сурах гэж буй зүйлүүд

Тоног төхөөрөмжийн шаардлага
Тоног төхөөрөмжийн шаардлага

Энэ видеон дээр бид дараахь зүйлийг ярих болно.

- OLED дэлгэц гэж юу вэ?

- Дараа нь бид 0.91 (128x32) ба 0.96 (128x64) I2C OLED дэлгэцүүдийг нарийвчлан судлах болно.

- Дараа нь бид Adafruit номын санг Arduino IDE дээрээ суулгах талаар ярилцах болно

- Дараа нь бид NodeMCU болон Arduino -ийг OLED дэлгэцтэй холбох болно

- Дараа нь бид кодыг харж, дээр нь график, текстийг харуулах болно

- Мөн бид захиалгат фонт ашиглах, зураг харуулах талаар ярих болно

- Дараа нь бид I2C Multiplexer ашиглан олон OLED-ийг микро хянагчтай холбох болно

- Эцэст нь бид OLED дэлгэцийг ашиглах явцад хүмүүсийн гаргадаг цөөн хэдэн алдааны талаар ярих болно

Алхам 2: Тоног төхөөрөмжийн шаардлага

Энэхүү гарын авлагын хувьд бидэнд хэрэгтэй болно:

- Талхны самбар

- 0.91 "(128x32) ба 0.96" (128x64) I2C OLED дэлгэц

- Arduino UNO/NANO (хэрэгтэй бүх зүйл)

- NodeMCU

- TCA9548A I2C мультиплексор

- Цөөн тооны холбох кабель

- кодыг оруулах USB кабель

Алхам 3: OLED дэлгэц гэж юу вэ?

OLED дэлгэц гэж юу вэ?
OLED дэлгэц гэж юу вэ?
OLED дэлгэц гэж юу вэ?
OLED дэлгэц гэж юу вэ?

OLED буюу органик гэрэл ялгаруулдаг диод нь гэрэл ялгаруулдаг

диод (LED), үүнд цахилгаан ялгаруулагч давхарга нь цахилгаан гүйдлийн хариуд гэрэл ялгаруулдаг органик нэгдлүүдийн хальс (хэдэн сая жижиг LED гэрэл) юм.

OLED-ийг телевизийн дэлгэц, компьютерийн дэлгэц, гар утас, гар тоглоомын консол, PDA гэх мэт зөөврийн систем гэх мэт төхөөрөмжид дижитал дэлгэц үүсгэхэд ашигладаг. OLED дэлгэц нь арын гэрэлгүй ажилладаг тул харагдахуйц гэрэл ялгаруулдаг.

Алхам 4:

Зураг
Зураг

Олон төрлийн OLED дэлгэцүүд байдаг

тэдний дээр суурилсан зах зээл

- Хэмжээ

- Өнгө

- Брэндүүд

- Протокол

- SPI (Цуваа захын интерфэйс) эсвэл I2C

Идэвхгүй матриц (PMOLED) эсвэл идэвхтэй матрицын (AMOLED) хяналтын схем

Энэ гарын авлагад би холболтын талаар ярих болно

цэнхэр өнгө 0.91 (128x32 OLED) ба 0.96 (128x64 OLED) I2C OLDE нь Arduino NANO болон NodeMCU -д харагдана. I2C автобусны технологи нь зөвхөн 2 зүү MCU ашигладаг тул бусад мэдрэгчийг ашиглах боломжтой овоолго бий.

Алхам 5: Ойрхон харах

Илүү ойрхон харах
Илүү ойрхон харах
Илүү ойрхон харах
Илүү ойрхон харах
Илүү ойрхон харах
Илүү ойрхон харах

Эдгээр хоёр дэлгэцийг илүү ойртуулцгаая.

Эдгээр дэлгэцийн ар талд самбар дээр гагнасан SMD конденсатор ба резистор овоолсон байна; гэхдээ I2C төхөөрөмж учраас бид зөвхөн эдгээр 2 зүүг (SCL ба SDA) анхаарч үздэг.

Дэлгэц нь Arduino -той зөвхөн дөрвөн утас ашиглан холбогддог - хоёр нь тэжээлийн хувьд (VCC ба GND), хоёр нь өгөгдөлд (SCL ба цуваа цаг)

Цуваа өгөгдөл SDA), утсыг маш энгийн болгодог. Мэдээллийн холболтыг I2C (I²C, IIC эсвэл Интертеграл схем) бөгөөд энэ интерфейсийг TWI (Хоёр утастай интерфейс) гэж нэрлэдэг.

- Самбар дээрх тээглүүрүүд өөр өөр дарааллаар байж болох тул төсөлдөө холбохоосоо өмнө үргэлж гурвалжинг шалгаж үзээрэй.

- Ажиллах хүчдэл нь 3 -аас 5 в -ийн хооронд байдаг боловч үйлдвэрлэгчийн өгөгдлийн хүснэгтийн зааврыг ашиглах нь дээр.

- Заримдаа бид төсөл дээрээ 2 дэлгэц ашиглах шаардлагатай болдог. Тэгвэл бид үүнд хэрхэн хүрэх вэ?

Заль мэх нь таны дэлгэц дээр тохируулж болох хаягтай байх явдал юм. Энэ төхөөрөмж нь 0x78 ба 0x7A хооронд тохируулагдах хаягтай. 0Ohm резисторыг нэг талаас нь салгаж, нөгөө тал руу нь залгах эсвэл дэлхийн гагнуур тавих замаар бид хаягаа өөрчилж болно. Энэ гарын авлагын сүүлчийн хэсэгт олон дэлгэцийг Arduino -д холбоход бид энэ талаар нарийвчлан ярих болно.

Зураг дээр эдгээр дэлгэцүүд маш том харагдаж байна. Гэсэн хэдий ч тэд бараг жижигхэн байдаг. Эдгээр нь 128 x 32/64 бие даасан OLED пикселээр хийгдсэн бөгөөд арын гэрэл шаарддаггүй. Үүнийг хараад хэр жижиг болохыг нь хараарай. Жижиг хэмжээтэй ч гэсэн аливаа электрон төсөлд маш их хэрэгтэй байдаг.

Алхам 6: Номын сан

Номын сан
Номын сан
Номын сан
Номын сан
Номын сан
Номын сан

Эдгээрийг хянах хэд хэдэн номын сан байдаг

харуулдаг. Өмнө нь би "u8glib номын сан" -г ашиглаж байсан боловч AdaFruit номын санг манай төслүүдэд ойлгоход маш хялбар санагддаг. Тиймээс, би энэ хичээлд AdaFruit номын санг ашиглах гэж байна.

OLED дэлгэцийг хянахын тулд танд "adafruit_GFX.h" номын сан болон "adafruit_SSD1306.h" номын сан хэрэгтэй болно.

Та номын санг Arduino IDE дээрээ татаж авах, суулгах хоёр арга бий.

Арга 1

"Номын сангийн менежер" рүү очоод "adafruit_SSD1306", "adafruit_gfx" гэж хайна уу.

Хамгийн сүүлийн хувилбарыг сонгоод суулгах товчийг дарна уу.

Суулгасны дараа та эдгээр номын санг програмдаа ашиглаж болно.

Арга 2

Эдгээр хоёр номын санг github -аас татаж авах боломжтой (танд хоёулаа хэрэгтэй болно):

Би доорх тайлбар дээрх линкүүдийг өгөх болно.

Дэлгэцийн номын сан:

GFX номын сан:

Татаж авсны дараа Adafruit_SSD1306-master фолдерыг татаж авсан зип файлаас Arduino номын сангийн хавтсанд хуулж ав. Энэ фолдерыг ихэвчлэн Windows систем дээрх Documents> Arduino> номын сангаас олдог. Линукс дээр ихэвчлэн гэрийн хавтас> Arduino> номын сангаас олддог. Эцэст нь Arduino номын сангийн фолдерт Adafruit_SSD1306-master хавтасны нэрийг Adafruit_SSD1306 болгон өөрчилнө үү. Нэрийг нь өөрчлөхгүй байсан ч гэсэн зүгээр юм.

Алхам 7:

Зураг
Зураг

Одоо "Adafruit_SSD1306.h" -ийг харцгаая.

файл

Энэ номын санд бидний мэдэх ёстой хоёр зүйл байна.

1. Хэрэв та жижиг дэлгэц ашиглахыг хүсвэл анхдагч 128_32 -ийг ашиглаарай, эс бөгөөс том дэлгэцийн хувьд 128_32 гэж бичээд 128_64 -ийг тайлна уу.

2. Хэрэв та 0x7A хаягийг самбар дээр гагнасан бол (энэ тухай дараа нь ярих болно) том дэлгэцийн хувьд 7 битийн 0x3D хаягийг ашиглана уу, эс бөгөөс үндсэн 0x3C хаягийг ашиглана уу. Жижиг дэлгэцийн хувьд хаяг нь 0x3C байна.

Алхам 8: 128 X 64/32 OLED -ийг холбох

128 X 64/32 OLED утас холбох
128 X 64/32 OLED утас холбох

NodeMCU -ийг дэлгэц рүү холбож эхэлье.

Анхаарах ёстой хамгийн эхний зүйл бол зарим дэлгэц дээр GND ба VCC тэжээлийн тээглүүр солигдсон байж магадгүй юм. Дэлгэцийг зурагтай ижил эсэхийг шалгаарай. Хэрэв тээглүүр солигдсон бол Arduino эсвэл NodeMCU -тай холбогдох холболтоо өөрчилсөн эсэхээ шалгаарай.

- NodeMCU OLED утас

OLED VCC - NodeMCU 3.3V

OLED GND - NodeMCU GND

OLED SCL - NodeMCU D1

OLED SDA - NodeMCU D2

- Arduino Uno OLED утас

OLED VCC - Arduino 5V

OLED GND - Arduino GND

OLED SCL - Arduino Uno A5

OLED SDA - Arduino Uno A4

- Arduino MEGA 2560 OLED утас

OLED VCC - Arduino 5V

OLED GND - Arduino GND

OLED SCL - Arduino MEGA 2560 зүү 21

OLED SDA - Arduino MEGA 2560 зүү 20

Алхам 9: Код

Код
Код
Код
Код
Код
Код
Код
Код

Adafruit номын сан нь хоёуланд нь сайн үлгэр жишээ үзүүлдэг

128x32 ба 128x64 дэлгэцтэй.

Номын сан нь Файл> Жишээ> Adafruit SSD1306> хэсэгт байрладаг бөгөөд дараа нь Arduino IDE дээрх дэлгэцийн төрөлд байрладаг.

Бид 128x32 I2C жишээг ашиглах гэж байгаа бөгөөд үүнийг 128x64 ба 128x32 дэлгэцийн аль алинд нь Arduino, дараа нь NodeMCU самбарт холбох замаар өөрчлөх болно.

Код нь Adafruit номын санг хоёуланг нь оруулснаар эхэлдэг. Энэхүү гарын авлагад би зөвхөн самбар, дэлгэц дээр хоёуланг нь ачаалахад шаардлагатай кодын хэсгүүдийг онцлон авч үзэх болно. Хэрэв та кодын талаар илүү ихийг мэдэхийг хүсч байвал миний блог дээр эсвэл доорхи сэтгэгдэл хэсэгт сэтгэгдлээ үлдээгээрэй, би тантай эргэж холбогдохыг хичээж байна.

- Эхлээд бид кодыг 128x32 дэлгэцтэй холбогдсон Arduino Nano руу ачаалах болно.

Бид кодыг ямар ч өөрчлөлтгүйгээр ашиглаж болно.

128x32 нь 0x3C хаягийг ашигладаг тул энд жаахан сайхан харагдаж байна, толгойн санг дахин шалгаж үзье, тийм ээ бас 0x3C хаягийг ашиглаж байгаа бөгөөд дэлгэцийн төрөл нь 128x32 байна.

- Одоо 128x64 дэлгэцийг холбоно уу. Бидний мэдэж байгаагаар энэ нь 0x3C хаягийг анхдагчаар ашигладаг тул код эсвэл номын санд хаягийг шинэчлэх шаардлагагүй болно.

Бид зөвхөн толгой номын санд 128_32 -ийг тайлбарлаж, 128_64 -ийг тайлж, LCDHEIGHT -ийг кодын 64 болгож өөрчлөх шаардлагатай байна.

- Одоо NodeMCU дээр ижил кодыг ажиллуулахын тулд бид кодынхоо нэг мөрийг өөрчлөх шаардлагатай байна.

"#Define OLED_RESET 4"> "#тодорхойлох OLED_RESET LED_BUILTIN" кодын үлдсэн хэсэг нь Arduino -той ижил байна.

Өмнөх дэлгэцийг цэвэрлэхийн тулд бидэнд хэрэгтэй бүх зүйлийг харуулахын тулд бараг л хангалттай

display.clearDisplay (); // Буферийг цэвэрлэ

Дараа нь объектыг зур

testdrawline (); // Мөр зур

Үүнийг техник хангамж дээр харуул

display.display (); // Тэдгээрийг дэлгэцийн техник хангамж дээр харагдуулна уу!

Дараагийн зүйлийг үзүүлэхийн тулд хэсэг хугацаанд хүлээнэ үү.

саатал (2000); // 2 секунд хүлээнэ үү

Энэ жишээнд бид текст, шугам, тойрог, гүйлгэх текст, гурвалжин гэх мэт цөөн хэдэн зүйлийг харуулав. Үргэлжлүүлэн төсөөллөө ашиглан эдгээр жижиг дэлгэц дээр хүссэн зүйлээ харуулаарай.

Алхам 10: Текстийг тохируулах, зураг нэмэх

Текстийг тохируулах, зураг нэмэх
Текстийг тохируулах, зураг нэмэх
Текстийг тохируулах, зураг нэмэх
Текстийг тохируулах, зураг нэмэх
Текстийг тохируулах, зураг нэмэх
Текстийг тохируулах, зураг нэмэх

Заримдаа таны код тусгай фонт харуулах шаардлагатай болдог

зураг. Хэрэв та бит зураглал хийхдээ маш сайн байгаа бол дэлгэцийн жижиг LED -ийг асаах эсвэл унтраах замаар фонт, дүрс үүсгэхийн тулд байтын массив үүсгэх хэрэгтэй.

Гэсэн хэдий ч би эдгээр зураглалыг хийхдээ тийм ч сайн биш бөгөөд бит газрын зургийн хүснэгт үүсгэхэд хэдэн цаг зарцуулахыг хүсэхгүй байна.

Тэгэхээр, миний сонголтууд юу вэ? Би ерөнхийдөө захиалгат фонт, зураг үүсгэхийн тулд хоёр вэбсайтыг ашигладаг. Холбоосыг доорх тайлбар дээр өгсөн болно.

Захиалгат фонтууд

Фонт хөрвүүлэгч вэбсайт руу орж, фонтын гэр бүл, хэв маяг, хэмжээ, Номын сангийн хувилбарыг "Adafruit GFX Font" гэж сонгоод "Үүсгэх" товчийг дарна уу. Энэ хуудасны баруун гар талд таны дэлгэцийн фонт хэрхэн харагдахыг харж болно.

Таны сонголт дээр үндэслэн вэб хуудас нь фонтын толгой файлыг үүсгэдэг. Таны код байгаа фолдерт "modified_font.h" нэртэй файл үүсгээд үүсгэсэн кодыг хуулж хадгална уу. Дараа нь та өөрчлөн тохируулсан фонтыг ашиглахын тулд толгой файлыг кодондоо оруулах хэрэгтэй.

#"өөрчилсөн_ фонт.х" -ыг оруулах

Дараа нь та текстийг харуулахаасаа өмнө фонтыг тохируулах хэрэгтэй бөгөөд үүнд тусгай фонт оруулах боломжтой болно.

display.setFont (& Таны_Фонт_Нэр);

Та өөрийн төсөлд шинээр нэмсэн толгой файлаас фонтын нэрийг авах боломжтой. Тийм л дээ, амархан.

Захиалгат фонт ашиглах үед санах ой нь үргэлж санаа зовдог тул санах ойд зарцуулагдах байтыг анхаарч үзээрэй. Arduino UNO нь зөвхөн 32K санах ойтой гэдгийг санаарай.

Захиалгат зургууд

Битмап зургийг дэлгэц дээр харуулахын тулд та эхлээд 128 x 64/32 хэмжээтэй дүрс үүсгэх хэрэгтэй.

Би хуучин "MS Paint" програмыг ашиглан 128 х 64 битийн зураг бүтээж, дараа нь энэ дүрс хөрвүүлэгч вэбсайт руу оруулах болно. Вэбсайт нь зургийг байт мөр болгон хөрвүүлдэг бөгөөд үүнийг Arduino болон OLED дэлгэц дээр ашиглах боломжтой.

Зургийг вэбсайтад байршуулж эхэл. Дараа нь "Зургийн өнгийг урвуулах" гэсэн хайрцгийг чагталж, "Гаралтын кодын формат" -ыг "Arduino код" болгон өөрчилж, чиглэлийг сонгоод "Код үүсгэх" товчийг дарж байтын массив үүсгэнэ. "Урьдчилан харах" хэсэг нь таны зураг бодит дэлгэц дээр хэрхэн харагдахыг харуулна.

Би кодыг энэ хичээлийн хамт оруулсан бөгөөд та өөрийн зургийг харуулах боломжтой. Та зүгээр л миний кодын массивыг шинээр үүсгэсэн кодоор сольж, дараа нь Arduino дээрээ ачаалах хэрэгтэй.

Алхам 11: 2 дэлгэцийг холбох

2 дэлгэцийг холбож байна
2 дэлгэцийг холбож байна
2 дэлгэцийг холбож байна
2 дэлгэцийг холбож байна

128 x 64 хэмжээтэй хоёр дэлгэцийг төсөлдөө холбох нь хялбар байдаг.

Та 0Ohm резисторыг 0x78 хаягаас задалж, 0x7A дээр байрлуулж, 0x3C хаягийн оронд 0x3D хаягийг код дээрээ ашиглах хэрэгтэй.

Бид яагаад 0x78 ба 0x7A биш харин 0x3C ба 0x3D хаягийг ашиглаж байгаа юм бол гэж та гайхаж байгаа байх. Arduino нь 8 битийн тоног төхөөрөмжийн хаягийг биш 7 битийн хаягийг хүлээн авдаг. Тиймээс, бид эхлээд 8 битийн хаягийг хоёртын формат руу хөрвүүлж, дараа нь 7 битийг авахын тулд хамгийн бага ач холбогдолтой хэсгийг нь хасах хэрэгтэй. Дараа нь кодоо оруулсан 0x3C эсвэл 0x3D хаягийг авахын тулд 7 битийг HEX болгон хөрвүүл.

Нэгдүгээрт, дэлгэцийг өвөрмөц нэр өгч эхлүүлнэ үү.

Adafruit_SSD1306 дэлгэц1 (OLED_REST);

Adafruit_SSD1306 дэлгэц2 (OLED_REST);

Дараа нь код дээрээ дэлгэцийн 1 ба дэлгэц 2 -ийг ашиглан төхөөрөмжийн хаягийг эхлүүлэх мэдэгдэл рүү залгаарай.

display1.begin (SSD1306_SWITCHCAPVCC, 0x3C); // 0x3C гэсэн 1 хаягийг харуулна

display2.begin (SSD1306_SWITCHCAPVCC, 0x3D); // 2x хаягийг 0x3D харуулна

Энэ бол та одоо кодынхоо үлдсэн хэсэгт Display 1 эсвэл Display 2 -ийг ашиглан хүссэн зүйлээ хийж болно. Би энэ хичээлээр жишээ өгсөн.

Цахилгааны утас нь бидний урьд өмнө хийж байсан зүйлтэй яг адилхан бөгөөд та Arduino эсвэл NodeMCU -ийн ижил I2C зүү дээр өөр дэлгэц нэмэх хэрэгтэй болно. Хаяг дээр үндэслэн MCU нь өгөгдлийг I2C мэдээллийн шугам дээр илгээдэг.

Алхам 12: 2 -оос дээш дэлгэц холбох

2 -оос дээш дэлгэц холбох
2 -оос дээш дэлгэц холбох
2 -оос дээш дэлгэц холбох
2 -оос дээш дэлгэц холбох
2 -оос дээш дэлгэц холбох
2 -оос дээш дэлгэц холбох

Хэрэв та 2 -оос дээш дэлгэц холбохыг хүсвэл яах вэ?

Arduino нь хязгаарлагдмал тооны тээглүүртэй тул тодорхой хэмжээний бамбай бэхлэх боломжгүй. Түүнээс гадна, энэ нь зөвхөн нэг хос I2C автобустай.

Тэгэхээр, бид 2 -оос дээш I2C дэлгэцийг Arduino -д хэрхэн холбох вэ? Заль мэх нь TCA9548 Multiplexer ашиглах явдал юм.

TCA9548 нь мэдрэгч боол дэд автобус бүрт өвөрмөц сувгийг оноож өгснөөр нэг микро контроллер нь '64 мэдрэгчтэй' ижил эсвэл өөр I2C хаягаар харилцах боломжийг олгодог.

Өгөгдлийг 2 утаснаас олон төхөөрөмж рүү илгээх талаар ярихдаа тэдгээрийг шийдвэрлэх арга зам хэрэгтэй болно. Шуудан зөөгч ганц замаар ирж, өөр өөр хаягаар бичигдсэн тул өөр өөр байшин руу шуудангийн хайрцгийг хаяхтай адил юм.

Мультиплексор нь микро хянагчийн 3V3, GND, SDA, SCL шугамтай холбогддог. Боол мэдрэгч нь самбар дээрх SCL/SDA найман боомтын портуудын аль нэгэнд холбогдсон байна. TCA9548A -ийн I2C хаягийг (0x70 {default} - 0x77), дараа нь сувгийн дугаарыг (0b00000001 - 0b10000000) илгээх замаар сувгуудыг сонгоно. Та эдгээр мултиплексүүдийн хамгийн ихдээ 8-ийг 0x70-0x77 хаягаар холбож, ижил I2C хаягийн 64 хэсгийг хянах боломжтой. A0, A1, A2 гэсэн гурван хаягийн битийг VIN -д холбосноор та өөр өөр хаягийн хослолыг авах боломжтой. Би үүнийг TCA9548A таслах самбар дээрх дараагийн хичээл дээрээ нарийвчлан тайлбарлах болно. Одоохондоо энэ самбар дээр 8 OLED холбож кодоо хурдан харцгаая.

Холболт:

VIN - 5V (эсвэл 3.3V)

GND газардуулав

SCL - I2C цаг

SDA -аас I2C өгөгдөл

Дараа нь мэдрэгчийг VIN, GND руу холбож, SCn / SDn мултиплекс автобусны аль нэгийг ашиглана уу

Одоо Int код нь "Wire" номын санг оруулахаас гадна мултиплексоруудын хаягийг тодорхойлохоос эхэлье.

#"Wire.h" -ийг оруулна уу

#оруулах

#MUX_Address 0x70 // TCA9548A Encoders хаягийг тодорхойлох

Дараа нь бид холбоо барихыг хүсч буй портоо сонгож, энэ функцийг ашиглан өгөгдлийг илгээх хэрэгтэй.

void tcaselect (uint8_t i) {

хэрэв (i> 7) буцах;

Wire.beginTransmission (MUX_Address);

Wire.write (1 << i);

Wire.endTransmission ();

}

Дараа нь бид "u8g.begin ();" гэж дуудаж тохиргооны хэсэгт дэлгэцийг эхлүүлэх болно. MUX -д хавсаргасан дэлгэц бүрийн хувьд "tcaselect (i);"

Эхлүүлсний дараа бид "tcaselect (i);" функцийг дуудаж хүссэн зүйлээ хийж чадна. Энд "i" нь олон талт автобусны утга бөгөөд үүний дагуу өгөгдөл, цагийг илгээдэг.

Алхам 13: Давуу болон сул талууд

Давуу болон сул талууд
Давуу болон сул талууд

OLED -ийн дүр төрх үнэхээр үзэсгэлэнтэй юм. Гэсэн хэдий ч OLED -ууд бас байдаг

сул тал. OLED дэлгэц нь органик материал агуулдаг тул эдэлгээ нь LCD дэлгэцтэй харьцуулахад богино байдаг. Нэмж дурдахад олон OLED дэлгэцүүд ижил дүрсийг удаан харуулсны дараа шатдаг. Шатсаны дараа зураг өөр дүрсийг харуулсан ч гэсэн дэлгэцэн дээр үлддэг. Тиймээс хэдэн секунд тутамд дэлгэцээ байнга шинэчилж байгаарай. Ус нь эдгээр дэлгэцийн органик материалыг шууд хордуулдаг.

Давуу тал

Арын гэрэлтүүлэг шаардлагагүй

Дэлгэц нь маш нимгэн, хөнгөн

Бага эрчим хүчний хэрэглээ

Харах өнцөг нь LCD дэлгэцээс илүү өргөн юм

Гэрэл ба тодосголт нь гайхалтай

Өндөр хурдтай, хариу өгөх хугацаа багатай

Гүн хар өнгөтэй

Сул талууд

Өндөр өртөгтэй технологи

Богино хугацааны амьдралын мөчлөг

OLEDS нь шатах магадлал өндөр байдаг

Усны гэмтэл

Алхам 14: Нийтлэг алдаа

Нийтлэг алдаа
Нийтлэг алдаа

Хичээлийг дуусгахын тулд цөөн хэдэн нийтлэг алдааны талаар ярилцъя

Хүмүүс эдгээр дэлгэцийг ашиглахдаа дараахь зүйлийг хийдэг.

- Төсөлдөө ашиглахаасаа өмнө тээглүүрийг үргэлж гурвалжлаарай

- Толгой файл болон код дээрээ номын сангийн зөв хаягийг сонгоно уу

#Define SSD1306_I2C_ADDRESS 0x3C // in Adafruit_SSD1306.h

ба

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // таны кодонд

Хэрэв хаяг буруу байвал OLED нь юу ч харуулахгүй

- Хэрэглэхийн өмнө дэлгэцийн хэмжээг драйвер дээр өөрчлөх ёстой. Хэрэв энэ нь өөрчлөгдөөгүй бол кодыг шалгахыг оролдох үед танд алдааны мэдэгдэл ирэх болно

#алдаа ("Өндөр буруу, Adafruit_SSD1306.h -ийг засна уу!");

- Хэрэв NodeMCU ашиглаж байгаа бол OLED_RESET -ийг 4 -ээс LED_BUILTIN болгож солих хэрэгтэй.

OLED_RESET LED_BUILTIN -ийг #тодорхойлох

Энэхүү OLED дэлгэцийг ашиглан янз бүрийн зүйл хийдэг хүмүүс надад бий. Зарим нь бүр видео тоглоом хийж, бүгдийг хийсэн. Энэхүү жижиг дэлгэцийг ашиглан видео тоглоом хийх сонирхолгүй байна. Гэсэн хэдий ч би одоо таны төсөөллийг судалж, гайхалтай санаануудыг гаргаж өгөх болно.

Алхам 15: Холбоосууд

- Блог:

- Зураг нэмэх:

- Захиалгат текст:

- Adafruit дэлгэцийн номын сан:

-Adafruit GFX номын сан:

- u8glib номын сан: https://code.google.com/archive/p/u8glib/ эсвэл

Хэрэв та жижиг дэлгэц ашиглахыг хүсвэл анхдагч 128_32 -ийг ашиглаарай, эс тэгвээс том дэлгэцийн хувьд 128_32 гэсэн коммент дээр бичээд кодынхоо 128X64 NO_ACK -г тайлна уу (зөвхөн ашиглаж буй дэлгэцийнхээ төрлийг тайлбарлаагүй болно) (фонтууд фонтын санд байдаг)

Зөвлөмж болгож буй: