Мазмуну:

LCD COG Arduino Nano үчүн: 3 кадам
LCD COG Arduino Nano үчүн: 3 кадам

Video: LCD COG Arduino Nano үчүн: 3 кадам

Video: LCD COG Arduino Nano үчүн: 3 кадам
Video: Тест st7567s lcd #arduinoproject 2024, Июль
Anonim
LCD COG Arduino Nano үчүн
LCD COG Arduino Nano үчүн

Бул Нускамада COG LCDди Arduino Nano менен кантип колдонууну сүрөттөйт.

COG ЖК дисплейлери арзан, бирок интерфейси бир аз кыйыныраак. (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мм) бар, бул ЖКнын куйругу менен бирдей.

Ошондой эле сизге кээ бир баштыктар керек болот. Мен Arduino же башка модулду сатып алганда, ал керектүү нерселерден көбүрөөк баштыктар менен келет, андыктан сизде мурунтан эле бардыр. Болбосо, eBayден "2.54mm header pins" издеңиз.

Баштыктын 14 -ширеткичи адаптерге кадалат. Аларды аягына чейин түртпөңүз - адаптердин арткы бөлүгү жалпак болсо, жакшы болот. Тешиктерди тешиктерге өтө алыс түртүп жибербөө үчүн аны отургучка тегиз кой. Пиндер тактанын SOP тарабында (б.а. чоңураак чип) экенин текшериңиз.

Куйруктун жаздыктары кандайдыр бир терезеде. Алардын эки жагын калай менен ширетүү. Адаптердин төшөктөрүн калай. Адаптердин куйругун кармаңыз, андан кийин ар бир блокту ширетүүчү темир менен кармаңыз (сизге абдан жакшы уч керек болот).

Штаммды басаңдатуу үчүн адаптердин тешиктеринен бир нече жип байлаңыз. (Мен "трансформатор зымын" колдондум).

Эгерде сиз аны туура эмес жолдо эритип койсоңуз, куйругун сатууга аракет кылбаңыз. Пиндерди бирден алып чыгып, тактанын башка жагына жылдырыңыз. (Ооба, мен бул катаны кетирип, куйругун кайра лактадым, ошондуктан бул сүрөттө бир аз баш аламандык.)

2 -кадам: Arduino менен туташуу

Arduino менен туташуу
Arduino менен туташуу
Arduino менен туташуу
Arduino менен туташуу

Бул бөлүм Arduino Nano менен кантип туташууну түшүндүрөт. Бул Mini же Uno үчүн абдан окшош болот, бирок мен азырынча аракет кыла элекмин.

Райондук схеманы изилдөө.

USB портуна туташкан Arduino Nano 5В иштейт. ЖК 3.3V чыңалууда. Ошентип, сиз Нанонун 3V3 пининен ЖКны кубаттап, 5Vдан 3.3Vга чейин ар бир контролдук пиндеги чыңалууну азайтууңуз керек.

ЖКнын түйүнү:

  • 1 CS
  • 2 RST
  • 3 CD
  • 4
  • 5 CLK
  • 6 SDA
  • 7 3V3
  • 8 0V Gnd
  • 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-маалыматтар деп аталышы мүмкүн. CLK SCL же SPI-Clock болушу мүмкүн.)

VB0+ жана VB0- UC1701дин ички заряд насосу тарабынан колдонулат. Заряд насосу ЖКга керектүү так чыңалууларды жаратат. VB0+ менен VB0- ортосунда 100n конденсатор туташтырыңыз. UC1701 документтери 2uF сунуштайт, бирок мен бул өзгөчө ЖК менен айырмачылыкты көрө алган жокмун.

Эгерде сиздин ЖКда VB1+ жана VB1 пиндери болсо, анда алардын ортосуна 100н конденсатор туташтырыңыз. (Эгерде сиздин ЖКда VLCD пин бар болсо, анда VLCD менен Gndдин ортосунда 100n конденсаторду туташтырып көрүңүз. Бул менин ЖК менен эч кандай айырмасы жок болчу.)

LCDди Nanoго төмөнкүдөй туташтырыңыз:

  • 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 нано тарабынан чыгарылат жана ЖК үчүн жетиштүү токту камсыздай алат. (Дисплей 250uA тегерегинде тартат.)

5V да нано тарабынан чыгарылат жана арткы жарыкты иштетүү үчүн колдонулушу мүмкүн. 100 Омдук резистор менен жарыкты жарыкка чектөө.

