Indholdsfortegnelse:
Video: Arduino - Piezo Piano med tre knapper: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Klaveret med tre knapper er et projekt for begyndere med en vis erfaring med at bruge Arduino.
Jeg blev uforvarende fejet op i forsøget på at skabe dette, mens jeg legede med piezo -summer for første gang. Det var SÅ højt! I forsøget på at finde ud af forskellige metoder til at gøre summeren mere støjsvag og prøve forskellige frekvenser ved hjælp af funktionen tone () og noTone (), indså jeg, at det kunne være sjovt at prøve at blande piezo -summeren med mine andre favoritkomponenter i min Arduino kit: knapper og potentiometer.
Nødvendige materialer omfatter:
- 1 Arduino
- 1 brødbræt
- 1 USB -kabel
- Jumper Wires (forskellige farver)
- 1 330 Kilo-ohm modstand
- 1 Piezo -summer
- 3 Trykknapper
- 1 Potentiometer
Trin 1: Piezo Buzzer
For at starte, skal du oprette piezo på Arduino's brødbræt. Den ene side af den (den kortere benside) skal løbe til jorden. Den anden side (den længere benside) skal tilsluttes en digital input -pin. Jeg valgte at slutte den til 8.
Trin 2: Trykknapper
Dernæst er det tid til at konfigurere trykknapperne. Ligesom piezoen skal trykknapperne forbindes til jorden og til en digital indgangsstift.
Trin 3: Potentiometer
Det sidste trin i den fysiske opbygning er potentiometeret. Potentiometre findes i et par forskellige former. Vi bruger potentiometeret som en spændingsdeler, så alle tre ben skal forbindes.
Højre ben: Negativ stang (jorden)
Mellemben: Analog pin 0
Venstre ben: Positiv bar
Trin 4: Kode
Mens jeg skrev kode til dette projekt, henviste jeg til oplysninger om et par specifikke typer funktioner:
tone()
noTone () (jeg endte ikke med at bruge denne. Jeg satte frekvensen til "0" i stedet.)
kort()
En anden vidunderlig reference til førstegangsbrugere af Piezo Buzzers kan findes her. Selvom tanken om at ændre lyden af piezo -summer virker enkel, kan den i starten være lidt overvældende!
Tone () -funktionen kan opdeles i tre dele:
- Pin (den pin, piezo -summeren er forbundet til)
- Frekvens (lydens frekvens i hertz)
- Varighed (varigheden af lyden angivet i millisekunder)
Grundlæggende ser det sådan ud: tone (pin, frekvens, varighed). Den tredje komponent (varighed) er valgfri, mens de to andre er nødvendige for, at summeren kan fungere. "Frekvens" -komponenten i tonefunktionen er det, der kan betragtes som "lyden", der produceres af summeren.
Du vil også bemærke, at koden indeholder to andre bits kode. Der er oprettet nogle if/else -sætninger for at fortælle Arduinoen, hvad de skal gøre, hvis der trykkes på forskellige knapper samt at indstille det med "frekvens = 0" i situationer, hvor der ikke trykkes på nogen af knapperne. Inden if/else -sætningerne bruges map () -funktioner til at kortlægge omfanget af potentiometeret til et sæt frekvenser. Disse kan ændres! Spil rundt med forskellige frekvensværdier for at se, hvilke forskellige lyde du kan få fra piezo.
Tjek koden, som jeg brugte til at oprette klaveret med tre knapper her, eller tjek nedenfor.
int piezoPin = 8; // Opsæt pin tilsluttet Piezo.
int sensorPin = 0; // Sæt pin op til sensoren (potentiometeret). int sensorValue = 0;
int -knap1 = 5; // Indstil de inputstifter, der er forbundet til knapperne.
int -knap2 = 4; int -knap3 = 3;
int frekvens = 0;
const int delayTime = 500; // Indstil en konstant for variablen forsinkelsestid i funktionen tone ().
ugyldig opsætning () {
pinMode (knap1, INPUT_PULLUP); pinMode (knap2, INPUT_PULLUP); pinMode (knap3, INPUT_PULLUP); }
void loop () {
sensorValue = analogRead (sensorPin); // Læs sensoren. // Kortlæg potentiometerets forskellige værdier til et sæt frekvenser for hver af de tre knapper. hvis (digitalRead (knap1) == LAV) {frekvens = map (sensorValue, 0, 1023, 400, 499); } ellers hvis (digitalRead (knap2) == LAV) {frekvens = map (sensorValue, 0, 1023, 500, 599); } ellers hvis (digitalRead (knap3) == LAV) {frekvens = map (sensorValue, 0, 1023, 600, 699); } ellers {frekvens = 0; } tone (piezoPin, frekvens, delayTime); // Indstil tonefunktionerne () med variabler. }
Anbefalede:
Akryl tabletstativ til Flight Sim med rigtige knapper: 4 trin
Akryl tabletstativ til Flight Sim med rigtige knapper: Dette er et stativ til en tablet (f.eks. IPad) til brug med flysimulatorsoftware. Ved hjælp af roterende encodermoduler og en Arduino Mega skabte jeg en løsning, hvor de fysiske knapper kan kortlægges til at styre specifikke instrumentfunktioner i simen. Som du
Spil med 4 knapper ved hjælp af et analogt input: 6 trin (med billeder)
4-knapsspil ved hjælp af en analog indgang: Denne instrukser fokuserer på at bruge en analog indgangslinje til flere knapper, som kan detekteres uafhængigt af hinanden.Og for at fremhæve brugen af disse knapper er software til at spille fire forskellige 4-knapsspil. Alle spil (8 i t
En menu i Arduino, og hvordan man bruger knapper: 10 trin (med billeder)
En menu i Arduino, og hvordan man bruger knapper: I min Arduino 101 -tutorial bliver du lært, hvordan du konfigurerer dit miljø i Tinkercad. Jeg bruger Tinkercad, fordi det er en temmelig kraftfuld online platform, der giver mig mulighed for at demonstrere en række færdigheder for studerende til at bygge kredsløb. Du er velkommen til
Two Wire (DMX) interface med skærm og knapper: 5 trin (med billeder)
Two Wire (DMX) interface med skærm og knapper: DMX er en protokol, der bruges til at styre scenelysarmaturer og specialeffekter. Hver enhed har sine egne kanaler, som den reagerer på. Denne kanal kan vælges af en DIP -switch eller et display med knapper. Der er flere måder at vælge en
MESH: Rating-system med internetforbundne knapper: 5 trin (med billeder)
MESH: Rating-system med internetforbundne knapper: Hvad hvis restauranter eller andre virksomheder kunne indsamle feedback fra kunder på stedet og øjeblikkeligt synkronisere det med et regneark? Denne opskrift er en hurtig og enkel måde at oprette dit eget interaktive ratingsystem på. Bare tag et sæt internetforbundne b