Talaan ng mga Nilalaman:

1602 LCD Keypad Shield Module Sa I2C Backpack: 6 na Hakbang
1602 LCD Keypad Shield Module Sa I2C Backpack: 6 na Hakbang

Video: 1602 LCD Keypad Shield Module Sa I2C Backpack: 6 na Hakbang

Video: 1602 LCD Keypad Shield Module Sa I2C Backpack: 6 na Hakbang
Video: How to use LCD LCD1602 with I2C module for Arduino - Robojax 2024, Nobyembre
Anonim
1602 LCD Keypad Shield Module Sa I2C Backpack
1602 LCD Keypad Shield Module Sa I2C Backpack

Bilang bahagi ng isang mas malaking proyekto, nais kong magkaroon ng isang LCD display at isang keypad para sa pag-navigate ng ilang simpleng mga menu. Gumagamit ako ng maraming mga I / O port sa Arduino para sa iba pang mga trabaho, kaya nais ko ang isang interface ng I2C para sa LCD. Kaya't bumili ako ng ilang hardware, na binubuo ng isang 1602 LCD Keypad na module ng kalasag mula sa DFRobot at isang hindi nagpapakilalang serial module ng I2C para sa mga LCD. Gusto kong gamitin ang mga ito sa isang Arduino Nano. Pagkatapos ay nalaman kong may ilang mga hamon upang gumana ang mga sangkap na ito - ngunit posible. Kaya nais kong ibahagi ang aking karanasan at baka makatulong sa iba.

Ang larawan na ito ay mula sa nagtatrabaho na breadboard, na maaaring magpakita ng mga mensahe sa LCD at makilala ang mga pangunahing pagpindot. Ang LCD ay kinokontrol sa pamamagitan ng interface ng I2C, kabilang ang LCD backlight. Ang mga pangunahing pagpindot ay natanggap ng Arduino sa pin A0 (maaari itong maging anuman sa mga analogue pin, maliban sa A4 at A5 na nakatali para sa interface ng I2C).

Hakbang 1: Mga Paglalarawan ng Mga Bahagi - Module ng LCD Keypad Shield

Mga Paglalarawan ng Mga Bahagi - Module ng LCD Keypad Shield
Mga Paglalarawan ng Mga Bahagi - Module ng LCD Keypad Shield

Ang module ng LCD Keypad kalasag ay binubuo ng isang karaniwang ginagamit na 1602 LCD na naka-mount sa tuktok ng isang circuit board na humahawak ng mga susi, at kung saan kumukuha ng isang subset ng mga koneksyon sa LCD at ginawang magagamit ito sa mga header pin sa ilalim ng circuit board. Naiintindihan ko ang board na ito ay inilaan upang mai-mount sa tuktok ng isang Arduino Uno o katulad at nagbibigay ng tamang layout ng pin para gumana ito sa kapaligiran na iyon. Binili ko ang modyul na ito sa Ebay mula sa isang vendor sa Tsina. Ang mga header pin sa ibabang (keypad) na bahagi ng board ay kadalasang may label ngunit ang mga pin sa itaas na bahagi, na kung saan ay ang LCD interface, ay hindi naka-label. Gayunpaman ang mga pin sa LCD mismo ay may label.

Hakbang 2: Mga Paglalarawan ng Mga Bahagi - I2C Serial Module

Mga Paglalarawan ng Mga Bahagi - I2C Serial Module
Mga Paglalarawan ng Mga Bahagi - I2C Serial Module

Ang serial module ay mayroong karaniwang 4-pin header para sa I2C, at isang hanay ng mga unlabelled na header pin na nauunawaan kong inilaan na mag-plug nang direkta sa ilalim ng module ng LCD. Sa pamamagitan ng pag-aaral ng mga label sa LCD, nakilala ko ang mga pagpapaandar ng mga pin sa serial module.

Ang modyul na ito ay batay sa IC PCF8574T na tinatapos ang I2C protocol, may 3 mga pin para sa address control (20 hanggang 27) at mayroong 8 digital input / output pin na P0 hanggang P7. Ayon sa sheet ng data ng PCF8574T, ang bawat I / O pin ay may isang FET upang hilahin ito sa lupa para sa LOW state, at maaaring lumubog ng hindi bababa sa 20ma. Sa Mataas na estado, mayroon itong pansamantalang aktibong pull-up at pagkatapos ay isang patuloy na kasalukuyang pull-up na halos 0.1 mA.

Sa modyul na ito, lahat ng mga digital na I / O na pin, maliban sa P3, ay inilalabas lamang sa mga header pin (sa kanan sa larawan). Sa kaso ng P3, nakakonekta ito sa base ng isang transistor (nakikita sa larawan sa kanang tuktok na lugar sa ilalim lamang ng label na "LED"). Ang emitter ng transistor na iyon ay konektado sa Vss (ground) at ang kolektor ay konektado sa header pin 16, kung saan maaari itong magamit upang makontrol ang LCD backlight. Dahil sa transistor, ang estado ng lohika ay nabaligtad na may kaugnayan sa ipinapalagay sa library ng software. Iyon ay, ang LCD backlight ay naka-ON kapag ang P3 pin ay Mababa, at OFF kapag ang P3 pin ay Mataas.

Ang label sa transistor ay nagsasabing L6 na ayon sa aking pagsasaliksik ay marahil ay ginagawa itong isang MMBC1623L6 na mayroong isang minimum na kasalukuyang nakuha na 200. Sa 0.1 mA ng base kasalukuyang, dapat itong mapanatili ang isang mababang kondisyon sa kolektor nito (module Pin 16) na may hindi bababa sa 20mA kasalukuyang kolektor.

Bilang karagdagan ang modyul na ito ay may 10K potentiometer na konektado sa pagitan ng +5 at Ground, na ang variable lead ay inilabas upang i-pin ang 3 (pangatlo mula sa ibaba sa larawan). Kapag nakakonekta nang direkta sa LCD, ang palayok na ito ay makokontrol ang pagkakaiba ng LCD. Gayunpaman, ang pagpapaandar na iyon ay ibinibigay ng isang magkakahiwalay na katulad na palayok sa LCD na kalasag, kaya't ang palayok na ito sa serial module ay walang pagpapaandar.

Hindi ko mahanap ang anumang koneksyon sa INT pin ng PCF8574T.

UPDATE 22 Agosto 2019

Tulad ng nabanggit sa itaas, ang PCF8574 ay may 3 address control pins. Lumilitaw na ilalabas ang mga ito sa mga pad sa backpack board kung saan may label silang A0, A1 at A2. Makikita sila sa litrato. Hindi ko ito nasubok, ngunit tila halos natitiyak na sa pamamagitan ng pagdidikit ng isa o higit pa sa mga pin na ito sa mga katabing pad, ang I2C address ay maaaring makontrol sa saklaw mula 20 hanggang 27. Bukod dito, mayroong isang pangalawang halos magkaparehong aparato, ang PCF8574A na may magkaparehong pagpapaandar sa PCF8574 ngunit sumasaklaw sa saklaw ng address mula 0x38 hanggang 0x3F.

Ang address na talagang ginagamit ng iyong aparato ay maaaring suriin sa isang I2CScanner. Mayroong maraming mga simpleng I2C scanner na magagamit mula sa iba't ibang mga mapagkukunan. Ang isang ito sa https://github.com/farmerkeith/I2CScanner ay kinikilala rin ang ilan sa mga nahanap na aparato.

Hakbang 3: Mga Koneksyon

Mga koneksyon
Mga koneksyon

Salamat sa ChaitanyaM17 na nagbigay ng Fritzing diagram na naglalarawan sa mga koneksyon, na inilarawan sa ibaba.

Lakas:

Ang module ng LCD ay may isang pin sa ibabang bahagi na may label na "5.0V". Sa kanan, katabi nito ay dalawang mga hindi naka-label na mga pin na parehong lupa.