Эгерде сиз нанодо түйүндөр жетишпей жатса, анда RSTти 3V3кө туташтырсаңыз болот - анда D6ны башка нерсе үчүн колдонсоңуз болот. U1701ди программалык камсыздоого SPIдеги буйрук менен баштапкы абалга келтирсе болот. Мен муну менен эч качан кыйынчылык көргөн эмесмин, бирок эгер сиз ызы -чуу болгон чөйрөдө өзүңүздүн схемаңызды колдонуп жатсаңыз, анда аппараттык абалга келтирүүнү колдонуу жакшыраак болушу мүмкүн.

3 -кадам: Программалык камсыздоо

Программалык камсыздоо
Программалык камсыздоо

Теория боюнча, UC1701ди U8g2 китепканасынан (же Ucglib же башка китепканалардан) айдай аласыз. Мен аны иштетүү үчүн бир нече күн күрөштүм, бирок ишке ашпай калды. U8g2 китепканасы - бул желмогуз, анткени ал көптөгөн түрдүү чиптерди айдай алат жана кодду ээрчүү абдан кыйын. Ошентип, мен таштап, өзүмдүн кичинекей китепканамды жаздым. Бул Arduinoдо бир топ аз орунду ээлейт (болжол менен 3400 байт плюс шрифт).

Сиз бул жерден менин китепканамды жүктөп алсаңыз болот (Бул беттеги Жүктөө баскычы). Үлгү эскиз жана колдонуучунун көрсөтмөсү камтылган. Https://www.arduino.cc/en/Guide/Libraries веб баракчасы китепкананы кантип импорттоону сүрөттөйт; ".zip китепканасын импорттоо" бөлүмүнө өтүңүз.

ЖК менен баштаңыз

UC1701Begin ();

UC1701Begin төөнөгүчтөрдү өзгөртүү же RST төөнөгүчүнө көңүл бурбоо үчүн параметрлерди кабыл ала алат. Китепкана SPI жабдыктарын гана колдонот (SPI программасы каралган эмес). Дисплей x жана y огунда оодарылышы мүмкүн. Эгерде сиз ЖКны башка багытта орноткуңуз келсе, бул пайдалуу.

U8g2 китепканасынан бир нече процедуралар кайталанган:

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

Кээ бир процедуралар бир аз башкача:

  • жараксыз DrawChar (uint8_t c, сөздүн ариби);
  • жараксыз DrawString (char * s, шрифт сөзү);
  • жараксыз DrawInt (int i, word Font);

String тартуу процедуралары Ариптин индексинен өтөт. Шрифттер Arduino флэш -эсинде жарыяланган, андыктан алар кымбат SRAMди ээлешпейт. Үч шрифт берилет (кичине, орто жана чоң). Алар флеш -эстутумду колдонсоңуз гана байланышкан жана ээлейт (ар бири 500дөн 2000 байтка чейин).

"Түс" U8g2 китепканасынан башкача иштетилет. ЖК тазаланганда анын караңгы фону болот. Эгерде MakeMark (глобалдык өзгөрмө) чын болсо, сүрөт тартуу ак түстө жүргүзүлөт. MakeMark жалган болсо, чийме караңгыда жасалат.

Кээ бир процедуралар UC1701 үчүн уникалдуу:

SetInverted ак-кара эмес, ак-кара түстө тартат.

жараксыз SetInverted (bool inv);

UC1701дин жарыктыгы жана контрастын төмөнкүдөй белгилейт:

  • жараксыз SetContrast (uint8_t мааниси); // сунушталган 14
  • жараксыз SetResistor (uint8_t мааниси); // сунушталган 7

Алар абдан канааттандырарлык эмес жол менен чогуу иштешет.

SetEnabled ЖКны өчүрөт:

void SetEnabled (bool en);

Уктап жатканда дисплей 4uA алат. Сиз ошондой эле арткы жарыкты өчүрүшүңүз керек - аны нанонун пининен кууп салыңыз. Кайра иштетүүдөн кийин UC1701 баштапкы абалга келтирилет; дисплей тазаланат жана Контраст жана Резистор демейки маанилерине кайтарылат.

Ошентип, жыйынтыктап айтканда, COG дисплейлери арзан жана татыктуу өлчөм. Алар Arduino менен туташуу оңой.

Сунушталууда: