Die Werte der LDR auslesen hat mich nicht wirklich weiter gebracht, zumal ich nun den ersten ersetzt habe um 2 baugleiche Komponenten zu verwenden.
So wie mein Code jetzt aussieht wird aber immer nur der erste LDR abgefragt. Ändere ich auf ldrPin2 wird der 2. LDR abgefragt aber der erste nicht mehr.
Deshalb denke ich Hardware mäßig sollte alles passen, aber im Code passt was noch nicht im loop.
Hat wer nen Tip?
// Schalten eines Relais bei "Alarm"
//
// Falls ein 'A' über die serielle Schnittstelle empfangen wird,
// wird ein LDR ausgewertet. Bei "Dunkelheit" wird der "relaisPin"
// für eine bestimmte Dauer auf LOW geschalten.
const int ldrSchwellwert = 800; // Wert wurde "experimentell" für meinen LDR ermittelt
const int ldrSchwellwert2 = 200; // Gewünschter Schwellwert
const int stromstossDauer = 800; // gewünschte Stromstoß-Dauer (Millisekunden)
const byte relaisPin1 = 3;
const byte relaisPin2 = 2;
const byte ldrPin1 = A0;
const byte ldrPin2 = A1;
void setup() {
Serial.begin(9600);
digitalWrite(relaisPin1, HIGH); // Das Relais-Modul ist "active LOW". Dies ist ein "Trick", damit es bei Reset nicht einschaltet.
digitalWrite(relaisPin2, HIGH);
pinMode(relaisPin1, OUTPUT);
pinMode(relaisPin2, OUTPUT);
}
void loop() {
// Serial.println(analogRead(ldrPin1)); // LDR Wert anzeigen
if (Serial.available()) { // wenn Zeichen auf der seriellen Schnittstelle empfangen wurden...
int inbyte = Serial.read(); // ein Zeichen lesen
if (inbyte == 'A') { // falls das Zeichen ein A ist...
if (analogRead(ldrPin1) < ldrSchwellwert) { // LDR auswerten und falls es "dunkel" ist, das Relais schalten:
digitalWrite(relaisPin1, LOW); // Relais EINS EIN
delay(stromstossDauer);
digitalWrite(relaisPin1, HIGH); // Relais EINS AUS
Serial.println("Schwellwert nicht überschritten.");
}
// Serial.println(analogRead(ldrPin2)); // LDR Wert anzeigen
if (Serial.available()) { // wenn Zeichen auf der seriellen Schnittstelle empfangen wurden...
int inbyte = Serial.read(); // ein Zeichen lesen
if (inbyte == 'A') { // falls das Zeichen ein A ist...
if (analogRead(ldrPin2) < ldrSchwellwert) { // LDR auswerten und falls es "dunkel" ist, das Relais schalten:
digitalWrite(relaisPin2, LOW); // Relais EINS EIN
delay(stromstossDauer);
digitalWrite(relaisPin2, HIGH); // Relais EINS AUS
}
}
}
}
}
}