Go Down

Topic: Fenstersteuerung im Auto mit Arduino Nano verwirklichen (Read 62 times) previous topic - next topic

laforge-1701e

May 19, 2017, 03:51 pm Last Edit: May 19, 2017, 05:12 pm by laforge-1701e Reason: Insert Code
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

Code: [Select]
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;
}

HotSystems

Bitte den Sketch hier im Forum in Code-Tags posten.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.


Damit wird dieser für alle besser lesbar.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up