hiernochmal mein Code zur besseren vorstellung
// Arduino Theremin mit LED
// Deklaration
int btnPin = 11; // Button
int buzzerPin = 10; // Klinkenstecker
int echoPin = 12; // Echo Pulse Ultraschall
int initPin = 13; // Trigger Pulse Ultraschall
int led0 = 0; // LEDs 1,2 ,3 usw.
int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9;
unsigned long distance = 0;
void setup()
{
pinMode(buzzerPin, OUTPUT); // Klinkenstecker = Ausgabe
pinMode(led0,OUTPUT); // LED`s = Ausgabe 1,2,3 usw.
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
pinMode(led9,OUTPUT);
pinMode(btnPin,INPUT); // Button = Eingabe
pinMode(initPin,OUTPUT); // Tigger Pulse = Auslöser/ Ausgabe
pinMode(echoPin, INPUT); // Echo Pulse = Empfang/ Eingabe
}
void loop()
{
digitalWrite(initPin, HIGH); // Ultraschallimpuls auslösen
digitalWrite(initPin, LOW); // Ultraschallimpuls stoppen
delayMicroseconds(10); // Vorgang aller 10 Microsekunden wiederholen
distance = (pulseIn(echoPin, HIGH)/58); // Umrechnung von Zeit zwischen Empfang zum Senden in eine Distanz/Entfernung
if(digitalRead(btnPin) == HIGH) // Aktion nur durchführen wenn Knopf gedrückt ist
{if(distance < 4) // Aktion nur durchführen wenn die Distanz/ Entfernung unter Wert 4 ist
{
digitalWrite(led0,HIGH); // Nur die LED 0 zum leuchten bringen, alle anderen bleiben aus
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
tone(10,262); // sende Tonsignal auf bin Pin 10 ( Klinkenstecker), in einer frequenz von 262 Hertz = C Note
}
else if(distance > 5 && distance < 9) // ( Wenn der Wert für Distanz über 4 ist, dann) wiederholt sich auf die jeweiligen Distanzen mit verschiedenen LED´s und Noten
{
digitalWrite(led0,LOW);
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
tone(10,294);
}
else if(distance > 10 && distance < 14)
{
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
tone(10,330);
}
else if(distance > 15 && distance < 19)
{
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
tone(10,349);
}
else if(distance > 20 && distance < 24)
{
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,HIGH);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
tone(10,392);
}
else if(distance > 25 && distance < 29)
{
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,HIGH);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
tone(10,440);
}
else if(distance > 30 && distance < 34)
{
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,HIGH);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
tone(10,494);
}
else if(distance > 35 && distance < 39)
{
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,HIGH);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
tone(10,523);
}
else if(distance > 40 && distance < 44)
{
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,HIGH);
digitalWrite(led9,LOW);
tone(10,587);
}
else if(distance > 45 && distance < 49)
{
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,HIGH);
tone(10,659);
}
else if(distance > 49 && distance < 100)
{
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
noTone(10);
}
else // Falls Distanz über 100
noTone(10); // spiele keinen Ton
delay(50); // Wiederhole den Vorgang nach 50 Milisekunden
}
else // Falls kein Knopf gedrückt wird
{
digitalWrite(led0,LOW); // keine LED`s leuchten
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
noTone(10); // spiele keinen Ton
}
}