Мазмуну:
Video: LCD COG Arduino Nano үчүн: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул Нускамада 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 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 менен туташуу оңой.
Сунушталууда:
Чоңойтууну башкаруу үчүн гитара баатырдык гитараны колдонуу (Windows үчүн гана): 9 кадам
Масштабды көзөмөлдөө үчүн гитара баатырдык гитараны колдонуу (Windows үчүн гана): Биз глобалдык пандемиянын ортосунда турганыбыз үчүн, көбүбүз үйдү тазалап, Zoomдагы жолугушууларга катышып жатабыз. Бир аз убакыттан кийин, бул абдан жумшак жана кызыксыз болуп калышы мүмкүн. Үйүмдү тазалап жатып, ыргытып жиберилген эски гитара баатырын таптым
Көрүү мүмкүнчүлүгү чектелген адамдар үчүн Arduino жана 3D басып чыгаруу үчүн жакшыртылган автобус тажрыйбасы: 7 кадам
Көрүү мүмкүнчүлүгү чектелген адамдар үчүн жакшыртылган автобус тажрыйбасы Arduino жана 3D басып чыгаруу: Көрүүсү начар адамдар үчүн коомдук транспортту кантип жөнөкөйлөтсө болот? көрүүсү начар адамдар. Т
Arduino үчүн 6 баскыч үчүн 1 аналогдук киргизүүнү колдонуңуз: 6 кадам
Arduino үчүн 6 баскыч үчүн 1 аналогдук кирүүнү колдонуңуз: Мен Arduino үчүн кантип көбүрөөк санариптик кирүүлөрдү алсам болот деп көп ойлондум. Жакында мен бир нече санариптик кирүүлөрдү киргизүү үчүн аналогдук кирүүлөрдүн бирин колдоно алам деп ойлодум. Мен тез издеп, адамдардын кайда экенин таптым
Сүйүү оюнчулар үчүн, Arduino долбоору бойдоктор үчүн жасалган: 5 кадам
Сүйүү оюнчулар үчүн, Arduino долбоору бойдоктор үчүн жасалган: Бул көрсөтмө менин " Сүйүү оюнчулар үчүн " аттуу Arduino долбоорум жөнүндө. күлкү жана көңүл ачуу куралы катары башталган. Бул идеалдуу же эч нерсе эмес, бирок ал иштейт
Arduino үчүн L298 2Amp Motor Driver Shield үчүн окуу куралы: 6 кадам
Arduino үчүн L298 2Amp Motor Driver Shield үчүн үйрөткүч: Description L298 2Amp Motor Driver Shield Arduino үчүн L298 мотор драйверинин интегралдык схемасына, толук көпүрө мотор айдоочусуна негизделген. Бул эки өзүнчө 2A DC моторун же 1 2А кадам моторун айдай алат. Мотордун ылдамдыгын жана багыттарын өзүнчө башкарса болот