Hawak ang serial module na may interface ng I2C sa kaliwang kamay, may 16 na pin sa ibabang gilid. Ang una sa mga ito ay ground, at ang pangalawa sa mga ito ay + 5v. Ang isa pang pagpipilian ay ang paggamit ng mas mababang dalawang mga pin sa interface ng I2C para sa lakas, ngunit nakita kong mas maginhawa itong gamitin ang mga pin tulad ng inilarawan sa itaas.

I2C interface. Sa serial module, ang tuktok na pin ay SCL (orasan) at pupunta ito sa Arduino A5. Ang pangalawang pin down ay SDA (data) at pupunta ito sa Arduino A4.

LCD interface ng pag-print. Mayroong 6 na koneksyon sa pagitan ng serial module at ang LCD Keypad na kalasag, lahat ng mga ito sa pagitan ng mga pin na walang mga label. Kilalanin ko ang mga ito sa module ng LCD sa pamamagitan ng pagbibilang mula Kanan hanggang Kaliwa, na may unang pin bilang 1. Mayroong 2 bloke ng 8, kaya't mula 1 hanggang 16. Kinikilala ko sila sa serial module ng I2C sa pamamagitan ng pagbibilang mula Kaliwa hanggang Tama, mayroon ding 16 sa mga ito. Bilang karagdagan binibigyan ko ang bawat kawad ng isang label, na kung saan ay ang katumbas na pin sa Arduino na karaniwang nauugnay sa pagpapaandar na iyon, sa kaso ng isang direktang koneksyon nang walang serial module.

Kaya ang 6 na koneksyon sa data ay:

Katumbas ng Arduino // Serial module pin // LCD Keypad module pin

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

LCD control backlight: Gumagamit ito ng isa pang koneksyon:

Katumbas ng Arduino // Serial module pin // LCD Keypad module pin

D10 // 16 // 11

Keypad interface: Gumagamit ito ng isang solong kawad mula sa pin ng module ng LCD sa ibabang bahagi na may label na "A0", upang i-pin ang A0 sa Arduino. Hindi bababa sa iyon ay medyo madali!

Hakbang 4: Ginagawa ang RST Key na Magagamit na Katulad sa Ibang 5 Mga Susi

Ang RST ay maaaring konektado nang direkta sa input ng RESTART ng Arduino Nano.

Gayunpaman kung nais mong magamit ang RST key sa software para sa iba pang mga bagay, magagawa ito sa pamamagitan ng pagkonekta ng isang 15K risistor sa pagitan ng RST pin at ng A0 pin sa ibabang bahagi ng LCD keypad na kalasag.

Gumagawa ito tulad ng sumusunod: Mayroong isang resistor ng 2K sa pagitan ng + 5V at ang Tamang susi. Pagkatapos ng isang kadena ng mga progresibong mas malaking resistors para sa bawat isa pang mga key (330R sa UP key, 620R sa Down key, 1K sa LEFT key, at 3K3 sa SELECT key. Ang lahat ng mga key (kasama ang RST key) ay kumonekta sa ground. Kapag nakakonekta sa isang 10 bit A / D converter (tulad ng para sa Arduino Nano A0) naghahatid sila ng humigit-kumulang na mga sumusunod na halaga:

Kanan = 0; Pataas = 100; Pababa = 260; Kaliwa = 410; Piliin ang = 640.

Gamit ang 15 k resistor sa RST, naghahatid ito ng halos 850.

Gagamit ang software ng mga halaga sa paligid ng mga mid point sa pagitan ng mga halagang ito upang magpasya kung aling key ang na-press.

Hakbang 5: Software

Ang kapaki-pakinabang na software ay syempre isang ehersisyo para sa mambabasa. Gayunpaman upang makapagsimula ka, maaari kang tumingin sa aking test software. Ginamit ko ang library ng NewLiquidCrystal, na naglalaman ng suporta para sa interface ng I2C. Gumana lang ang lahat, sa sandaling na-install ko nang tama ang mga aklatan.

Ang pangunahing punto ay upang baligtarin ang polarity ng mga backlight OFF at ON na utos (dahil sa transistor sa module na I2C tulad ng ipinaliwanag sa seksyon ng Paglalarawan ng Mga Bahagi).

UPDATE 22 Agosto 2019

Kung mayroon kang mga problema sa LCD display na hindi gumagana, mangyaring suriin ang I2C address ng iyong serial backpack gamit ang isang I2C scanner. Ang isang naaangkop na scanner ay nakakabit. Pagkatapos kung kinakailangan ayusin ang unang parameter sa pahayag

LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);

