Placa de microcontroler Raspberry Pi Pico la preț redus oferă pasionaților o mare flexibilitate de a explora proiecte pentru a-și spori cunoștințele tehnice. Învățarea elementelor de bază vă va oferi o bază solidă de cunoștințe pentru a lucra cu încredere la sarcini mai complexe.
Aici vom explora cum puteți controla fiecare parte a unui afișaj cu șapte segmente cu un Raspberry Pi Pico și un cod MicroPython.
De ce vei avea nevoie?
Următoarele elemente sunt incluse cu Kit Kitronik Inventor pentru Raspberry Pi Pico. Cu toate acestea, dacă sunteți un acumulator de electronice, este foarte probabil să aveți aceste piese ascunse acasă.
- Afișaj cu șapte segmente
- 7x rezistențe de 220Ω
- 9x fire jumper tată-mascul
- Breadboard
Veți avea nevoie de un Pico cu anteturi de pin GPIO atașate. Dacă nu ai făcut-o deja, află cum să lipiți pinii de antet pe un Raspberry Pi Pico.
Conectarea hardware-ului
Cablajul pentru acest proiect nu este complex; cu toate acestea, cu o mână de rezistențe și fire jumper în joc, acest lucru va necesita să fiți atent pentru a vă asigura că toate piesele sunt conectate la pinii corecti. Având în vedere acest lucru, haideți să vedem cum sunt conectate componentele între Raspberry Pi Pico și placa.
Mai întâi, treceți un fir de la un pin GND de pe Pico și plasați celălalt capăt în orice orificiu de-a lungul șinei negative a plăcii. Conectorii rămași se vor conecta la părți ale panoului din jurul afișajului și rezistențelor cu șapte segmente.
Firele jumper sunt direcționate de la GP16, GP17, și GP18 se va conecta la partea dreaptă a afișajului și în linie cu rezistențele aflate deasupra afișajului.
În partea stângă a afișajului cu șapte segmente, va trebui să rulați cealaltă parte a firelor care merg de la GP15, GP14, GP13, și GP12 la conexiunile panoului. Din nou, asigurați-vă că conectați firele în linie cu rezistențele corecte.
Există un fir jumper mai mic care va trebui conectat de-a lungul șinei negative a plăcii. Cealaltă parte a acestei conexiuni va merge între două rezistențe chiar deasupra afișajului. Asigurați-vă că confirmați că benzile dumneavoastră de rezistență sunt roșii, roșii, maro și aurii (pentru 220 ohmi).
Întâmpinați probleme? Luați în considerare testarea rezistențelor (mai ales dacă ați acumulat componente electronice de ceva timp). Consultați ghidul nostru pe Cum se măsoară rezistența cu un multimetru pentru pașii de testare.
Explorarea Codului
Veți avea ocazia să controlați fiecare dintre cele șapte segmente ale afișajului folosind Thonny IDE. Consultați ghidul nostru despre cum începeți cu MicroPython pe Raspberry Pi Pico pentru mai multe detalii. Puteți descărca 7segment.py fișier de cod din Depozitul MUO GitHub.
O parte esențială a codului este alocarea celor șapte segmente ale afișajului către pini Pico GP12 prin GP18, fiecare cu un nume de variabilă (segA la segG).
segA = mașină. Pin (18, mașină. Pin. OUT)
segB = mașină. Pin (17, mașină. Pin. OUT)
segC = mașină. Pin (16, mașină. Pin. OUT)
segD = mașină. Pin (15, mașină. Pin. OUT)
segE = mașină. Pin (14, mașină. Pin. OUT)
segF = mașină. Pin (13, mașină. Pin. OUT)
segG = mașină. Pin (12, mașină. Pin. OUT)
O listă, numită ace, deține aceste variabile în aceeași ordine. O listă imbricată (alias „listă de liste”), numită numere, este apoi folosit pentru a determina ce segmente ar trebui să se aprindă pentru fiecare cifră; fiecare linie reprezintă o cifră de la 0 la 9, plus o linie finală pentru nicio cifră. Un „1” în listă indică faptul că segmentul ar trebui să fie aprins; un „0” înseamnă că nu ar trebui.
The displayNumber va fi apelată funcția cu care cifră trebuie afișată; pentru a arăta acea cifră, linia relevantă a numere list este utilizat pentru a determina ce segmente ar trebui aprinse, prin declanșarea pinilor de ieșire GPIO alocați.
În cele din urmă, a în timp ce este adevărat: infiniteloop va apela funcția displayNumber în mod repetat pentru a număra de la 0 la 9 și apoi în ordine inversă. Când aceasta este finalizată, afișajul va fi șters pentru o perioadă scurtă de timp. De acolo, procesul va începe din nou.
in timp ceAdevărat:
pentru i în intervalul (10):
displayNumber (i)
timp.sleep_ms(600)
pentru i în intervalul (9, -1, -1):
displayNumber (i)
timp.sleep_ms(600)
Dacă nu ați ghicit deja, această buclă nu se va opri. Codul vă va instrui Raspberry Pi Pico să numere într-o buclă nesfârșită. Așadar, când noutatea realizării tale s-a dispărut, va trebui să apeși butonul de oprire din Thonny.
Cu ce veți experimenta în continuare?
Vă inspiră acest proiect să creați un ceas digital folosind Raspberry Pi Pico și afișaje suplimentare cu șapte segmente? Mai bine, mergeți la mare cu un computer Raspberry Pi de dimensiune completă și configurați un programator cron pentru a reda o melodie în fiecare dimineață la 7:00. Un buton de amânare poate fi adăugat prin oprirea muzicii și apoi redarea sunetului zece minute mai târziu. Când apăsați butonul de trei ori, muzica poate fi setată să se oprească până mâine.