Corona-Aufgabe 2
Arduino Keyboard
Materialien:
-Arduino Uno
-7 Buttons
-Passiv Buzzer
-17 Kabel
-220 ohm Widserstand
Aufbau:
Funktionsweise:
Wenn man auf den Schalter ganz links ( wenn man vom Arduino aus draufschaut rechts) drückt spielt der Lautsprecher ein C5 ( Grundton) und danach die restlichen Töne der C-Dur Tonleiter. ( in Reihenfolge D5,E5,F5,G5,H5). Wenn man jetzt also zum Bespiel den C-Dur Dreiklang spielen möchte, muss man den ersten Schalter ( C5), den dritten Schalter ( E5) und den fünften Schalter (G5) drücken.
Anmerkung: Im Programm heißt der siebte Ton der C-Dur Tonleiter (H5) B5, da dies die internationale Bezeichnung ist.
Code:
#include "pitches.h" // Library für die Noten
int C = 7; // Der erste Schalter ist mit pin 7 verbunden
int D = 8; // Der zweite Schalter ist mit pin 8 verbunden
int E = 9; // Der dritte Schalter ist mit pin 9 verbunden
int F = 10; // Der vierte Schalter ist mit pin 10 verbunden
int G = 11; // Der fünfte Schalter ist mit pin 11 verbunden
int A = 12; // Der sechste Schalter ist mit pin 12 verbunden
int B = 13; // Der siebte Schalter ist mit pin 13 verbunden
int c[] = {N_C5}; // Der erste Schalter spielt den Ton C5
int d[] = {N_D5}; // Der zweite Schalter spielt den Ton D5
int e[] = {N_E5}; // Der dritte Schalter spielt den Ton E5
int f[] = {N_F5}; // Der vierte Schalter spielt den Ton F5
int g[] = {N_G5}; // Der fünfte Schalter spielt den Ton G5
int a[]= {N_A5}; // Der sechste Schalter spielt den Ton A5
int b[] = {N_B5}; // Der siebte Schalter spielt den Ton H5
int duration(500); // Jede Note spielt 500 Millisekunden, bzw. 0,5 Sekunden
void setup () {
//Jeder Schalter wird als IMPUT_PULLUP eingestellt
pinMode(C, INPUT_PULLUP);
pinMode(D INPUT_PULLUP);
pinMode(E, INPUT_PULLUP);
pinMode(F, INPUT_PULLUP);
pinMode(G, INPUT_PULLUP);
pinMode(A, INPUT_PULLUP);
pinMode(B, INPUT_PULLUP);
}
void loop () {
if (digitalRead(C) == LOW) { // Falls Schalter C gedrückt wird...
for (int Note = 0; Note < 1; Note++){
tone(6, c[Note], duration) // ...wird C5 an pin 6, welcher mit dem Passivbuzzer verbunden ist, gespielt
}
}
if (digitalRead(D) == LOW) { // Falls Schalter D gedrückt wird...
for (int Note = 0; Note < 1; Note++){
tone(6, d[Note], duration) // ...wird D5 an pin 6, welcher mit dem Passivbuzzer verbunden ist, gespielt
}
}
if (digitalRead(E) == LOW) { // Falls Schalter E gedrückt wird...
for (int Note = 0; Note < 1; Note++){
tone(6, e[Note], duration) // ...wird E5 an pin 6, welcher mit dem Passivbuzzer verbunden ist, gespielt
}
}
if (digitalRead(F) == LOW) { // Falls Schalter F gedrückt wird...
for (int Note = 0; Note < 1; Note++){
tone(6, f[Note], duration) // ...wird F5 an pin 6, welcher mit dem Passivbuzzer verbunden ist, gespielt
}
}
if (digitalRead(G) == LOW) { // Falls Schalter G gedrückt wird...
for (int Note = 0; Note < 1; Note++){
tone(6, g[Note], duration) //... wird G5 an pin 6, welcher mit dem Passivbuzzer verbunden ist, gespielt
}
}
if (digitalRead(A) == LOW) { // Falls Schalter A gedrückt wird...
for (int Note = 0; Note < 1; Note++){
tone(6, a[Note], duration) //...wird A5 an pin 6, welcher mit dem Passivbuzzer verbunden ist, gespielt
}
}
if (digitalRead(B) == LOW) { // Falls Schalter H gedrückt wird...
for (int Note = 0; Note < 1; Note++){
tone(6, b[Note], duration) //...wird H5 an pin 6, welcher mit dem Passivbuzzer verbunden ist, gespielt
}
}
}
Melodie:
Ich habe mir überlegt, ob es Möglich ist ein ganzes Lied spielen zu lassen, wenn man nur einen Schalter drückt, ob das funktioniert kann ich leider nicht sagen, da ich keine Möglichkeit habe es hier auszuprobieren.
Code:
#include "pitches.h" // Library für die Noten
int C = 7; // Der erste Schalter ist mit pin 7 verbunden
int D = 8; // Der zweite Schalter ist mit pin 8 verbunden
int E = 9; // Der dritte Schalter ist mit pin 9 verbunden
int F = 10; // Der vierte Schalter ist mit pin 10 verbunden
int G = 11; // Der fünfte Schalter ist mit pin 11 verbunden
int A = 12; // Der sechste Schalter ist mit pin 12 verbunden
int B = 13; // Der siebte Schalter ist mit pin 13 verbunden
int c[] = {N_C5}; // Der erste Schalter spielt den Ton C5
int d[] = {N_D5}; // Der zweite Schalter spielt den Ton D5
int e[] = {N_E5}; // Der dritte Schalter spielt den Ton E5
int f[] = {N_F5}; // Der vierte Schalter spielt den Ton F5
int g[] = {N_G5}; // Der fünfte Schalter spielt den Ton G5
int a[]= {N_A5}; // Der sechste Schalter spielt den Ton A5
int b[] = {N_B5}; // Der siebte Schalter spielt den Ton H5
int duration(500); // Jede Note spielt 500 Millisekunden, bzw. 0,5 Sekunden
void setup () {
//Jeder Schalter wird als IMPUT_PULLUP eingestellt
pinMode(C, INPUT_PULLUP);
pinMode(D INPUT_PULLUP);
pinMode(E, INPUT_PULLUP);
pinMode(F, INPUT_PULLUP);
pinMode(G, INPUT_PULLUP);
pinMode(A, INPUT_PULLUP);
pinMode(B, INPUT_PULLUP);
}
void loop () {
if (digitalRead(C) == LOW) { // Falls Schalter C gedrückt wird...
for (int Note = 0; Note < 1; Note++){
tone(6, c[Note], duration);// ...wird C5 an pin 6, welcher mit dem Passivbuzzer verbunden ist, gespielt...
delay (500);
tone(6, d[Note], duration); //.. danach D5,...
delay (500);
tone(6 e[Note], duration); //... E5,...
delay (500);
tone(6 f[Note, duration); // ... F5,...
delay (500);
tone(6 g[Note], duration); //...G5,...
delay (500);
tone(6 a[Note], duration); // ...A5,...
delay (500);
tone(6 b[Note], duration); //... H5,...
delay (500);
//theoretisch wäre das jetzt die C-Dur Tonleiter
}
}
}