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

Arduino Nano -ийн LCD COG: 3 алхам
Arduino Nano -ийн LCD COG: 3 алхам

Видео: Arduino Nano -ийн LCD COG: 3 алхам

Видео: Arduino Nano -ийн LCD COG: 3 алхам
Видео: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Долдугаар сарын
Anonim
Arduino Nano -ийн LCD COG
Arduino Nano -ийн LCD COG

Энэхүү заавар нь COG LCD -ийг Arduino Nano -той хэрхэн ашиглах талаар тайлбарласан болно.

COG LCD дэлгэц нь хямд боловч интерфэйс хийхэд арай хэцүү байдаг. (COG нь "Chip On Glass" гэсэн утгатай.) Миний ашиглаж байгаа нь UC1701 драйверын чипийг агуулдаг. Энэ нь зөвхөн Arduino-ийн 4 зүү шаарддаг: SPI-цаг, SPI-өгөгдөл, чип сонгох, тушаал/өгөгдөл.

UC1701 нь SPI автобусаар хянагддаг бөгөөд 3.3V хүчдэлд ажилладаг.

Энд би үүнийг Arduino Nano -тэй хэрхэн ашиглах талаар тайлбарлав. Энэ нь Arduino Mini эсвэл Uno дээр ажиллах ёстой - удахгүй үүнийг туршиж үзэх болно.

Энэ бол миний Arduino -ийн анхны төсөл бөгөөд би хэдэн арван жилийн турш C бичээгүй тул хэрэв би ямар нэгэн илт алдаа гаргаж байвал надад мэдэгдээрэй.

Алхам 1: Тоног төхөөрөмжийг бий болгох

Тоног төхөөрөмжийг бий болгох
Тоног төхөөрөмжийг бий болгох
Тоног төхөөрөмжийг бий болгох
Тоног төхөөрөмжийг бий болгох
Тоног төхөөрөмжийг бий болгох
Тоног төхөөрөмжийг бий болгох

UC1701 чип агуулсан COG LCD худалдаж аваарай. Энэ нь зэрэгцээ интерфэйс биш харин SPI автобусыг ашиглах ёстой. Энэ нь ойролцоогоор 14 тээглүүртэй бөгөөд доор жагсаасан нэрээр хаяглагдсан болно. (Та D0, D1, D2 гэсэн шошготой олон интерфэйстэй зэрэгцээ интерфэйсийг хүсэхгүй байна.)

Миний худалдаж авсан зүйл бол: https://www.ebay.co.uk/itm/132138390168 Эсвэл eBay -аас "12864 LCD COG" хайж болно.

1.27 мм -ийн зайтай зүү бүхий нэлээд өргөн сүүлтэй нэгийг нь сонгоорой - илүү нарийн тээглүүрийг гагнахад хэцүү байх болно. UC1701 чиптэй эсэхийг шалгаарай. Ebay хуудсан дээрх зургаа дахь зурган дээр "CONNECTOR: COG/UC1701" гэж бичсэн байгааг анхаарна уу.

Дэлгэц нь тунгалаг бөгөөд урд болон арын аль нь болохыг мэдэх нь хэцүү байдаг. Миний зургийг анхааралтай судалж үзээрэй. 1 ба 14 -р зүү хаана байгааг анзаараарай.

Уян сүүл нь гагнахад маш хялбар боловч адаптер шаарддаг тул та үүнийг талхны тавцан руу залгаж болно. Би худалдаж авсан: https://www.ebay.co.uk/itm/132166865767 Эсвэл eBay дээрээс "Adapter Smd SSOP28 DIP28" гэж хайж болно.

Адаптер нь нэг талдаа 28 зүүтэй SOP чип, нөгөө талдаа 28 зүүтэй SSOP чипийг авдаг. SOP чип нь зүүний зай нь 0.05 инч (1.27 мм) бөгөөд энэ нь LCD -ийн сүүлтэй адил юм.

Танд бас толгойн зүү хэрэгтэй болно. Би Arduino эсвэл бусад модулийг худалдаж авах бүрдээ шаардлагатай хэмжээнээсээ илүү толгой толгойтой ирдэг тул танд аль хэдийн байгаа байх. Үгүй бол eBay дээрээс "2.54 мм толгойн зүү" хайж олоорой.

Толгойн 14 гагнуур нь адаптер дээр бэхлэгддэг. Тэднийг бүхэлд нь түлхэж болохгүй - адаптерийн арын хэсэг хавтгай байвал илүү дээр юм. Зүүг нүхэнд хэт хол оруулахгүйн тулд вандан сандал дээрээ тавь. Зүү нь самбарын SOP талд байгаа эсэхийг шалгаарай (өөрөөр хэлбэл том чип).