Hakbang 6: Balik-aral at Talakayan

Tulad ng nakikita mong nakuha ko ang mga pangunahing pag-andar na gumagana.

Ang aking susunod na hangarin ay ilagay ito sa isang kahon ng proyekto bilang bahagi ng isa pang proyekto. Gayunpaman pagkatapos ng paglabas sa landas na ito natutunan ko na may isa pang kahirapan na hindi ko inaasahan.

Ang hirap ay ang LCD Keypad module na ito ay hindi naka-set up upang mai-install sa isang kahon. Anumang uri ng kahon. Ang mga pindutan ng 6 na mga susi ay nasa ibaba ng antas ng screen ng LCD, upang kung ang module ay naka-mount sa isang kahon (hal. Sa talukap ng mata) na may tuktok ng LCD circuit board na mapula ang ilalim ng takip, ang mga tuktok ng mga susi ay tungkol sa 7mm sa ibaba ng tuktok ng talukap ng mata.

Ang mga posibleng solusyon ay:

a) Tiisin mo ito. Mag-drill ng mga butas sa takip at gumamit ng isang tool (hal. Isang putol na karayom sa pagniniting ng angkop na lapad) upang pindutin ang mga pindutan.

b) Tanggalin ang LCD mula sa module circuit board at magsagawa ng operasyon sa keypad upang ang dalawang bahagi ay maaaring maayos sa takip ng kahon ng proyekto nang nakapag-iisa (sa palagay ko maaaring may problema pa rin sa mga pindutan na masyadong maikli)

c) alisin ang mayroon nang mga pindutan at palitan ang mga ito ng mas matangkad na mga pindutan. Ang mga bagong pindutan ay dapat na tungkol sa 13 mm ang taas upang maaari silang patakbuhin sa pamamagitan ng talukap ng kahon ng proyekto). Ang mga switch ng pindutan na kapalit ay madaling magagamit sa isang saklaw ng taas, kabilang ang 13mm.

d) itapon ang module ng LCD keypad na kalasag at gumamit ng magkakahiwalay na mga yunit ng LCD at keypad (ibig sabihin magsimula muli). Mayroong isang malawak na hanay ng mga yunit ng keypad na magagamit, subalit hindi ko pa nakikita ang isa na may parehong layout na 6-key tulad ng sa modyul na ito (ie Piliin, Kaliwa, Pataas, Pababa, Kanan, I-restart). Maaaring hindi ito isang malaking isyu, ngunit ang isa sa mga kadahilanang nagsimula ako sa modyul na ito ay naisip ko ang key layout na ito ang gusto ko.

Nagpaplano akong pumunta sa solusyon c) sa itaas, at tingnan kung paano ako pupunta.

Isa pang snippet ng impormasyon na maaaring maging interesado:

Gamit ang backlight ON, ang kasalukuyang pagkonsumo ng proyektong ito ay: Arduino Nano 21.5 ma; Serial module 3.6 ma; LCD module 27.5 mA; Kabuuang 52 mA.

Gamit ang backlight OFF, ang kasalukuyang pagkonsumo ng proyektong ito ay: Arduino Nano 21.5 ma; Serial module 4.6 ma; LCD module 9.8 mA; Kabuuang 36 mA.

Inirerekumendang: