- 12V Akku mit 280 Ah bauen         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: Einschaltsignal mit externer Spannungsquelle, Zeitverzögertes Ausschalten

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.11.2013
    Beiträge
    11

    Einschaltsignal mit externer Spannungsquelle, Zeitverzögertes Ausschalten

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    bin Neueinsteiger in Arduino und hätte mal ne Frage, ich möchte eine LED schalten sobald an einem Eingang eine Spannung anliegt. Die LED soll dann 4 Sekunden leuchten und danach abschalten. Die Spannung an dem Eingang ist aber kein Impuls sonder bleibt dauerhaft anstehen, die LED soll aber trotzdem nach 4 Sekunden abschalten. Erst nach abschalten der Spannung an dem Eingang und erneutem Anschalten der Spannung soll die LED wieder 4 Sekunden leuchten. Wie mache ich das am besten?

    Danke

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    So in etwa würde ich das erst mal löse (Bascom) Nicht sehr elegant aber funktionell
    Eleganter würde man das mit einen Timer machen. Dann bleibt das Programm nicht in der Port-Abfrage stehen. Aber das wäre glaube ich erstmal ein Thema für Kanonen und Spatzen

    Code:
    do
    If Eingang = 1 then 'Wenn Eingang High wird
    Ausgang = 1 'Ausgang einschalten
    wait 4 '4 Sekunden warten
    Ausgang = 0 'Ausgang ausschalten
    endif 
    schleife: 'schleife falls Eingang noch High ist
    If Eingang = 1 then 'Eingang noch High???
    goto schleife 'Jup Eingang noch High, Schleife nochmal durchlaufen
    endif
    loop

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.11.2013
    Beiträge
    11
    Danke,

    ich kanns aber leider nicht ganz nachvollziehen. Ich habe zwei Schleifen nacheinander? Woher weiß er welche Schleife er nehmen soll, die fangen doch beide gleich an?

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Nein die fangen nicht gleich an. Es wird von oben nach unten abgearbeitet, Zeilenweise.
    Risc-Controller können keine Befehle parallel abarbeiten. Soweit ich weis können das nur diese Propeller Chips.

  5. #5
    Benutzer Stammmitglied Avatar von PlasmaTubeI²C
    Registriert seit
    19.03.2013
    Ort
    Nürnberg
    Alter
    28
    Beiträge
    78
    Ganz simpel würde ich das auf Anhieb so lösen:

    Code:
    void loop() {
      if(digitalRead(input) == HIGH && lastread == false){
         digitalWrite(ledpin, HIGH);
         delay(4000);
         digitalWrite(ledpin, LOW);
         lastread = true;
      }
      else if(digitalRead(input) == LOW && lastread == true){
        lastread = false;
      }   
    }
    Erklärung:

    Bei der ersten if-Bedingung wird abgefragt, ob am Eingangs-Pin eine Spannung anliegt und ob ein Wechsel stattgefunden hat. (von Low auf High)
    Trifft das zu, wird der Ausgangs-Pin auf HIGH gesetzt, eine beliebige Zeit gewartet und wieder ausgestellt.
    Die Variable "lastread" wird auf "true" gesetzt, was in dem Fall den Sinn hat, das das Programm weiß, dass beim aktuellen Status des Eingangs-Pins die Led schon an war - sprich es muss erst mal
    so lange gewartet werden bis das Signal wieder 0 ist.
    Trifft das zu (wir sind nun bei der "else if"), wird erst geprüft, ob zuletzt die Led an war, sonst würde die else-if-Bedingung bei nicht anliegendem Signal dauerhaft ausgeführt werden.
    War der Ausgangs-Pin vor dem Wechsel High -> Low an, wird die 'lastread' wieder zurückgesetzt und bei erneutem Anlegen eines Spannungspegels fängt das Ganze von vorne an.

    Anmerkung: Wie Picojetflyer schon sagte, ist ein 'delay' nicht wirklich sinnvoll, da es den kompletten Programmfluss anhält, für den Anfang reicht es aber.
    Gruß, Stefan. Rechtschreibfehler gefunden? Kannste behalten!

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    03.11.2013
    Beiträge
    11
    Super, danke werde ich gleich mal testen. Noch eine Frage dazu, ich habe am Eingang (INPUT)eine Spannung von 1,8 Volt bei der die Schaltung ausgelöst wird. Muss ich hier noch was extra programmieren da die Eingänge ja auf 5 Volt max ausgelegt sind?

    Danke

  7. #7
    Benutzer Stammmitglied Avatar von PlasmaTubeI²C
    Registriert seit
    19.03.2013
    Ort
    Nürnberg
    Alter
    28
    Beiträge
    78
    Soweit ich weiß, lösen die Pins erst ein HIGH-State aus, wenn die Spannung höher als 3V ist, genaue Werte habe ich nicht im Kopf.
    Meistens bei etwas mehr als der Hälfte der Maximalspannung des Mikrocontrollers.

    Musst wahrscheinlich nen OPV davor setzen, damits mit 1,8V klappt.
    Gruß, Stefan. Rechtschreibfehler gefunden? Kannste behalten!

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    03.11.2013
    Beiträge
    11
    Ich glaube ich hatte irgendwo gelesen, dass man das einstellen kann, nach dem prinzip der PWM, am digitalen Eingang kann glaube ich der Wert eingestellt werden, sowie eine Schaltschwelle

    - - - Aktualisiert - - -

    Könnte man nicht auch für den Eingang einen analogen port verwenden?

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Du kannst einen analogen Port verwenden und je nach dem dort ausgegebenen Wert deine Aktion setzen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    03.11.2013
    Beiträge
    11
    Hallo Hubert, wie müsste denn der Code für den analogen Port als Eingang aussehen. Ab 1,5 Volt Eingangssignal sollte geschaltet werden. Danke

    Grüße

    Bert

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. Lampen mit RN-controll an- und ausschalten
    Von cricri im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 18.01.2011, 10:22
  2. 5V/3,3V Spannungsquelle mit mind. 1A gesucht
    Von BlackDevil im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 10
    Letzter Beitrag: 20.03.2010, 09:47
  3. Mit dem AVR eine Hochstromleitung ein/ausschalten
    Von Basteltisch im Forum Elektronik
    Antworten: 43
    Letzter Beitrag: 09.11.2009, 18:58
  4. Led mit Taster ein- und ausschalten
    Von Nullinger im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 30.01.2009, 14:00
  5. Antworten: 18
    Letzter Beitrag: 07.12.2004, 13:52

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen