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.

Raspberry Pi Pico er et lavkost mikrokontrollerkort som gjør det enkelt for nybegynnere å komme i gang med elektronikkprosjekter og lære å kode.

For dette prosjektet vil du lære hvordan du leser et analogt signal fra et potensiometer og konverterer det til en PWM (pulsbreddemodulasjon) signal for å manipulere frekvensen, eller tonen, til en summer ved hjelp av MicroPython kode.

Hvilke deler trengs?

Dette prosjektet er basert på Kitronik Inventor's Kit for Raspberry Pi Pico. Alle nødvendige elektroniske komponenter er inkludert i settet; Dette er imidlertid vanlige komponenter du kan ha liggende:

  • Piezo element summer
  • Roterende potensiometer
  • 7x Hann-hann jumper ledninger
  • Raspberry Pi Pico med loddede GPIO-hodepinner
  • Brødbrett

Hvis du er ny på pulsbreddemodulasjon (PWM) og potensiometre, sjekk først vår guide på hvordan du bruker et potensiometer med din Raspberry Pi Pico

, som skisserer hvordan du bruker den til å justere lysstyrken til en LED med PWM.

Nødvendig montering

Én jumperledning (gul på bildet) kobler venstre side av potensiometeret til den positive (+) skinnen på breadboardet. En annen jumperledning kobler høyre side av potensiometeret til den negative (-) siden av breadboardet. Fra den midterste pinnen på potensiometeret må du kjøre en jumper-tråd til GP26/A0-pinnen på Pico.

Piezo-summeren må ha én ledning som går fra det negative benet til det negative breadboard-skinnen og deretter en annen tilkobling fra det positive benet til GP15-pinnen på Raspberry Pi Pico.

Du må også kjøre en jumperledning fra en GND-pinne på Pico til den negative skinnen på brødbrettet for å jorde den. En annen jumperledning vil koble 3V3 Out-pinnen på Pico til den positive skinnen på breadboardet, for å drive komponentene.

Lag koden

Du kan hente koden fra MUO GitHub-depot. Last ned MicroPython-filen med navnet piezo-buzzer.py og last deretter dette inn på din Pico via en USB-tilkoblet datamaskin som kjører Thonny IDE. Sjekk ut hvordan komme i gang med MicroPython på Raspberry Pi Pico for detaljer.

De ulike delene av koden gjør følgende:

  • Øverst importerer vi det nødvendige maskin, matte, og tid MicroPython-moduler.
  • EN summer variabelen blir deretter tildelt pin GP15 som en PWM-utgang.
  • EN potensiometer variabelen er tilordnet analog-til-digital-omformeren (ADC) på Picos GP26/A0-pinne.
  • Vi definerer en skala() funksjon som bruker matematiske funksjoner for å konvertere rekkevidden til potensiometerbevegelsen til en utgang for summeren.
  • De mens: Sant uendelig sløyfe leser potensiometerinngangen, og bruker deretter skala funksjon for å konvertere den. Etter å ha sjekket at den ikke har endret seg for mye fra forrige frekvens, sender den den beregnede Frekvens til summeren ved hjelp av PWM (pulsbreddemodulasjon).

Oppsummert er det hundrevis av pulser som sendes per sekund, og summertonen vil skifte mellom 120Hz og 5kHz når potensiometeret dreies med eller mot klokken. Rotering av potensiometeret endrer spenningen som leses av Picos analoge inngangspinne, som igjen brukes til å justere buzzer-frekvensen ved hjelp av PWM.

Kjør koden fra Thonny (klikk på spillikonet eller trykk F5 på tastaturet) og prøv det selv. Etter din første kjøring, vil eventuelle kodeendringer påvirke fysiske utfall? For eksempel, hva skjer hvis du endrer område (0 til 65535)? Denne delen av koden ligger rett under mens sant: hvor i Frekvens er definert.

Stille inn tonen

Hvis du føler deg eventyrlysten, kan du prøve å bruke summeren til å generere musikalske toner ved hjelp av martinkooij's pi-pico-toner bibliotek på GitHub. Som standard vil dette biblioteket generere sinusbølger; fire tonegeneratorer kan kjøre på fire forskjellige Pico-pinner som du kan velge. Merk at dette prosjektet er basert på C++ ved å bruke Raspberry Pi Pico SDK, i stedet for MicroPython, men fullstendige instruksjoner er gitt i GitHub readme.

The Buzz of Pico Electronics

Gratulerer: du har lært hvordan du leser den analoge inngangen fra et potensiometer og konverterer den til et PWM-signal for å kontrollere en summertone. Et potensiometer er en allsidig inngangsenhet for elektronikk. En piezo-summer er en annen praktisk komponent: med tillegg av en PIR infrarød bevegelsessensor, for eksempel, kan du oppdage tilstedeværelsen av inntrengere og slå alarm.