Keyboard
Ziel: Mit dem Arduino sollen Melodien gespielt werden können.
Material: - 1 Arduino Uno/ Mega
- 7 große Taster
- 5 kleine Taster
- viele Kabel
-13 Wiederstände (10 oder 100 Kiloohmen)
- 2 Breadboards
Aufbau:
Erklärung: Zuerst werden die Taster den entsprechenden Pins zugeordnet. Anschließend wird auch der Lautsprecher seinem Pin zugeordnet. Im void setup werden die Taster dann als Eingänge definiert, der Lautsprecher als Ausgang.
Drückt mann den "Oktavenschalter, so werden die Töne um eine Oktave angehoben. Wird er nicht gedrückt, bleiben die Töne in ihrer ursprünglichen Oktave. Drückt man zum Beispiel den ersten Taster, so wird der Ton c ausgegeben. Hät man dazu den "Oktavenschalter gedrückt, so wird der Ton c1 ausgegeben.
Der Code:
int buzz = 53;// Pin Lautsprecher
int button1 = 12;//"weiße Tasten"
int button2 = 11;
int button3 = 10;
int button4 = 9;
int button5 = 8;
int button6 = 7;
int button7 = 6;
int kl1 = 40;//"schwarze" Tasten
int kl2 = 41;
int kl3 = 42;
int kl4 = 43;
int kl5 = 44;
int okt = 22;// Taste zum Erhöhen der Oktave
void setup() {
pinMode(button1, INPUT); // alle "weißen" Tasten werden als Eingänge deffiniert
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(button4, INPUT);
pinMode(button5, INPUT);
pinMode(button6, INPUT);
pinMode(button7, INPUT);
pinMode(kl1, INPUT); // alle "schwarzen" Tasten werden als Eingänge deffiniert
pinMode(kl2, INPUT);
pinMode(kl3, INPUT);
pinMode(kl4, INPUT);
pinMode(kl5, INPUT);
pinMode(okt, INPUT);
pinMode(buzz, OUTPUT); // der Lautsprecher wird als Ausgang deffiniert
{
digitalWrite(buzz, HIGH); // ... wenn z.B. die "c-Taste" gedrückt wird, wird der Ton c ausgegeben
tone(buzz, 261.63);// gib den Ton c1 an
delay(200);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 293.67);// gib den Ton d1 an
delay(200);
}
if (digitalRead(button2) == LOW)
{
noTone(buzz);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 329.63);// gib den Ton e1 an
delay(200);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 349.23);// gib den Ton f1 an
delay(200);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 392);// gib den Ton g1 an
delay(200);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 440);// gib den Ton a1 an
delay(200);
}
if (digitalRead(button7) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 493.88);// gib den Ton h1 an
delay(200);
}
if (digitalRead(kl1) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 277.18);// gib den Ton cis1 an
delay(200);
}
if (digitalRead(kl2) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 311.13);// gib den Ton dis1 an
delay(200);
}
if (digitalRead(kl3) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 369.99);// gib den Ton fis1 an
delay(200);
}
if (digitalRead(kl4) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 415.31);// gib den Ton gis1 an
delay(200);
}
if (digitalRead(kl5) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 466.16);// gib den Ton ais1 an
delay(200);
}
{
{
digitalWrite(buzz, HIGH); // ... wenn z.B. die "c-Taste" gedrückt wird, wird der Ton c ausgegeben
tone(buzz, 130.81);// gib den Ton c an
delay(200);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 146.83);// gib den Ton d an
delay(200);
}
if (digitalRead(button2) == LOW)
{
noTone(buzz);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 164.81);// gib den Ton e an
delay(200);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 174.61);// gib den Ton f an
delay(200);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 196);// gib den Ton g an
delay(200);
}
{
digitalWrite(buzz, HIGH);
tone(buzz, 220);// gib den Ton a an
delay(200);
}
if (digitalRead(button7) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 246.94);// gib den Ton h an
delay(200);
}
if (digitalRead(kl1) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 138.59);// gib den Ton cis an
delay(200);
}
if (digitalRead(kl2) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 155.56);// gib den Ton dis an
delay(200);
}
if (digitalRead(kl3) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 185);// gib den Ton fis an
delay(200);
}
if (digitalRead(kl4) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 207.65);// gib den Ton gis an
delay(200);
}
if (digitalRead(kl5) == HIGH)
{
digitalWrite(buzz, HIGH);
tone(buzz, 233.63);// gib den Ton ais an
delay(200);
}
}
}