Arduino Piezo Buzzer Piano - Ajarnpa
Arduino Piezo Buzzer Piano - Ajarnpa
Anonim
Arduino Piezo Zoemer Piano
Arduino Piezo Zoemer Piano
Arduino Piezo Zoemer Piano
Arduino Piezo Zoemer Piano

Hier zullen we een Arduino-piano maken die een piëzo-zoemer als luidspreker gebruikt. Dit project is gemakkelijk schaalbaar en kan werken met meer of minder notities, afhankelijk van jou! We zullen het voor de eenvoud bouwen met slechts vier knoppen/toetsen. Dit is een leuk en eenvoudig project dat weinig vaardigheid vereist, maar dat kan worden omgezet in iets dat veel complexer of groter is.

Benodigdheden:

  • 1x Arduino Uno (andere Arduino-boards zouden in orde moeten zijn, maar zijn niet getest)
  • 1x Halve of grotere broodplank
  • 1x Actieve piëzozoemer
  • 4x kortstondige drukknop
  • 11x breadboard jumperdraden (6 zwarte voor negatief en 5 kleurrijke voor knoppen & zoemer

Stap 1: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading

Om te beginnen zullen we 4 knoppen naast elkaar plaatsen en de piëzo-buzzer aan de andere kant van het breadboard, zoals te zien is op de eerste foto. Vervolgens zullen we de negatieve draden aansluiten. Eerst verbinden we de negatieve rail op het breadboard met een negatieve pin met het label "GND" op de Arduino. Vervolgens verbinden we een been van elke knop met de negatieve rail. De piëzo-zoemer heeft een been korter, wat de negatieve is. We zullen het ook aansluiten op de negatieve rail.

Nu is het tijd om de rest van de draden aan te sluiten. We zullen de andere poten van de knoppen verbinden met pinnen 2-5, zoals weergegeven in de afbeelding. Als laatste zullen we de positieve poot van de piëzo-zoemer (de langere) verbinden met pin 10. De pinnummers kunnen later eenvoudig in de code worden gewijzigd. Bekijk de afbeeldingen voor een duidelijkere bedrading.

Stap 2: Programmeren

Programmeren
Programmeren

De code is vrij eenvoudig en spreekt voor zich. Bovenaan kennen we pinnummers toe aan de variabelen. Vervolgens declareren we elk als een invoer of uitvoer. Tot slot geven we aan wat je moet doen als er op een bepaalde knop wordt gedrukt. De knoppen met het label but1-but4 corresponderen elk met een frequentie die moet worden afgespeeld wanneer ze worden ingedrukt. But1 is de laagste frequentie van 100 Hz, terwijl but 4 de hoogste frequentie van 400 Hz heeft. We gebruiken de functie tone() om de tonen in Hertz te spelen. Het is als volgt opgebouwd:

toon (buzzerPin, [frequentie in hertz], [duur]);

Als u meer knoppen wilt toevoegen, moet u een nieuwe variabele en een nieuw 'if'-statement maken voor wanneer erop wordt gedrukt. Het is heel gemakkelijk te dupliceren.

Houd er echter rekening mee dat de Arduino maar één toon tegelijk kan spelen. Als je meerdere knoppen tegelijk indrukt, zal het geluid niet correct zijn omdat Arduino snel schakelt tussen verschillende frequenties.

Stap 3: De tonen op een oscilloscoop bekijken

De tonen op een oscilloscoop bekijken
De tonen op een oscilloscoop bekijken
De tonen op een oscilloscoop bekijken
De tonen op een oscilloscoop bekijken
De tonen op een oscilloscoop bekijken
De tonen op een oscilloscoop bekijken
De tonen op een oscilloscoop bekijken
De tonen op een oscilloscoop bekijken

Wanneer we een oscilloscoop verbinden met de negatieve rail en zoemerpin, krijgen we een paar verschillende blokgolven. Hoe hoger de frequentie, hoe dichter de pieken bij elkaar staan. De eerste foto toont de hoogste frequentie in ons programma (400hz), en de laatste foto de laagste frequentie (100hz). De blokgolven komen steeds verder uit elkaar als de frequentie lager wordt. Bekijk de foto's om het effect te zien.

Van links naar rechts:

400 hz, 300 hz, 200 hz en 100 hz

Stap 4: Werkelijke pianotoetsen?

Echte pianotoetsen?
Echte pianotoetsen?

Als je toegang hebt tot een 3D-printer, ben je misschien geïnteresseerd in het maken van enkele sleutels voor je Arduino piëzo-buzzer-toetsenbord. Deze geven de kleine drukknopjes een beter gevoel. Je kunt ze hier vinden op prusaprinters.org.

Stap 5: Conclusie

Conclusie
Conclusie

Ik hoop dat je het leuk vond om een Arduino piëzo-zoemertoetsenbord te maken, en ik moedig je ook aan om de code aan te passen. Als je dit project leuk vond, plaats dan je make-up hieronder of laat een reactie achter. Bedankt!:NS