Banner Ausblenden
Kleines Logo

Willkommen auf PSI-Online

Corona-Aufgabe 2

Arduino Keyboard

Materialien:

-Arduino Uno

-7 Buttons 

-Passiv Buzzer

-17 Kabel

-220 ohm Widserstand

 

Aufbau:

horst

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

}

}

}

 

Erstellt: Lucienne Gebauer (29.04.2020) Letzte Änderung: Lucienne Gebauer (30.04.2020)