Сүүлний дэвсгэр нь нэг төрлийн цонхонд байдаг. Хоёр талыг нь гагнуураар бүрнэ. Адаптерийн дэвсгэрийг цагаан тугалга. Адаптерийн сүүлийг барьж, дэвсгэр бүрийг гагнуурын төмрөөр шүргэнэ (танд маш нарийн үзүүр хэрэгтэй болно).

Адаптерийн цоорхойгоор хэдэн утас холбож, омог тайлах үүрэг гүйцэтгэнэ. (Би "трансформаторын утас" ашигласан).

Хэрэв та буруу замаар гагнах юм бол сүүлийг нь гагнах гэж бүү оролдоорой. Тээглүүрүүдийг нэг нэгээр нь аваад самбарын нөгөө тал руу зөөнө үү. (Тийм ээ, би ийм алдаа гаргаж, сүүлийг нь дахин гагнасан нь зураг дээр жаахан эмх замбараагүй байгаа юм.)

Алхам 2: Arduino руу холбогдох

Arduino руу холбогдож байна
Arduino руу холбогдож байна
Arduino руу холбогдож байна
Arduino руу холбогдож байна

Энэ хэсэгт Arduino Nano -той хэрхэн холбогдохыг тайлбарласан болно. Энэ нь Mini эсвэл Uno -той маш төстэй байх болно, гэхдээ би хараахан туршиж үзээгүй байна.

Цахилгаан хэлхээг судлах.

USB портод холбогдсон Arduino Nano 5V хүчдэлтэй ажилладаг. LCD 3.3V хүчдэлтэй ажилладаг. Тиймээс та LCD -ийг Нано -ийн 3V3 зүүгээр тэжээж, хяналтын зүү тус бүрийн хүчдэлийг 5V -аас 3.3V болгон бууруулах хэрэгтэй.

LCD дэлгэцийн цэг нь:

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

CS бол Chip-Select юм. UC1701 чипийг сонгох (идэвхжүүлэх)ийн тулд доош нь татна. (CS -ийг CS0 эсвэл En эсвэл үүнтэй төстэй гэж нэрлэж болно.)

RST нь дахин тохируулна. Чипийг дахин тохируулахын тулд үүнийг доош нь татна. (RST -ийг Reset гэж нэрлэж болно.)

CD бол тушаал/өгөгдөл юм. SPI -ээр дамжуулан чип рүү тушаал илгээхдээ үүнийг бага татдаг. Өгөгдөл илгээх үед энэ нь өндөр байдаг. (CD -ийг A0 гэж нэрлэж болно.)

CLK ба SDA бол SPI автобусны тээглүүр юм. (SDA-ийг SPI-Data гэж нэрлэж болно. CLK нь SCL эсвэл SPI-Clock байж болно.)

VB0+ ба VB0- UC1701-ийн дотоод цэнэглэх насос ашигладаг. Цэнэглэх насос нь LCD -д шаардлагатай сондгой хүчдэл үүсгэдэг. VB0+ ба VB0- хооронд 100n конденсаторыг холбоно уу. UC1701 баримт бичиг нь 2uF -ийг санал болгодог боловч энэ LCD -ийн ялгааг олж хараагүй.

Хэрэв таны LCD дэлгэц VB1+ ба VB1 зүүтэй бол тэдгээрийн хооронд 100 н конденсаторыг холбоно уу. (Хэрэв таны LCD VLCD зүүтэй бол та 100n конденсаторыг VLCD ба Gnd хооронд холбохыг оролдож болно. Энэ нь миний LCD -т ямар ч хамаагүй байсан.)

LCD -ийг нано руу дараах байдлаар холбоно уу.

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

("*" гэдэг нь хүчдэлийг бууруулахын тулд боломжит хуваагч ашиглахыг хэлнэ. Хэрэв Arduino нь бие даасан тэжээлээс 3V3 дээр ажиллаж байгаа бол танд резистор хэрэггүй болно.)

3.3V нь нано гаралт бөгөөд LCD -ийг хангалттай гүйдэлээр хангах боломжтой. (Дэлгэц нь ойролцоогоор 250uA зурдаг.)

5V -ийг мөн нано гаргадаг бөгөөд арын гэрлийг асаахад ашиглаж болно. 100 Ом эсэргүүцэл ашиглан гүйдлийг арын гэрэлтүүлэг хүртэл хязгаарлаарай.

