Inhaltsverzeichnis:

Arduino - Piezo-Klavier mit drei Tasten - Gunook
Arduino - Piezo-Klavier mit drei Tasten - Gunook

Video: Arduino - Piezo-Klavier mit drei Tasten - Gunook

Video: Arduino - Piezo-Klavier mit drei Tasten - Gunook
Video: DIY Arduino Piano: How to Make a Piano using Buzzer and Push Buttons 🎹🎶😲 #diy #arduino #music #how 2024, November
Anonim
Image
Image

Das Drei-Knopf-Klavier ist ein Projekt für Anfänger mit etwas Erfahrung im Umgang mit dem Arduino.

Ich wurde versehentlich mitgerissen, als ich zum ersten Mal mit dem Piezo-Summer herumspielte. Es war SO laut! Beim Versuch, verschiedene Methoden zu finden, um den Summer leiser zu machen, und verschiedene Frequenzen mit den Funktionentone () und noTone () auszuprobieren, wurde mir klar, dass es Spaß machen könnte, den Piezo-Summer mit meinen anderen Lieblingskomponenten meines Arduino zu mischen Kit: Tasten und das Potentiometer.

Zu den benötigten Materialien gehören:

  • 1 Arduino
  • 1 Steckbrett
  • 1 USB-Kabel
  • Überbrückungsdrähte (verschiedene Farben)
  • 1 330 Kiloohm Widerstand
  • 1 Piezo-Summer
  • 3 Drucktasten
  • 1 Potentiometer

Schritt 1: Piezo-Summer

Piezo-Summer
Piezo-Summer

Richten Sie zunächst den Piezo auf dem Steckbrett des Arduino ein. Eine Seite davon (die kürzere Beinseite) muss zum Boden laufen. Die andere Seite (die längere Beinseite) muss mit einem digitalen Eingangspin verbunden werden. Ich entschied mich, es mit 8 zu verbinden.

Schritt 2: Drucktasten

Drück Knöpfe
Drück Knöpfe
Drück Knöpfe
Drück Knöpfe

Als nächstes ist es Zeit, die Drucktasten einzurichten. Wie beim Piezo müssen die Taster mit Masse und einem digitalen Eingangspin verbunden werden.

Schritt 3: Potentiometer

Potentiometer
Potentiometer
Potentiometer
Potentiometer

Der letzte Schritt im physischen Aufbau ist das Potentiometer. Potentiometer gibt es in verschiedenen Formen. Wir verwenden das Potentiometer als Spannungsteiler, daher müssen alle drei Beine angeschlossen werden.

Rechtes Bein: Negativer Balken (Boden)

Mittleres Bein: Analoger Pin 0

Linkes Bein: Positiver Balken

Schritt 4: Code

Beim Schreiben von Code für dieses Projekt habe ich auf Informationen zu einigen spezifischen Arten von Funktionen verwiesen:

Ton()

noTone () (Ich habe diesen nicht verwendet. Ich habe stattdessen die Frequenz auf "0" gesetzt.)

Karte()

Eine weitere wunderbare Referenz für Erstanwender der Piezo Buzzer finden Sie hier. Obwohl die Idee, den Ton des Piezo-Summers zu ändern, einfach erscheint, kann es zunächst etwas überwältigend sein!

Die Funktion Tone() lässt sich in drei Teile unterteilen:

  1. Pin (der Pin, mit dem der Piezo-Summer verbunden ist)
  2. Frequenz (die Frequenz des Tons in Hertz)
  3. Dauer (die Dauer des Tons in Millisekunden)

Im Grunde sieht es so aus: Ton (Pin, Frequenz, Dauer). Die dritte Komponente (Dauer) ist optional, während die anderen beiden für die Funktion des Summers erforderlich sind. Die "Frequenz"-Komponente der Tonfunktion ist das, was man sich als "das Geräusch" vorstellen kann, das vom Summer erzeugt wird.

Sie werden auch feststellen, dass der Code zwei weitere Code-Bits enthält. Es gibt einige if/else-Anweisungen, die dem Arduino sagen, was zu tun ist, wenn verschiedene Tasten gedrückt werden, und um es mit "Frequenz = 0" einzurichten, wenn keine der Tasten gedrückt wird. Innerhalb der if/else-Anweisungen werden map()-Funktionen verwendet, um die Skala des Potentiometers auf einen Satz von Frequenzen abzubilden. Diese können geändert werden! Spielen Sie mit verschiedenen Frequenzwerten herum, um zu sehen, welche verschiedenen Töne Sie vom Piezo erhalten können.

Sehen Sie sich den Code an, mit dem ich das Drei-Tasten-Klavier hier erstellt habe, oder sehen Sie unten nach.

int piezoPin = 8; // Richten Sie den Pin ein, der mit Piezo verbunden ist.

int sensorPin = 0; // Richten Sie den Pin ein, der mit dem Sensor (dem Potentiometer) verbunden ist. int sensorValue = 0;

int-Taste1 = 5; // Richten Sie die mit den Tasten verbundenen Eingangspins ein.

int-Taste2 = 4; int-Taste3 = 3;

int-Frequenz = 0;

const int delayTime = 500; // Richten Sie eine Konstante für die Variable der Verzögerungszeit in der Funktion Tone () ein.

Leere Einrichtung () {

pinMode (Taste1, INPUT_PULLUP); pinMode (button2, INPUT_PULLUP); pinMode (button3, INPUT_PULLUP); }

Leere Schleife () {

sensorValue = analogRead (sensorPin); // Lesen Sie den Sensor. // Ordnen Sie die verschiedenen Werte des Potentiometers für jede der drei Tasten einem Satz von Frequenzen zu. if (digitalRead (button1) == LOW) { Frequenz = map (sensorValue, 0, 1023, 400, 499); aufrechtzuerhalten. Sonst if (digitalRead (button2) == LOW) { Frequenz = map (sensorValue, 0, 1023, 500, 599); aufrechtzuerhalten. Sonst if (digitalRead (button3) == LOW) { Frequenz = map (sensorValue, 0, 1023, 600, 699); aufrechtzuerhalten. Sonst { Häufigkeit = 0; } Ton (PiezoPin, Frequenz, DelayTime); // Richten Sie die Funktionen von Tone () mit Variablen ein. }

Empfohlen: