Ob es wirklich richtig geht, merkt ihr wenn der Ton an…geht.

Erfolg trotz Kabelchaos?

(Ton des Videos leise)

Learning by doing – mein experimentelles Zusammenführen von zwei leicht modifizierten Beispielcodesodes scheint zu funktionieren. Der digitale Sensor (Herstellung siehe unten) gibt einen Ton bei Aktivierung von sich als auch der Lichtsensor wenn das Licht blockiert wird.

Probleme / Schwierigkeiten

Einige Stunden wurden geopfert um die richtigen Beispielcodes zu finden und diese durch „trial and error“ endgültig zusammenzuführen. Habe allerdings Zweifel ob dieser in der momentanen Ausführung stimmt. Beide Sensoren scheinen zu funktionieren, der Analoge Sensor spielt allerdings nicht den gewünschten Ton ab.

Here comes the Code:

char Light=A0;
char Speaker=9;
char Reed=12;

void setup() {
  pinMode(Speaker, OUTPUT);
  pinMode(Light, INPUT);
  pinMode(Reed, INPUT);
  Serial.begin(9600);
 }

void loop() 
  {
  //wenn Stromkreis geschlossen
  if(digitalRead(Reed) == HIGH) 
  {
  //spiele Ton
  tone(Speaker, 880); 
  }else
  {
  noTone(Speaker);
  }
  //Lichtsensor Wert (LightSV)
  int LightSV=analogRead(Light);
  Serial.println(LightSV);
  if(LightSV>500==true){
  int thisPitch = map(LightSV, 400, 1000, 120, 1500);
  tone(Speaker, thisPitch, 10);
  delay(1);
  }                              
  else{noTone(Speaker);}
  }

Herstellen des digitalen Sensors

Meine Neuinterpretation eines Reed-Schalters. Ein Gewebe aus leitenden Kupferfäden bildet einen Gegenpol zu einem magnetischen Ball aus leitenden Fasern.
Ein Magnet zieht den Ball auf das Kupfergewebe und schließt somit den Stromkreis – der Schalter geht an.
(Der Durchgangsprüfer eines Multimeters piept bei einem geschlossenen Stromkreis)