Hallo und einen schönen guten Morgen an alle!
Ich setze mich für eine kleine Projekt-Steuerung neuerdings mit dem Arduino auseinander und hänge aktuell fest. Vielleicht könnt ihr mir einen simplen Lösungsvorschlag aufzeigen, den ich dann umsetzen kann (Meine Kenntniss-Stand ist gleich +/- 0)
Das System an sich ist relativ einfach:
Es gibt zwei unabhängig voneinander arbeitende Kreise.
Jeder Kreis besitzt einen IR-Sensor und eine Pumpe. Sobald der IR-Sensor eine Bewegung erkennt, soll die Pumpe für 2 Sekunden laufen. Beide Kreise sollen jedoch unabhängig voneinander, parallel funktionieren!
Problem:
Hat jetzt allerdings der erste Sensor eine Bewegung festgestellt, ist der zweite Kreis für eine Zeit komplett außer Funktion. Wie kann ich die beiden Kreise unabhängig voneinander gestalten? Liegt meine Vermutung richtig, dass "delay" an dieser Stelle fehlplatziert ist?
int ir1Pin = 2; // Infrarotsensor 1
int pump1Pin = 5; // Pumpe 1
int ir2Pin = 3; // Infrarotsensor 2
int pump2Pin = 6; // Pumpe 2
void setup() {
Serial.begin(9600);
pinMode(ir1Pin, INPUT);
pinMode(pump1Pin, OUTPUT);
pinMode(ir2Pin, INPUT);
pinMode(pump2Pin, OUTPUT);
}
void loop() {
int s1 = digitalRead(ir1Pin);
if( s1 == LOW){
Serial.println("sens1 = 0 Sensor 1: Kein Objekt gefunden...");
}else{
Serial.println("sens1 = 1 Sensor 1: Objekt erkannt!");
digitalWrite(pump1Pin, HIGH);
delay(2000);
digitalWrite(pump1Pin, LOW);
}
int s2 = digitalRead(ir2Pin);
if( s2 == LOW){
Serial.println("sens2 = 0 Sensor 2: Kein Objekt gefunden...");
}else{
Serial.println("sens2 = 1 Sensor 2: Objekt erkannt!");
digitalWrite(pump2Pin, HIGH);
delay(2000);
digitalWrite(pump2Pin, LOW);
}
}
Ich danke vorab und wünsche schonmal einen guten Start in's Wochenende!
Mfg, Lars