Mundarija:

Arduino Nano uchun LCD COG: 3 qadam
Arduino Nano uchun LCD COG: 3 qadam

Video: Arduino Nano uchun LCD COG: 3 qadam

Video: Arduino Nano uchun LCD COG: 3 qadam
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, Iyul
Anonim
Arduino Nano uchun LCD COG
Arduino Nano uchun LCD COG

Ushbu yo'riqnomada Arduino Nano bilan COG LCD -dan qanday foydalanish tasvirlangan.

COG LCD displeylari arzon, lekin interfeysi biroz qiyinroq. (COG "Chip On Glass" degan ma'noni anglatadi.) Men foydalanadigan UC1701 haydovchi chipini o'z ichiga oladi. Bu faqat Arduino-ning 4 ta pinini talab qiladi: SPI-soat, SPI-ma'lumotlar, chip-tanlash va buyruq/ma'lumotlar.

UC1701 SPI avtobusi tomonidan boshqariladi va 3,3V da ishlaydi.

Bu erda men uni Arduino Nano bilan qanday ishlatishni aytib beraman. U Arduino Mini yoki Uno bilan ham ishlashi kerak - men buni tez orada sinab ko'raman.

Bu mening birinchi Arduino loyiham va men o'n yillar davomida C yozmaganman, shuning uchun agar aniq xato qilsam, menga xabar bering.

1 -qadam: uskunani yaratish

Uskunani yaratish
Uskunani yaratish
Uskunani yaratish
Uskunani yaratish
Uskunani yaratish
Uskunani yaratish

UC1701 chipini o'z ichiga olgan COG LCD sotib oling. U parallel interfeysdan ko'ra SPI avtobusidan foydalanishi kerak. Unda 14 tagacha pin bor, ular quyida sanab o'tilgan ismlar bilan etiketlanadi. (D0, D1, D2 deb belgilanadigan boshqa pinli parallel interfeysni xohlamaysiz.)

Men sotib olganim: https://www.ebay.co.uk/itm/132138390168 Yoki eBay -dan "12864 LCD COG" ni qidirishingiz mumkin.

Pichoqlari 1,27 mm bo'lgan juda keng dumi bor birini tanlang - mayda pimlarni lehimlash qiyin bo'ladi. UC1701 chipiga ega ekanligiga ishonch hosil qiling. Ebay sahifasidagi oltinchi rasmda "CONNECTOR: COG/UC1701" yozilganiga e'tibor bering.

Displey shaffof va old va orqa tomonini bilish qiyin. Mening rasmlarimni diqqat bilan o'rganing. 1 va 14 -gachasi pinlar qayerda joylashganligiga e'tibor bering - ular dumida belgilangan.

Moslashuvchan quyruqni lehimlash juda oson, lekin unga adapter kerak, shuning uchun uni taxtaga ulashingiz mumkin. Men sotib oldim: https://www.ebay.co.uk/itm/132166865767 Yoki eBay -dan "Smd SSOP28 DIP28 adapteri" ni qidirishingiz mumkin.

Adapter bir tomondan 28-pinli SOP chipini yoki boshqa tomondan 28-pinli SSOP chipini oladi. SOP chipining pin oralig'i 0,05 dyuymli (1,27 mm), bu LCD dumi bilan bir xil.

Bundan tashqari, sizga bir nechta bosh pinlari kerak bo'ladi. Qachonki men Arduino yoki boshqa modulni sotib olsam, u kerak bo'lgandan ko'ra ko'proq sarlavhali pinlar bilan ta'minlanadi, shuning uchun sizda allaqachon bor. Aks holda, eBay -dan "2,54 mm sarlavhali pinlar" ni qidiring.

Sarlavhaning 14 -chi ulagichi adapterga ulanadi. Ularni oxirigacha itirmang - agar adapterning orqa qismi tekis bo'lsa, yaxshi bo'ladi. Ignalarni teshiklarga juda uzoqqa itarmaslik uchun skameykaga tekis qilib qo'ying. Iplar taxtaning SOP tomonida joylashganligiga ishonch hosil qiling (ya'ni katta chip).

Quyruq yostiqchalari qandaydir oynada. Ikkala tomonini lehim bilan qalaylang. Adapterning yostiqchalarini qalamlang. Adapterning dumini joyida ushlab turing, so'ngra har bir yostiqni lehimlantiruvchi temir bilan ushlang (sizga juda nozik uchi kerak bo'ladi).

Kuchlanishni bartaraf etish uchun adapterning teshiklaridan bir nechta ipni bog'lang. (Men "transformator simini" ishlatardim).

Agar siz uni noto'g'ri yo'lda lehimlagan bo'lsangiz, quyruqni lehimlashga urinmang. Pimlarni birma -bir chiqarib oling va taxtaning boshqa tomoniga o'tkazing. (Ha, men xato qildim va dumini qayta lehimladim, shuning uchun bu rasmda biroz chalkashlik.)

2 -qadam: Arduino -ga ulanish

Arduino -ga ulanish
Arduino -ga ulanish
Arduino -ga ulanish
Arduino -ga ulanish

Ushbu bo'limda Arduino Nano -ga qanday ulanish kerakligi tushuntirilgan. Bu Mini yoki Uno uchun juda o'xshash bo'ladi, lekin men hali sinab ko'rmadim.

O'chirish sxemasini o'rganish.

USB portiga ulangan Arduino Nano 5V da ishlaydi. LCD displey 3,3 V kuchlanish bilan ishlaydi. Shunday qilib, siz LCD -ni Nano -ning 3V3 pinidan quvvatlantirishingiz va har bir nazorat pinidagi kuchlanishni 5V dan 3.3Vgacha kamaytirishingiz kerak.

LCD displeyi quyidagicha:

  • 1 ta CS
  • 2 RST
  • 3 ta CD
  • 4
  • 5 CLK
  • 6 SDA
  • 7 3V3
  • 8 0V Gnd
  • 9 VB0+
  • 10 VB0-
  • 11
  • 12
  • 13
  • 14

