Hallo, möchte einen 230V Badlüfter mittels Arduino Nano und 5V Relais ansteuern, um über einen Taster den Lüfter 15 Min. laufen zu lassen.
Leider macht mein Arduino nach einmal tasten, von selber 15 Min. loops, die if Schleife wird also selbständig immer wieder neu ausgeführt, obwohl gar nicht mehr getastet wird.
Ist an diesem Sketch was falsch?
Ist nicht mein erster Arduino Nano des Typs der im Haushalt verbaut ist.
Ich hatte zuerst eine 2m lange Leitung zum Taster mittlels normalem Klingeldraht und hatte Störungen und geisterinputs. Dies habe ich durch ausschalten des intern pullups und nutzen eines 1k Ohm PullUps behoben. Auch mit einer 10cm Leitung zum Taster habe ich solch unveränderte Loops. muss ich mit break; erst beenden? Habe ich noch nie verwenden müssen.....
Nachbau Nano mit Atmega328 CH340 Old Bootloader
Standard NPN BC547 Schaltung am SONGLE SRD-05-SLC Relay (ohne Optokoppler)
LG G3 USB Ladegerät.... als Stromversorgung
void setup() {
pinMode(9, OUTPUT); // Badlüfter im WC ansteuern
pinMode(2, INPUT); // Hier ist der WC-Lüfter-Taster dran
}
void loop() {
int WCTaster = digitalRead(2); //DPin 2 lesen
if (WCTaster == LOW) { // WENN WC Lüfter Taster betätigt wird, wegen pullup wird taster betätigt gleich low
delay(2000); // "entprellen" mit 2 Sek. Delay
if (WCTaster == LOW) { // Wenn dann der Taster noch immer gedrückt wird, dann....
digitalWrite(9, HIGH);
delay(900000); // aktiviere 15 Min lang das WC Lüfter Relais
digitalWrite(9, LOW);
}
}
}
arduino_009:
Hallo, möchte einen 230V Badlüfter mittels Arduino Nano und 5V Relais ansteuern, um über einen Taster den Lüfter 15 Min. laufen zu lassen.
Leider macht mein Arduino nach einmal tasten, von selber 15 Min. loops, die if Schleife wird also selbständig immer wieder neu ausgeführt, obwohl gar nicht mehr getastet wird.
.....
Hast du deinen Pullup-Widerstand evtl. falsch angeschlossen ?
Also an GND anstatt an VCC +5V ?
Dann passiert das, was du beschreibst.
Willst Du uns mit Deiner Fehlerbeschreibung sagen das der Lüfter immer läuft, egal was Du mit dem Taster machst ?. Dann nimm doch mal den Draht weg der am Taster auf GND angeschlossen ist, Damit kannst Du dann die Funktion des Tasters testen.
das erste If und das delay(2000) kannst Du doch weglassen. Was soll sich denn an dem Zustand von WCTaster nach den 2s geändert haben ? Der Zustand wird ja nicht mehr aktualisiert.
Dann bau dir doch mal ein Serial.print an geeigneter Stelle ein damit Du Dir den Zustand mal ansehen kannst.
Ja, er lässt sich nicht übersetzen (compilieren). Bitte poste den vollständigen, compilierenden Code. Auch die Hinweise der Anderen sind lesenswert. Ein Entprellen ist vollkommen unnötig.
HotSystems:
Ich vermute mal, da der TO sehr neu ist, kennt er sich mit den Begriffen noch nicht aus.
Er möchte wohl kein Entprellen, sondern nur eine 2 Sekunden Verzögerung.
Dann wäre es hilfreich, sich einmal den Wikipedia-Artikel zum Prellen anzusehen.
Ich verstehe das auch so, dass man den Taster LANGE betätigen soll, bevor der Lüfter losläuft.
Und übersetzen tut der Sketch schon, wenn man den ersten Buchstaben weglässt. Sei mal nicht so pingelig, Gregor.
Was aber dann falsch sein soll, kann ich auch nicht erkennen. (Evtl. Pin 13 statt 9 nehmen und schauen, ob die LED kommt?
Ein elektrisches Problem: Relais verursacht Arduino Reset bevor/während es anzieht?
Ja, wie z.B. die fehlende Freilaufdiode, wodurch der Transistor oder Arduino schon gekillt wurde.
Also @TO auch mal ein Schaltbild posten, damit wir endlich sehen können, was du alles falch machst.
Edit:
Wenn es zukünftiger auch komfortabler werden soll, kannst du den Taster (vorrausgesetzt das funktioniert) durch einen Bewegungsmelder ersetzen. Dieser oder noch besser dieser hier.