Morsecode mit LED und Lichtsensor
Morsecode mit einer LED darstellen und per anleuchten eines Lichtsensors den Morsecode Starten lassen
Dieser Code ist eine Erweiterung zum Code "Morsecode mit einer LED darstellen".
Ich möchte das Gimmick für einen Nachtgeocache benutzen und habe mir daher als Zusatz überlegt das der Morsecode erst nach anleuchten eines Licht-Sensors starten soll. Dafür habe ich in die Schaltung einen Lichtsensor eingefügt und die Passenden Zeilen im Code eingefügt.
Ich möchte das Gimmick für einen Nachtgeocache benutzen und habe mir daher als Zusatz überlegt das der Morsecode erst nach anleuchten eines Licht-Sensors starten soll. Dafür habe ich in die Schaltung einen Lichtsensor eingefügt und die Passenden Zeilen im Code eingefügt.
SKETCH:
/* LED MorsecodeDieser Sketch macht es Möglich eine LED zum Morsecoden zu benutzen. Als Startschalter wird ein Lichtsensor LIGHT TEMT 6000 verwendet.
Ich habe 5 Variablen festgelegt mit denen man den Code sehr einfach auf seine eigenen Anforderungen umschreiben bzw. verändern kann.
Schaltung: - GND-->Kathode LED-->AnnodeLED-->220 Ohm Widerstand-->DigitalPin 9
- GND-->GND TEMT 6000
- VCC-->VCC TEMT 6000
- SIG TEMT 6000-->AnalogPin 2
*/
int LED = 9; //LEDPIN festlegen (hier Pin 9)
int P = 2000; //Zeitvariable in Millisekunden PAUSE
int L = 1000; //Zeitvariable in Millisekunden LANG
int K = 300; //Zeitvariable in Millisekunden KURZ
int Z = 600; //Zeitvariable in Millisekunden ZWISCHENPAUSE
int E = 500; //Variable für den Lichtsensor
int sensor = 2; //PIN an welchem der Lichtsensor angeschlossen ist
int sensorvalue; //Variable um den Sensorwert zwischenzuspeichern
void setup ()
{
pinMode (LED, OUTPUT); //LEDPIN als Ausgang deklarieren
pinMode (sensor, INPUT); //SensorPIN als Eingang deklarieren
}
void loop ()
{
sensorvalue = analogRead(sensor); //Sensorwert in Sensorvalue schreiben
delay(100); //Pause 100 Millisekunden
if (sensorvalue >= E){ //wenn Sensorvalue größer oder gleich dem Wert E ist dann folgenden
Code abspielen
// Codeabschnitt für ein "Lang"-Zeichen
digitalWrite (LED, HIGH); //LED anstellen
delay(L); //Pause(Lang)
digitalWrite (LED, LOW); //LED ausstellen
delay(Z); //Pause(Zwischenpause)
}
else; //ansonsten soll er den folgenden code abspielen
{
// Codeabschnitt für ein "Kurz"-Zeichen
digitalWrite (LED, HIGH); //LED anstellen
delay(K); //Pause(Kurz)
digitalWrite (LED, LOW); //LED ausstellen
delay(Z); //Pause(zwischenpause)
}
}