CS-bu Chip-Select. UC1701 chipini tanlash (yoqish) uchun u pastga tortiladi. (CSni CS0 yoki En yoki shunga o'xshash deb atash mumkin.)

RST - asl holatini tiklash. Chipni qayta o'rnatish uchun u pastga tortiladi. (RSTni Reset deb atash mumkin.)

CD - bu buyruq/ma'lumotlar. SPI orqali chipga buyruqlar yuborilganda u pastga tortiladi. Ma'lumotni yuborishda bu yuqori. (CDni A0 deb atash mumkin.)

CLK va SDA - SPI avtobus pinlari. (SDA SPI-Data deb nomlanishi mumkin. CLK SCL yoki SPI-Clock bo'lishi mumkin.)

VB0+ va VB0- UC1701 ichki zaryad pompasi tomonidan ishlatiladi. Zaryadlovchi nasos LCD displey uchun zarur bo'lgan tok kuchlanishni hosil qiladi. VB0+ va VB0- o'rtasida 100n kondansatör ulang. UC1701 hujjatlari 2uF ni tavsiya qiladi, lekin men bu aniq LCD bilan farqni ko'ra olmadim.

Agar sizning LCD displeyingizda VB1+ va VB1 pinlari bo'lsa, ular orasidagi 100n kondansatörni ham ulang. (Agar sizning LCD displeyingizda VLCD pin bo'lsa, siz VLCD va Gnd o'rtasida 100n kondansatörni ulashga urinib ko'rishingiz mumkin. Bu mening LCD displeyim bilan farq qilmadi.)

LCD -ni Nano -ga quyidagicha ulang:

  • 1 CS = D10 *
  • 2 RST = D6 *
  • 3 ta CD = D7 *
  • 5 CLK = D13 *
  • 6 SDA = D11 *
  • 7 3V3 = 3V3
  • 8 0V = Gnd

("*" - bu kuchlanishni kamaytirish uchun potentsial ajratgichdan foydalanish demakdir. Agar Arduino 3V3 da mustaqil manbadan ishlayotgan bo'lsa, sizga rezistorlar kerak bo'lmaydi.)

3.3V Nano tomonidan chiqariladi va LCD uchun etarli oqimni ta'minlay oladi. (Displey 250uA atrofida chiziladi.)

5V ham nano tomonidan ishlab chiqariladi va orqa nuri yoqish uchun ishlatilishi mumkin. 100 ohmli rezistor yordamida tokni orqa nuri bilan cheklang.

Agar siz Nano -da pinlar etishmayotgan bo'lsa, siz RST -ni 3V3 -ga ulashingiz mumkin - keyin D6 -ni boshqa narsa uchun ishlatishingiz mumkin. U1701 -ni dasturiy ta'minotda SPI buyrug'i bilan tiklash mumkin. Men hech qachon bu bilan hech qanday muammoga duch kelmaganman, lekin agar siz o'z davrangizni shovqinli muhitda ishlatayotgan bo'lsangiz, uskunani asl holatiga qaytarish yaxshiroq bo'lishi mumkin.

3 -qadam: dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot

Nazariy jihatdan, UC1701 ni U8g2 kutubxonasidan (yoki Ucglib yoki boshqa kutubxonalardan) haydash mumkin. Men uni ishga tushirish uchun bir necha kun kurashdim va muvaffaqiyatsiz bo'ldim. U8g2 kutubxonasi - bu yirtqich hayvon, chunki u turli xil chiplarni boshqarishi mumkin va kodga amal qilish juda qiyin. Men taslim bo'ldim va o'zimning kichikroq kutubxonamni yozdim. Bu Arduino -da ancha kam joy egallaydi (taxminan 3400 bayt va shriftlar).

Siz kutubxonamni bu erdan yuklab olishingiz mumkin (Yuklab olish tugmasi shu sahifada). Namuna eskiz va foydalanuvchi qo'llanmasi kiritilgan. Https://www.arduino.cc/en/Guide/Libraries veb -sahifasida kutubxonani qanday import qilish mumkinligi tasvirlangan; ".zip kutubxonasini import qilish" bo'limiga o'ting.

LCD -ni ishga tushiring

UC1701Begin ();

UC1701Begin pinlarni o'zgartirish yoki RST pinini e'tiborsiz qoldirish uchun parametrlarni qabul qilishi mumkin. Kutubxonada faqat SPI apparati ishlatiladi (SPI dasturi ta'minlanmagan). Displeyni x va y o'qlarida aylantirish mumkin. Agar siz LCD -ni boshqa yo'nalishda o'rnatmoqchi bo'lsangiz, bu foydali bo'ladi.

U8g2 kutubxonasidan bir nechta protseduralar takrorlandi:

  • DrawLine
  • DrawPixel
  • DrawHLine
  • DrawVLine
  • DrawBox
  • DrawFrame
  • DrawCircle
  • DrawDisc
  • DrawFilledEllipse
  • DrawEllipse
  • DrawTriangle
  • UC1701 SetCursor
  • UC1701Tozalash displeyi

Ba'zi protseduralar biroz boshqacha:

  • yaroqsiz DrawChar (uint8_t c, shrift so'zi);
  • DrawString void (char * s, shrift so'zi);
  • yaroqsiz DrawInt (int i, shrift so'zi);

String chizish protseduralari shrift indeksidan o'tadi. Shriftlar Arduino flesh xotirasida e'lon qilinadi, shuning uchun ular qimmatbaho SRAM -ni egallamaydi. Uchta shrift taqdim etiladi (kichik, o'rta va katta). Ular faqat flesh -xotiradan foydalangan holda ulanadi va egallaydi (har biri 500 dan 2000 baytgacha).

"Rang" U8g2 kutubxonasidan farq qiladi. LCD tozalanganida uning fonida qorong'i bo'ladi. Agar MakeMark (global o'zgaruvchi) rost bo'lsa, chizish oq rangda amalga oshiriladi. Agar MakeMark soxta bo'lsa, rasm chizish zulmatda amalga oshiriladi.

Ba'zi protseduralar UC1701 uchun xosdir:

SetInverted oq-qora emas, oq-qora rangda chizadi.

void SetInverted (bool inv);

UC1701 ning yorqinligi va kontrasti quyidagicha belgilanadi:

  • bo'sh SetContrast (uint8_t qiymati); // taklif qilingan - 14
  • void SetResistor (uint8_t qiymati); // tavsiya etilgan - 7

Ular birgalikda juda qoniqarsiz tarzda ishlaydilar.

SetEnabled LCD -ni o'chiradi:

void SetEnabled (bool en);

Uyqu paytida displey 4uA oladi. Bundan tashqari, orqa nuri o'chirilishi kerak - uni nano pinidan haydang. Qayta yoqilgandan so'ng, UC1701 qayta tiklanadi; displey tozalanadi va Kontrast va rezistor asl qiymatlariga qaytariladi.

Xulosa qilib aytganda, COG displeylari arzon va munosib o'lchamga ega. Ularni Arduino -ga ulash oson.

Tavsiya: