Агуулгын хүснэгт:
Видео: Arduino Nano -ийн LCD COG: 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Энэхүү заавар нь 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 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 -той холбогдоход хялбар байдаг.
Зөвлөмж болгож буй:
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
Arduino LCD 16x2 заавар - Arduino Uno -той 1602 LCD дэлгэц: 5 алхам
Arduino LCD 16x2 заавар | Arduino Uno -той 1602 LCD дэлгэц: Сайн байна уу залуусаа, олон төсөлд DIY тоолуур эсвэл YouTube -ийн захиалгын тоолох дэлгэц эсвэл тооцоолуур эсвэл дэлгэцийн товчлуурын түгжээ гэх мэт өгөгдлийг харуулах дэлгэц хэрэгтэй бөгөөд хэрэв эдгээр бүх төслүүд хийгдсэн бол. arduino тэд үүнийг эцэслэх болно
I2C / IIC LCD дэлгэц - Arduino ашиглан SPI -IIC модулийг ашиглан I2C LCD дэлгэц рүү SPI LCD ашиглах: 5 алхам
I2C / IIC LCD дэлгэц | IUC LCD дэлгэц дээр SPI LCD дэлгэцийг SPI -ийг IIC модулийг ашиглан Arduino ашиглан ашиглаарай: Сайн байна уу залуусаа, ердийн SPI LCD 1602 -ийг холбоход хэт олон утас байдаг тул үүнийг arduino -той холбоход маш хэцүү боловч зах зээл дээр боломжтой нэг модуль байдаг. SPI дэлгэцийг IIC дэлгэц болгон хөрвүүлэх тул та зөвхөн 4 утас холбох хэрэгтэй
I2C / IIC LCD дэлгэц - SPI LCD дэлгэцийг I2C LCD дэлгэц болгон хөрвүүлэх: 5 алхам
I2C / IIC LCD дэлгэц | SPI LCD дэлгэцийг I2C LCD дэлгэц болгон хөрвүүлэх: spi lcd дэлгэцийг ашиглахад хэт олон холболт шаардлагатай бөгөөд үүнийг хийх нь үнэхээр хэцүү тул i2c lcd -ийг spi lcd болгон хөрвүүлэх модулийг оллоо
Arduino Nano ба I2C LCD бүхий хоёр DS18B20 температур мэдрэгч: 5 алхам
Arduino Nano ба I2C LCD бүхий хоёр DS18B20 температур мэдрэгч: Өнөөдөр би танд Arduino Nano Clone болон I2C LCD ашиглан DS18B20 гэсэн хоёр температур мэдрэгчийг хэрхэн хийхийг харуулахыг хүсч байна. I2C дургүй болсон. Би Arduino IDE 1.8.8 ашигладаг // Pouziv