Töne mit dem Seriellen Monitor erzeugen
Bei einem Tastendruck soll ein Ton wiedergegeben werden, die Tasten * und # schalten den Ton wieder aus.
Note | Frequenz | Taste auf dem Tastenpad |
---|---|---|
c' | 261 | Taste 1 |
d' | 293 | Taste 2 |
e' | 329 | Taste 3 |
f' | 349 | Taste 4 |
g' | 391 | Taste 5 |
a' | 440 | Taste 6 |
h' | 493 | Taste 7 |
c'' | 523 | Taste 8 |
Hier findest du eine ➨Übersicht (externer Link, abgerufen am 21.11.2020) über die Frequenzen.
Benötigte Bauteile:
- Lautsprecher
- Tastenfeld 3×4
- Leitungsdrähte
Baue die Schaltung auf:
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Verwende die Bibliothek und die Variablen des ➨Tastenfelds.
// Keypad einbinden und Arrays definieren
include <Keypad.h>
// die Pins für die 3 Spalten
byte SpaltenPins[SPALTEN] = { 2, 3, 4 };
// die Pins für die 4 Reihen
byte ReihenPins[REIHEN] = { 8, 9, 10, 11 };
// TastenFeld → Name des Keypads
// → Zuordnung der Pins zu den REIHEN und SPALTEN des Arrays
Keypad TastenFeld = Keypad(makeKeymap(Tasten), ReihenPins, SpaltenPins, REIHEN, SPALTEN);
Definiere zusätzliche Variable:
char gedrueckteTaste;
int LAUTSPRECHER = 13;
Die gedrückte Taste wird mit ➨switch abgefragt:
void loop()
{
// gedrückte Taste abfragen
gedrueckteTaste = TastenFeld.getKey();
// wenn eine Taste gedrückt wurde
if (gedrueckteTaste)
{
// Taste zur Kontrolle anzeigen
Serial.print(gedrueckteTaste);
// je nach gedrückter Taste wird der Lautsprecher mit der
// entsprechenden Frequenz angesprochen
switch (gedrueckteTaste)
{
case '1':
tone(LAUTSPRECHER, 261);
break;
case '2':
tone(LAUTSPRECHER, 293);
break;
case '3':
tone(LAUTSPRECHER, 329);
break;
case '4':
. . .
. . .
}
}
}
Verwandte Aufgaben:
- Farbenspiele mit einem LED-Streifen
- Farbenspiele mit einer RGB-LED
- Länder-Info
- LEDs mit einem Tastenpad schalten
- Multiplikations-Taschenrechner
- Pin-Eingabe
- Spieluhr mit dem Tastenpad
Letzte Aktualisierung: