Innehållsförteckning:
Video: Arduino - Piezo Piano med tre knappar: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Pianot med tre knappar är ett projekt för nybörjare med lite erfarenhet av att använda Arduino.
Jag blev oavsiktligt svept i att försöka skapa detta medan jag lekte med piezo -summer för första gången. Det var SÅ högt! När jag försökte räkna ut olika metoder för att göra summern tystare och testa olika frekvenser med hjälp av ton () och noTone () insåg jag att det kan vara kul att försöka blanda piezosummer tillsammans med mina andra favoritkomponenter i min Arduino kit: knappar och potentiometern.
Material som behövs inkluderar:
- 1 Arduino
- 1 brödbräda
- 1 USB -kabel
- Jumper Wires (olika färger)
- 1 330 Kilo-ohm motstånd
- 1 Piezo -summer
- 3 Tryckknappar
- 1 Potentiometer
Steg 1: Piezo Buzzer
För att börja, ställ in piezo på Arduino -brödbrädan. Ena sidan av den (den kortare bensidan) måste springa till marken. Den andra sidan (den längre bensidan) måste anslutas till en digital ingångsstift. Jag valde att ansluta den till 8.
Steg 2: Tryckknappar
Därefter är det dags att ställa in tryckknapparna. Precis som piezo måste tryckknapparna anslutas till jord och till en digital ingångsstift.
Steg 3: Potentiometer
Det sista steget i den fysiska konstruktionen är potentiometern. Potentiometrar finns i några olika former. Vi kommer att använda potentiometern som en spänningsdelare, så alla dess tre ben måste anslutas.
Höger ben: Negativ stång (mark)
Mittben: Analog stift 0
Vänster ben: Positiv bar
Steg 4: Kod
När jag skrev ut kod för det här projektet hänvisade jag till information om några specifika typer av funktioner:
tona()
noTone () (jag slutade inte använda den här. Jag ställde in frekvensen till "0" istället.)
Karta()
En annan underbar referens för första gången användare av Piezo Buzzers hittar du här. Även om tanken på att ändra ljudet av piezo -summern verkar enkel, kan det vara lite överväldigande först!
Tonen () kan delas in i tre delar:
- Pin (stiftet som piezo -summern är ansluten till)
- Frekvens (ljudets frekvens i hertz)
- Varaktighet (längden på ljudet som anges i millisekunder)
I grund och botten ser det ut så här: ton (pin, frekvens, varaktighet). Den tredje komponenten (varaktighet) är valfri, medan de andra två är nödvändiga för att summern ska fungera. "Frekvens" -komponenten i tonfunktionen är det som kan ses som "ljudet" som produceras av summern.
Du kommer också att märka att koden innehåller två andra kodbitar. Det finns några if/else -uttalanden för att berätta för Arduino vad de ska göra om man trycker på olika knappar samt att ställa in den med "frekvens = 0" i situationer när ingen av knapparna trycks ned. Inom if/else -satserna används map () -funktioner för att kartlägga skalan för potentiometern till en uppsättning frekvenser. Dessa kan ändras! Lek med olika frekvensvärden för att se vilka olika ljud du kan få från piezo.
Kolla in koden som jag använde för att skapa pianot med tre knappar här eller kolla nedan.
int piezoPin = 8; // Inställningsnål ansluten till Piezo.
int sensorPin = 0; // Ställ in stift som är anslutet till sensorn (potentiometern). int sensorValue = 0;
int -knapp 1 = 5; // Ställ in ingångarna som är anslutna till knapparna.
int knapp 2 = 4; int knapp3 = 3;
int frekvens = 0;
const int delayTime = 500; // Ställ in en konstant för variabeln fördröjningstid i tonen ().
void setup () {
pinMode (knapp1, INPUT_PULLUP); pinMode (knapp2, INPUT_PULLUP); pinMode (knapp3, INPUT_PULLUP); }
void loop () {
sensorValue = analogRead (sensorPin); // Läs sensorn. // Kartlägg de olika värdena för potentiometern till en uppsättning frekvenser för var och en av de tre knapparna. if (digitalRead (knapp1) == LÅG) {frekvens = map (sensorValue, 0, 1023, 400, 499); } annars if (digitalRead (knapp2) == LÅG) {frekvens = map (sensorValue, 0, 1023, 500, 599); } annars om (digitalRead (knapp3) == LÅG) {frekvens = map (sensorValue, 0, 1023, 600, 699); } annat {frekvens = 0; } ton (piezoPin, frekvens, delayTime); // Ställ in ton () -funktionerna med variabler. }
Rekommenderad:
Arduino Control DC -motorhastighet och riktning med hjälp av en potentiometer, OLED -display och knappar: 6 steg
Arduino Control DC -motorhastighet och riktning med hjälp av en potentiometer, OLED -display och knappar: I denna handledning lär vi oss hur man använder en L298N DC MOTOR CONTROL -drivrutin och en potentiometer för att styra en DC -motorhastighet och riktning med två knappar och visa potentiometervärdet på OLED -skärmen. Se en demonstrationsvideo
Spel med 4 knappar med en analog ingång: 6 steg (med bilder)
Spel med 4 knappar med en analog ingång: Denna instruerbara funktion fokuserar på att använda en analog ingångslinje för flera knappar som kan detekteras oberoende av varandra. Och för att markera användningen av dessa knappar ingår programvara för att spela fyra olika spel med 4 knappar. Alla spel (8 tum
ESP32 kapacitiv pekingång med "metallhålspluggar" för knappar: 5 steg (med bilder)
ESP32 kapacitiv pekingång med "metallhålspluggar" för knappar: När jag slutförde designbeslut för ett kommande ESP32 WiFi Kit 32 -baserat projekt som kräver tre knappar, var ett märkbart problem att WiFi Kit 32 inte har en enda mekanisk tryckknapp, ändå ensam tre mekaniska knappar, f
Två tråd (DMX) gränssnitt med skärm och knappar: 5 steg (med bilder)
Två tråd (DMX) gränssnitt med skärm och knappar: DMX är ett protokoll som används för att styra scenbelysningsarmaturer och specialeffekter. Varje enhet har sina egna kanaler som den svarar på. Denna kanal kan väljas av en DIP -switch eller en display med knappar. Det finns flera sätt att välja en
MESH: Betygssystem med internetanslutna knappar: 5 steg (med bilder)
MESH: Betygssystem med internetanslutna knappar: Vad händer om restauranger eller andra företag kan samla in feedback från kunderna på plats och direkt synkronisera det med ett kalkylblad? Detta recept är ett snabbt och enkelt sätt att skapa ditt eget interaktiva betygssystem. Ta bara en uppsättning internetanslutna b