Lær din Raspberry Pi Pico at tælle med en skærm med syv segmenter

Lær din Raspberry Pi Pico at tælle med en skærm med syv segmenter
Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Det billige Raspberry Pi Pico-mikrocontrollerkort tilbyder stor fleksibilitet for entusiaster til at udforske projekter for at øge deres tekniske viden. At lære det grundlæggende vil give dig en solid videnbase, så du trygt kan arbejde hen imod mere komplekse opgaver.





Her vil vi undersøge, hvordan du kan styre hver del af en syv-segments skærm med en Raspberry Pi Pico og noget MicroPython-kode.





Hvad skal du bruge?

Følgende elementer er inkluderet i Kitronik Inventor's Kit til Raspberry Pi Pico . Men hvis du er en hamster af elektronik, er det ret sandsynligt, at du vil have disse dele gemt væk derhjemme.





  • Syv-segment display
  • 7x 220Ω modstande
  • 9x han-han jumper ledninger
  • Brødbræt

Du skal bruge en Pico med GPIO pin-headers påsat. Hvis du ikke allerede har gjort det, så find ud af det hvordan man lodder header-stifter på en Raspberry Pi Pico .

Tilslutning af hardware

Ledningsføringen til dette projekt er ikke kompleks; men med en håndfuld modstande og jumper ledninger i spil, vil dette kræve, at du forbliver opmærksom for at sikre, at alle brikker er forbundet til de korrekte ben. Med det i tankerne, lad os dykke ned i, hvordan komponenterne forbindes mellem din Raspberry Pi Pico og breadboard.



hvordan man tilføjer omrids til tekst i photoshop

Før først en ledning fra en GND-stift på Pico'en og placer den anden ende i et hvilket som helst hul langs den negative breadboard-skinne. De resterende stik forbindes til dele af brødbrættet omkring displayet med syv segmenter og modstande.

hvordan man retter en død pixel

Jumper ledninger føres fra GP16 , GP17 , og GP18 vil forbinde til højre side af skærmen og på linje med modstandene, der sidder over skærmen.





På venstre side af displayet med syv segmenter skal du trække den anden side af ledningerne, der løber fra GP15 , GP14 , GP13 , og GP12 til breadboard-forbindelser. Igen skal du sørge for at forbinde ledningerne på linje med de korrekte modstande.

Der er en mindre jumper-tråd, der skal forbindes langs den negative skinne på brødbrættet. Den anden side af denne forbindelse vil gå mellem to modstande lige over skærmen. Sørg for at bekræfte, at dine modstandsbånd er røde, røde, brune og guld (for 220 ohm).





  elektroniske ledninger og stykker, der forbinder mikrocontroller til breadboard

Løber du ind i problemer? Overvej at teste dine modstande (især hvis du har akkumuleret elektronikkomponenter i nogen tid). Se vores guide på hvordan man måler modstand med et multimeter til testtrin.

Udforskning af koden

Du har mulighed for at styre hvert af de syv segmenter af skærmen ved hjælp af Thonny IDE. Tjek vores guide til hvordan kom i gang med MicroPython på Raspberry Pi Pico for flere detaljer. Du kan downloade 7segment.py kodefil fra MUO GitHub-depot .

En afgørende del af koden er at tildele de syv segmenter af skærmen til Pico-stifter GP12 igennem 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, kaldet stifter , holder disse variable i samme rækkefølge. En indlejret liste (alias 'liste over lister'), kaldet tal , bruges derefter til at bestemme, hvilke segmenter der skal lyse for hvert ciffer; hver linje repræsenterer et ciffer fra 0 til 9, plus en sidste linje uden ciffer. Et '1' på listen angiver, at segmentet skal være tændt; et '0' betyder, at det ikke skal.

hvor mange koncerter i en terabyte harddisk

Det displaynummer funktionen vil blive kaldt med hvilket ciffer der skal vises; for at vise det ciffer, den relevante linje i tal listen bruges til at bestemme, hvilke segmenter der skal tændes, ved at udløse de tildelte GPIO-udgangsben.

Til sidst, a mens det er sandt: uendelig loop vil kalde displayNumber-funktionen gentagne gange for at tælle fra 0 til 9 og derefter i omvendt rækkefølge. Når det er fuldført, vil displayet blive ryddet i en kort periode. Derfra begynder processen igen.

 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 gættet, vil denne løkke ikke stoppe. Koden vil instruere din Raspberry Pi Pico til at tælle i en endeløs løkke. Så når nyheden i din præstation er forsvundet, bliver du nødt til at trykke på stopknappen i Thonny.

Hvad vil du eksperimentere med næste gang?

Inspirerer dette projekt dig til at skabe et digitalt ur ved hjælp af din Raspberry Pi Pico og ekstra syv-segment-skærme? Endnu bedre, gå stort med en Raspberry Pi-computer i fuld størrelse og konfigurer en cron-planlægger til at afspille en sang hver morgen kl. 7:00. En snooze-knap kan tilføjes ved at stoppe musikken og derefter afspille lyden ti minutter senere. Når du trykker på knappen tre gange, kunne musikken indstilles til at slukke indtil i morgen.