Lær Raspberry Pi Pico å telle med en skjerm med syv segmenter

Lær Raspberry Pi Pico å telle med en skjerm med syv segmenter
Lesere som deg er med på å støtte MUO. Når du foretar et kjøp ved å bruke lenker på nettstedet vårt, kan vi tjene en tilknyttet provisjon. Les mer.

Det rimelige Raspberry Pi Pico-mikrokontrollerkortet tilbyr stor fleksibilitet for entusiaster til å utforske prosjekter for å øke sin tekniske kunnskap. Å lære det grunnleggende vil gi deg en solid kunnskapsbase for å jobbe trygt mot mer komplekse oppgaver.





Her skal vi utforske hvordan du kan kontrollere hver del av en syv-segments skjerm med en Raspberry Pi Pico og litt MicroPython-kode.





Hva trenger du?

Følgende elementer er inkludert i Kitronik Inventor's Kit for Raspberry Pi Pico . Likevel, hvis du er en hamster av elektronikk, er det ganske sannsynlig at du vil ha disse delene gjemt hjemme.





  • Syv-segment display
  • 7x 220Ω motstander
  • 9x hann-hann jumper ledninger
  • Brødbrett

Du trenger en Pico med GPIO-pinnehoder festet. Hvis du ikke allerede har gjort det, finn ut hvordan lodde header pins på en Raspberry Pi Pico .

Koble til maskinvaren

Kablingen for dette prosjektet er ikke komplisert; men med en håndfull motstander og jumperledninger i spill, vil dette kreve at du er på vakt for å sikre at alle brikkene er koblet til de riktige pinnene. Med det i tankene, la oss dykke inn i hvordan komponentene kobles mellom Raspberry Pi Pico og brødbrettet.



Kjør først en ledning fra en GND-pinne på Pico og plasser den andre enden i et hvilket som helst hull langs den negative breadboard-skinnen. De resterende kontaktene vil kobles til deler av breadboard rundt syv-segment display og motstander.

Jumper ledninger som føres fra GP16 , GP17 , og GP18 kobles til høyre side av skjermen og på linje med motstandene som sitter over skjermen.





På venstre side av displayet med syv segmenter må du kjøre den andre siden av ledningene som går fra GP15 , GP14 , GP13 , og GP12 til breadboard-tilkoblinger. Igjen, sørg for å koble ledningene i tråd med de riktige motstandene.

Det er en mindre jumper-tråd som må kobles langs den negative skinnen på brødbrettet. Den andre siden av denne forbindelsen vil gå mellom to motstander rett over skjermen. Sørg for å bekrefte at motstandsbåndene dine er røde, røde, brune og gull (for 220 ohm).





  elektroniske ledninger og deler som kobler mikrokontrolleren til breadboard

Har du problemer? Vurder å teste motstandene dine (spesielt hvis du har samlet elektronikkkomponenter i noen tid). Se vår guide på hvordan måle motstand med et multimeter for testtrinn.

Utforsker koden

Du vil ha en mulighet til å kontrollere hvert av de syv segmentene på skjermen ved hjelp av Thonny IDE. Sjekk ut vår guide for hvordan komme i gang med MicroPython på Raspberry Pi Pico for flere detaljer. Du kan laste ned 7segment.py kodefil fra MUO GitHub-depot .

En avgjørende del av koden er å tilordne de syv segmentene av skjermen til Pico-pinner GP12 gjennom GP18 , Hver med et variabelnavn ( segA til ffG ).

 segA = machine.Pin(18, machine.Pin.OUT) 
segB = machine.Pin(17, machine.Pin.OUT)
segC = machine.Pin(16, machine.Pin.OUT)
segD = machine.Pin(15, machine.Pin.OUT)
segE = machine.Pin(14, machine.Pin.OUT)
segF = machine.Pin(13, machine.Pin.OUT)
segG = machine.Pin(12, machine.Pin.OUT)

En liste, kalt pinner , holder disse variablene i samme rekkefølge. En nestet liste (også kalt 'liste over lister'), kalt tall , brukes deretter for å bestemme hvilke segmenter som skal lyse opp for hvert siffer; hver linje representerer et siffer fra 0 til 9, pluss en siste linje uten siffer. En '1' i listen indikerer at segmentet skal lyse; en '0' betyr at den ikke skal.

hvordan få flere Google -undersøkelser

De displaynummer funksjonen vil bli kalt opp med hvilket siffer som skal vises; for å vise det sifferet, den relevante linjen i tall liste brukes til å bestemme hvilke segmenter som skal tennes, ved å utløse de tilordnede GPIO-utgangspinnene.

Til slutt, a mens sant: uendelig loop vil kalle displayNumber-funksjonen gjentatte ganger for å telle fra 0 til 9 og deretter i omvendt rekkefølge. Når dette er fullført, vil displayet tømmes for en kort periode. Derfra vil prosessen begynne på nytt.

 while True: 
    for i in range(10):
        displayNumber(i)
        time.sleep_ms(600)
    
    for i in range (9, -1, -1):
        displayNumber(i)
        time.sleep_ms(600)

Hvis du ikke allerede har gjettet, vil ikke denne sløyfen stoppe. Koden vil instruere din Raspberry Pi Pico til å telle i en endeløs løkke. Så når nyheten i prestasjonen din har gått ut, må du trykke på stoppknappen i Thonny.

Hva vil du eksperimentere med neste gang?

Inspirerer dette prosjektet deg til å lage en digital klokke ved hjelp av Raspberry Pi Pico og ekstra syv-segmentskjermer? Enda bedre, gå stort med en Raspberry Pi-datamaskin i full størrelse og konfigurer en cron-planlegger til å spille en sang hver morgen klokken 7:00. En snooze-knapp kan legges til ved å stoppe musikken og deretter spille av lyden ti minutter senere. Når du trykker på knappen tre ganger, kan musikken settes til å slå av til i morgen.