Хэрэв та нано дээр зүү дутуу байгаа бол RST -ийг 3V3 -т холбож болно, тэгвэл та D6 -ийг өөр зүйлд ашиглаж болно. U1701 -ийг SPI дээрх тушаалаар програм хангамжид дахин тохируулах боломжтой. Надад ийм асуудал үүсч байгаагүй, гэхдээ хэрэв та дуу чимээ ихтэй орчинд өөрийн хэлхээг ашиглаж байгаа бол тоног төхөөрөмжийг дахин тохируулах нь дээр.

Алхам 3: Програм хангамж

Програм хангамж
Програм хангамж

Онолын хувьд та UC1701 -ийг U8g2 номын сангаас (эсвэл Ucglib эсвэл бусад номын сангаас) жолоодох боломжтой. Үүнийг ажиллуулахын тулд би хэдэн өдөр тэмцсэн боловч бүтэлгүйтсэн. U8g2 номын сан нь мангас юм, учир нь энэ нь маш олон төрлийн чипс жолооддог бөгөөд кодыг дагахад маш хэцүү байдаг. Тиймээс би бууж өгч, өөрийнхөө жижиг номын санг бичсэн. Энэ нь Arduino -д хамаагүй бага зай эзэлдэг (ойролцоогоор 3400 байт, фонтууд).

Та миний номын санг эндээс татаж авах боломжтой (энэ хуудсан дээрх Татаж авах товч). Загварын ноорог болон хэрэглэгчийн гарын авлага багтсан болно. Https://www.arduino.cc/en/Guide/Libraries вэб хуудас нь номын санг хэрхэн импортлох талаар тайлбарласан болно; ".zip номын санг импортлох" хэсэгт очно уу.

LCD дэлгэцийг эхлүүлнэ үү

UC1701 Эхлэх ();

UC1701Begin нь тээглүүрийг өөрчлөх эсвэл RST зүүг үл тоомсорлох параметрүүдийг авч болно. Номын санд зөвхөн тоног төхөөрөмжийн SPI ашигладаг (SPI програм хангамж байдаггүй). Дэлгэцийг x ба y тэнхлэгт эргүүлэх боломжтой. Хэрэв та LCD -ийг өөр чиглэлд холбохыг хүсч байвал энэ нь ашигтай байх болно.

U8g2 номын сангаас хэд хэдэн процедурыг хуулбарласан болно.

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

Зарим журам арай өөр байна:

  • хүчингүй DrawChar (uint8_t c, үсгийн фонт);
  • хоосон DrawString (char * s, үсгийн фонт);
  • хоосон DrawInt (int i, үсгийн фонт);

String зурах процедурыг фонтын индексээр дамжуулдаг. Үсгийн фонтыг Arduino -ийн флаш санах ойд зарласан тул үнэ цэнэтэй SRAM -ийг эзэмшдэггүй. Гурван фонт өгдөг (жижиг, дунд, том). Хэрэв та флаш санах ойг ашигладаг бол тэдгээрийг холбосон бөгөөд эзэлдэг (тус бүр нь ойролцоогоор 500-2000 байт).

"Өнгө" нь U8g2 номын сангаас өөрөөр зохицуулагддаг. LCD дэлгэцийг цэвэрлэх үед харанхуй дэвсгэртэй болно. Хэрэв MakeMark (дэлхийн хувьсагч) үнэн бол зураг зурах ажлыг цагаанаар хийдэг. Хэрэв MakeMark худал бол зураг зурах ажлыг харанхуйд хийдэг.

Зарим процедур нь UC1701 -ийн онцлог шинж чанартай байдаг.

SetInverted нь цагаан дээр хараас илүү цагаан дээр зурдаг.

хүчингүй SetInverted (bool inv);

UC1701 -ийн тод байдал ба тод байдлыг дараахь байдлаар тодорхойлно.

  • хүчингүй SetContrast (uint8_t утга); // санал болгосон нь 14 байна
  • хоосон SetResistor (uint8_t утга); // санал болгосон нь 7 байна

Тэд хамтдаа нэлээд сэтгэл ханамжгүй байдлаар ажилладаг.

SetEnabled нь LCD дэлгэцийг унтраана.

хүчингүй SetEnabled (bool en);

Унтах үед дэлгэц нь 4uA авдаг. Та мөн арын гэрлийг унтраах хэрэгтэй - үүнийг нано зүүгээр зөөнө үү. Дахин идэвхжүүлсний дараа UC1701-ийг дахин тохируулах болно; дэлгэц цэвэрлэгдэж, тодосгогч ба резисторыг анхны утгаар нь тохируулах болно.

Эцэст нь хэлэхэд COG дэлгэц нь хямд бөгөөд боломжийн хэмжээтэй. Тэд Arduino -той холбогдоход хялбар байдаг.

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