Hallo Gemeinde,
mir schwebt folgendes vor:
Ich möchte in mein Auto die Automatische Fenster auf/zu Funktion mittels Arduino verwirklichen.
Die Schaltung an den Fenstermotoren ist denkbar einfach und bereits getestet.
Arduino Nano ins Auto verpflanzen, Spannungsregler auf 5V davor und 5V Relais (2er Platine) dran.
Da ich das KeyFob Signal (öffnen/Schliessen) nicht auslesen kann, wollte ich es über die Anzahl der Öffnungs/Schliessimpulse am Door Lock Actuator versuchen.
Drücke ich Tür auf, zähler 1, nochmal innerhalb 2 sek, Zähler 2, nochmal innerhalb 2Sek, Zähler 3 und Relais impuls ein, für Fenster auf, Zähler = 0
Verstreichen 5 Sek während des Hochzählens, Zähler = 0.
Dasselbe mit Tür zu: 1 x Drücken Zähler 1, innerhalb 2Sek drücken, Zähler 2, innerhalb 2Sek drücken, Zähler 3, Relais ein, Fenster zu, Zähler =0
Ich habe es nun schon mit Delay und Millis versucht aber bisher sind die Ergebnisse noch zu ungenau, bzw. bekomme ich den TimeOut nicht vernünftig hin. Er zählt und zählt.
Wie behandele ich die 12V Impulse? Setze ich die auch per Regler auf 5V runter?
Wie setze ich am TimeOut und Countreset an?
PS: Code ist noch die Breadboard Variante mit Taster und LED
Gruß
Karsten
const byte LED = 6;
const byte Button = 7;
const byte LED2 = 8;
byte ButtonState;
byte lastState = LOW;
byte count = 0;
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(Button, INPUT);
}
void loop() {
ButtonState = digitalRead(Button);
if(ButtonState && ButtonState != lastState) // button latch, no debounce needed.
{
if(count < 3) // This will check to see if the count is within a range of 0 - 3, and anything over that, it will reset count back to 0.
count += 1; // same as count = count + 1;
else
count = 0;
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
Serial.println(count);
}
// if (count = 3)
// {
//digitalWrite(LED2, HIGH);
//delay(5000);
//digitalWrite(LED2, LOW);
//count = 0;
// }
// else
lastState = ButtonState;
}
Taster-Test-LED-Counter.ino (758 Bytes)