INHOUDSOPGAWE:

Arduino - Piezo Klavier met drie knoppies: 4 stappe
Arduino - Piezo Klavier met drie knoppies: 4 stappe

Video: Arduino - Piezo Klavier met drie knoppies: 4 stappe

Video: Arduino - Piezo Klavier met drie knoppies: 4 stappe
Video: Rumba - REPRAP СКИДКА ПОЛНЫЙ ГРАФИЧЕСКИЙ УМНЫЙ КОНТРОЛЛЕР 2024, Junie
Anonim
Image
Image

Die klavier met drie knoppies is 'n projek vir beginners met 'n bietjie ervaring met die Arduino.

Ek het per ongeluk ingesluip om dit te probeer skep terwyl ek vir die eerste keer met 'n piezo -gonser gespeel het. Dit was SO hard! Toe ek probeer om verskillende metodes uit te vind om die zoemer stiller te maak en verskillende frekwensies te probeer met behulp van die funksie tone () en noTone (), het ek besef dat dit lekker kan wees om die piezo -zoemer saam met my ander gunsteling komponente van my Arduino te meng. kit: knoppies en die potensiometer.

Die benodigde materiaal sluit in:

  • 1 Arduino
  • 1 Broodbord
  • 1 USB -kabel
  • Jumper Wires (verskillende kleure)
  • 1 330 kilo-ohm weerstand
  • 1 Piezo -gonser
  • 3 Drukknoppies
  • 1 Potensiometer

Stap 1: Piezo -gonser

Piezo -gonser
Piezo -gonser

Om mee te begin, stel die piëzo op die broodbord van die Arduino op. Die een kant daarvan (die korter been) moet grond toe hardloop. Die ander kant (die langer beenkant) moet aan 'n digitale invoerpen gekoppel word. Ek het gekies om dit aan 8 te koppel.

Stap 2: Druk knoppies

Drukknoppies
Drukknoppies
Drukknoppies
Drukknoppies

Daarna is dit tyd om die drukknoppies op te stel. Net soos die piezo, moet die drukknoppies ook met die grond en 'n digitale invoerpen verbind word.

Stap 3: Potensiometer

Potensiometer
Potensiometer
Potensiometer
Potensiometer

Die laaste stap in die fisiese opbou is die potensiometer. Potensiometers kom in verskillende vorme voor. Ons gebruik die potensiometer as 'n spanningsverdeler, dus moet al drie sy bene verbind word.

Regterbeen: Negatiewe staaf (grond)

Middelpoot: analoog pen 0

Linkerbeen: Positiewe balk

Stap 4: Kodeer

Terwyl ek kode vir hierdie projek geskryf het, verwys ek na inligting oor 'n paar spesifieke tipes funksies:

toon ()

noTone () (ek het uiteindelik nie hierdie een gebruik nie. Ek het eerder die frekwensie op "0" gestel.)

kaart ()

Nog 'n wonderlike verwysing vir die eerste keer gebruikers van die Piezo Buzzers kan hier gevind word. Alhoewel die idee om die geluid van die piëzo -zoemer te verander eenvoudig lyk, kan dit aanvanklik 'n bietjie oorweldigend wees!

Die toon () funksie kan in drie dele verdeel word:

  1. Speld (die pen waarmee die piëzo -zoemer gekoppel is)
  2. Frekwensie (die frekwensie van die klank in hertz)
  3. Duur (die tydsduur van die klank wat in millisekondes gegee word)

Dit lyk basies so: toon (pen, frekwensie, duur). Die derde komponent (duur) is opsioneel, terwyl die ander twee nodig is om die gonser te laat funksioneer. Die "frekwensie" -komponent van die toonfunksie is wat beskou kan word as "die klank" wat deur die zoemer geproduseer word.

U sal ook sien dat die kode twee ander stukkies kode bevat. Daar is 'n paar if/else -stellings wat die Arduino opgestel het om te sê wat om te doen as daar op verskillende knoppies gedruk word, sowel as met 'frekwensie = 0' in situasies waarin daar nie op een van die knoppies gedruk word nie. Binne die if/else -stellings word kaart () -funksies gebruik om die skaal van die potensiometer op 'n stel frekwensies in kaart te bring. Dit kan verander word! Speel met verskillende frekwensiewaardes om te sien watter verskillende geluide u uit die piezo kan kry.

Kyk hier na die kode waarmee ek die klavier met drie knoppies gemaak het, of kyk hieronder.

int piezoPin = 8; // Stel 'n speld op wat gekoppel is aan Piezo.

int sensorPin = 0; // Stel die pen in wat op die sensor gekoppel is (die potensiometer). int sensorValue = 0;

int knoppie1 = 5; // Stel die invoerpenne wat aan die knoppies gekoppel is, op.

int knoppie2 = 4; int knoppie3 = 3;

int frekwensie = 0;

const int delayTime = 500; // Stel 'n konstante op vir die veranderlike van vertragingstyd in die toon () -funksie.

ongeldige opstelling () {

pinMode (knoppie1, INPUT_PULLUP); pinMode (knoppie2, INPUT_PULLUP); pinMode (knoppie3, INPUT_PULLUP); }

leemte -lus () {

sensorValue = analogRead (sensorPin); // Lees die sensor. // Kaart die verskillende waardes van die potensiometer aan 'n stel frekwensies vir elk van die drie knoppies. as (digitalRead (knoppie1) == LAAG) {frekwensie = kaart (sensorValue, 0, 1023, 400, 499); } anders as (digitalRead (button2) == LOW) {frequensie = map (sensorValue, 0, 1023, 500, 599); } anders as (digitalRead (button3) == LOW) {frequensie = map (sensorValue, 0, 1023, 600, 699); } anders {frekwensie = 0; } toon (piezoPin, frekwensie, delayTime); // Stel die toon () funksies op met veranderlikes. }

Aanbeveel: