Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Jeg fant en liten høyttaler mens jeg rev en gammel PC for resirkulering og tenkte jeg skulle se hvordan det hørtes ut ved å bruke Arduino Tone () -funksjonen. Jeg begynte med et 10Ω potensiometer for å kontrollere tonehøyden og begynte å lage litt støy. Tone () -funksjonen bruker et enkelt pulsmønster. Det slår lyden av og på ved forskjellige frekvenser i et firkantet bølgemønster. Jeg hadde to andre potensiometre liggende, så jeg la dem til og brukte dem til å kontrollere tonens varighet. En for å kontrollere lengden på tonen og en for å kontrollere det stille rommet mellom tonene. Det bruker i utgangspunktet et annet firkantbølgemønster, men med en mye lavere frekvens. Du kan oppnå et godt utvalg av støy med denne kretsen. Det fungerer også godt med en piezo -summer, men mangler bassrespons fra en høyttaler.
Trinn 1: Deler du trenger
Arduino Uno
Brødbrett og hoppetråder
1 liten høyttaler eller piezo -summer
1 Trykknappbryter
3 10Ω potensiometre
1 22Ω motstand
1 10kΩ motstand
Trinn 2: Bygg kretsen
Koble brødbrettet til din Arduino 5V pin og GND. Plasser trykknappbryteren helt til høyre eller venstre på brødbrettet, og koble den til 5V og jord ved hjelp av 10kΩ motstand. Koble en ledning fra bryterkretsen til pinne 2 på Arduino.
På den andre siden av brødbrettet setter du høyttaleren/piezo -kretsen til 5v og males med 220Ω motstand. Denne motstanden styrer strømmen og kontrollerer dermed volumet; Du kan prøve forskjellige motstander her for høyere eller lavere volum.
Plasser potensiometrene i midten av brødbrettet, og gi nok plass til å fikle med knappene. Hver gryte må kobles til 5V og bakken og midtstiften på hver tilkoblet analoge pinner A0, A1 og A2
Trinn 3: Koden
Et potensiometer eller gryte er en variabel motstand som når den er koblet til en Arduino vil returnere en verdi mellom 0 og 1023. Vi vil bruke kartfunksjonen () til å endre disse verdiene for å passe våre egne behov. Map () -funksjonen tar fem argumenter, og i vårt tilfelle må vi kartlegge området på nytt mellom 220 og 2200 for å produsere en rimelig hørbar lyd.
Funksjonen ser omtrent slik ut:
kart (pot, 0, 1023, 220, 2200);
Du kan leke med de to siste verdiene for toner med høyere og lavere frekvens, bare vær forsiktig så du ikke gjør hunden din opprørt.
Noise_Machine.ino
/* Støymaskin som bruker tre potensiometre koblet til analoge innganger |
og en piezo eller liten høyttaler. En trykknapp slår på støyen, potensiometrene |
kontrollere tonehøyden ved hjelp av Arduino tone () -funksjonen, og to forsinkelser |
verdier som styrer lengden på hver tone og lengden mellom |
hver tone. Potensiometrene gir analoge verdier som endres |
bruke kartfunksjonen () til større eller mindre områder som passer din |
musikalsk smak. |
Denne koden er i det offentlige domene. |
Matt Thomas 05.04.2019 |
*/ |
constint buttonPin = 2; // Trykknapp 2 |
konstanthøyttaler = 9; // Høyttaler eller piezo i pin 9 |
int buttonState = 0; // Variabler for knappen |
int potZero; // og potensiometre |
int potOne; |
int potTwo; |
voidsetup () { |
pinMode (9, OUTPUT); // Høyttaler/piezo -utgangspinne |
} |
voidloop () { |
buttonState = digitalRead (buttonPin); // Les trykknappstatusen |
potZero = analogRead (A0); // Variabler for å lese de analoge verdiene |
potOne = analogRead (A1); |
potTwo = analogRead (A2); |
int htz = map (potZero, 0, 1023, 0, 8800); // Kartlegg de analoge avlesningene i |
int high = map (potOne, 0, 1023, 0, 100); // nye tallområder og opprett |
int low = map (potTwo, 0, 1023, 0, 100); // nye variabler |
if (buttonState == HIGH) {// Hvis du trykker på knappen … |
tone (høyttaler, htz); // Lyd på |
forsinkelse (høy); // Lengde på tonen |
noTone (høyttaler); // Lyden av |
forsinkelse (lav); // Tid til neste tone |
} annet { |
noTone (høyttaler); // Ingen tone hvis knappen slippes |
} |
} |
se rawNoise_Machine.ino hostet av ❤ av GitHub
Trinn 4: slutten
Så det er alt det er. Lek deg med verdiene i koden, legg til flere potter /knapper og se hva annet du kan kontrollere. Gi meg beskjed hvis jeg har gjort noen feil, og jeg håper du liker musikken.