- 12V Akku mit 280 Ah bauen         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 37

Thema: suche eine geeignete Zeitverzögerungsschaltung

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    03.03.2018
    Beiträge
    12
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Zitat Zitat von Manf Beitrag anzeigen
    Wenn es aufwendiger wird mit dem Controller (Wieder-) Einstieg, es gibt auch Zeitschalter mit 555-timern.

    [/URL]
    Der erste 1-sec- Impuls soll mit dem Bewegungsmelder kommen (Licht ein), der 2. 1-sec- Impuls nach einer gewünschten Zeit, zb. 2 Min (Licht aus). da weiß ich nicht, wie ich das mit 555-Timer zu machen ist.

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    18.01.2012
    Beiträge
    484
    Hallo funky34,
    ohne Grundlagen geht es nun mal nicht.

    vielleicht hilft das etwas weiter?:
    https://www.rahner-edu.de/grundlagen.../timer-ic-555/

    Gruß

  3. #13
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    Mit einem 555 wird das nicht so ohne weiteres gehen.
    Erstell erst mal mit einem 555 ein retriggerbares Monoflop.
    Der Ausgang geht beim Start von OFF auf ON (je nach Spannung die verwendet wird z.B. von 0V auf 5V).
    Und bei Ablauf der Zeit auf ON auf OFF.
    Retriggerbar heist, das wenn innerhalb der ON-Zeit ein neuer Startimpuls kommt der Timer zurückgesetzt wird und die ON-Zeit entsprechend länger wird.

    Danach nimmt man ein Latch (Flankengesteuertes Flip Flop) bei jedem Wechsel (OFF nach ON oder ON nach OFF) wird der Ausgang des Latch von OF auf ON gesetzt.
    Jetzt benötigt man eine Verzögerungskette (das kann ein zweiter 555 sein) die nach einer Sekunde das Latch zurücksetzt.

    So bekommt man ein paar Nanosekunden nach dem Auslösereigniss einen 1S Puls und am Ende der eingestellten Zeit einen zweiten 1S Puls.
    Wobeoi man die Länge des Pulses der beim Flankenwechsel auftritt auch einstellen kann wenn er nur kürzer ist als die kürzeste Zeit des ersten Monoflops.

  4. #14
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.051
    Wie gesagt in dem genannten Video über den 555, ab 4:44 wird der Monoflop erklärt.

    https://www.youtube.com/watch?v=i0SNb__dkYI

  5. #15
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    Wenn das mit dem Verständniss bei der Hardware Entwicklung noch hängt oder das Elektronik wissen nicht ausreicht, wäre die µC Variante allerdings wirklich eine Überlegung wert.

    Eventuell mal den:
    "Digispark Mini, ATtiny85, USB"
    ansehen.
    (ich selbst habe keine Erfahrung mit dem)
    Der soll mit der Arduino IDE direkt per USB programimerbar sein, ist klein und kostet nicht die Welt.
    Wenn die eine Sekunde langen Pulse nicht auf die Nanosekunde genau sein muß, ist ein Programm auch nicht all zu komplex.

    Mit dem Triggerereigniss (und wenn Merkvariable2 nicht gesetzt ist) wird der aktuelle Wert des freilaufenden Timers in eine Variable1 geschrieben
    Eine Merkvariable2 wird gesetzt und der Ausgang3 gesetzt.
    Bei jedem Programmdurchlauf wird der Timer mit der Variable1 + eine Sekunde verglichen.
    Bei Erreichen oder Überschreiten wird Ausgang3 gelöscht.

    Ebenfalls bei jedem Programmdurchlauf wird der freilaufende Timer mit dem Wert der Varibale1 + der Zeit die bis zum zweiten Puls vergehen soll verglichen.
    Ist das erreicht oder überschritten wird der Timer in eine Variable4 eingelesen und der Ausgang3 gesetzt, bei jedem Programmdurchlauf wird der Timer mit der Variable4 + eine Sekunde verglichen.
    Bei Erreichen oder Überschreiten wird Ausgang3 gelöscht und die Merkvariable2 gelöscht.

    Erfolgt ein Triggerereigniss wärend die Merkvariable2 gesetzt ist, wird Variable1 auf den aktuellen Timerwert gesetzt aber nicht der der Programmteil für den ersten ein Sekunden Puls durchlaufen.

    Diese Variante hat gegenüber delay() (eine Funktion der Arduino IDE) den Vorteil, daß der µC wärend der ganzen Zeit weiter Daten verarbeitet und nicht blokiert ist. Theoretisch kann der also noch etwas anderes parallel machen, solange die Zykluszeit für den Programmdurchlauf dadurch nicht zu lang wird. Falls doch müsste man einen Interrupteingang nuzten und ggf. Timer-IRQs nutzen.

    Das wäre im groben die Programmlogik.
    Kosten wären bei dieser Variante nur, knapp 13 € wenn man bei Reichelt kauft (andere Anbieter könnten ggf. günstiger sein).
    Die Arduino IDE kann man kostenlos runterladen.

    Eine Eingangs- und eine Ausgangsschaltung müsste man ggf. genauso bauen wie bei der Hardware Variante auch.
    (Anpass- und Schuzschaltung für den Eingang und Lestungstreiber/Anpaßschaltung für den Ausgang)
    Geändert von i_make_it (13.03.2018 um 07:11 Uhr)

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    03.03.2018
    Beiträge
    12
    Mit der Überlegung über einen µC könnte ich mich anfreunden.
    Du hast mr nun schon den möglichen Programmablauf recht detailreich beschrieben. Kannst du mir nicht die Programmzeilen zu Papier bringen. Ich werde mir den vorgeschlagenen Typ bei Reichelt bestellen.
    Und danke für die Tipps

    lg Funky

  7. #17
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    Ich kann wenn überhaupt frühestens am Wochenende mal was versuchen (Familinetermine).
    Da ich mich mit dem Board nicht auskenne, muß ich erst mal nach Doku suchen damit ich weis welche Pins was können.

    Wenn das triggerSignal lang genug ansteht, reicht ja ein digitalRead(). Steht das nur kurz an, brauchts einen Interrupteingang und eine ISR (Interrupt Service Routine).

    Kann also sein, das ich was schreibe, das bei mir (nano, uno, due, mega) funktioniert, aber nicht an dem "Digispark Mini, ATtiny85, USB".
    Das wäre dann anpassarbeit.
    Und wie schon geschrieben, eine eventuell notwendige Eingangs und Ausgangsbeschaltung sollte man nicht vergessen.
    Wäre doof so ein Teil wegen in paar gesparter Cent zu toasten.

    https://s3.amazonaws.com/digistump-r...kSchematic.pdf

    https://www.google.de/url?sa=t&rct=j...EtAIxFbzGqNLO6

    http://www.cboden.de/mikro-controlle...-dem-digispark

    https://arduino.ua/images/DPC254-2.jpg

    Code:
    // Digispark Mini, ATtiny85, USB
    // Test 1 - Feste Zeiten mit Delay
    
    void setup() {                
      pinMode(0, INPUT);
      pinMode(1, OUTPUT);  
    }
    
    void loop() {
      int trigger = digitalRead(0);
      if (trigger <> 0)
      {
        digitalWrite(1, HIGH);
        delay(1000);             //1 Sekunde an
        digitalWrite(1, LOW);
        delay(10000);         //10 Sekunden aus
        digitalWrite(1, HIGH);
        delay(1000);             //1 Sekunde an
        digitalWrite(1, LOW); 
      }
    }
    Code:
    NICHT FERTIG
    // Digispark Mini, ATtiny85, USB
    // Test 2 -
    
    unsigned long prev1micros = 0;
    int trigger = 0;
    int togglesatate = LOW;
    
    void setup() {                
      pinMode(0, INPUT);
      pinMode(1, OUTPUT);  
      // attachInterrupt(0, Eingang, LOW);
    }
    
    void loop() {
      int trigger = digitalRead(0);
      if (trigger <> 0 && togglestate == LOW)
      {
        togglestate = HIGH;
        unsigned long cur1micros = millis();
          
      }
      if (trigger <> 0 && togglestate == HIGH)
      {
        unsigned long cur1micros = millis();
          
      }  
      digitalWrite(1, HIGH);
      digitalWrite(1, LOW);
    }
    Code:
    // Digispark Mini, ATtiny85, USB
    // Test 3 -
    #
    Geändert von i_make_it (16.03.2018 um 10:45 Uhr)

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    03.03.2018
    Beiträge
    12
    Also, ich werde das Teil ja erst mal bestellen und da habe ich es auch sicher nicht vor dem WE, also ein Zeitproblem gibts nicht. Das Eingangssignal stammt vom Dämmerungsschalter und liegt minimal eine Minute an. Da der Dämmerungsschalter Hochspannung liefert, muss da erst noch ein Relais her.

    Also, wenns erst nächste Woche oder später wird, würde ich mich trotdem über die Programmzeilen freuen, ich übernehme sie nicht ungesehen, versprochen, sondern nur als Einstieg für meine Versuche mit dem Teil. Aber eine Supergrundlage wäre das bestimmt. Quellen für die notwendigen Infos habe ich Dank eurer Hilfe bekommen.

  9. #19
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.056
    Zitat Zitat von funky34 Beitrag anzeigen
    Da der Dämmerungsschalter Hochspannung liefert, muss da erst noch ein Relais her.
    Das ist keine Hochspannung, Hochspannung ist über 1000V. Nennen wir diese Spannung einfach Netzspannung. Gefährlich ist diese Spannung aber trotzdem.

    Wenn du es mit einem Relais machen willst (am Einfachsten), achte darauf das du ein Signalrelais verwendest und kein Leistungsrelais, sonst kann es zu Problemen kommen.


    Ich würde eine Flankenerkennung einbauen und auf diese Flanke reagieren. Hier als Pseudocode (mit teilweise C-Code weil ich in C programmiere):
    Bewegungsmelder = BM
    "Sollwert" ist die Pause zwischen den beiden Impulsen
    != bedeutet "ist nicht"
    == bedeutet "ist gleich"
    ++ bedeutet "erhöhen um 1"
    Code:
    Dauerschleife
    {
       BM einlesen
    
       Flankenerkennung: (BM != BM_alt) & (BM == geschalten)       => dadurch hast du eine Flankenerkennung auf eine positive Flanke
       {
          Status = 1
       }
    
       switch (Status)
       {
          case 1:
             Ausgang setzen
             Status = 2
             "switch" Abbruch
          case 2:
             Ausgang löschen
             Status = 3
             "switch" Abbruch
          case 3:
             Zähler ++
             Wenn Zähler >= Sollwert: Status = 4, Zähler = 0
             "switch" Abbruch
          case 4:
             Ausgang setzen
             Status = 5
             "switch" Abbruch
          case 5:
             Ausgang löschen
             Status = 0
             "switch" Abbruch
       }
    
       BM_alt = BM
       Pause (1s)
    }
    Zuerst wird erkannt ob der BM geschalten hat (Flankenerkennung), wenn ja wird in "case 1" der Ausgang gesetzt, durch die Pause am Ende der Dauerschleife wird der Ausgang 1s später wieder gelöscht (case 2). Die eigentliche Zeit zwischen den beiden Impulsen wird mit "case 3" gemacht, der Zähler wird bei jedem Schleifendurchlauf um 1 erhöht (dadurch hast du ein vielfaches des Schleifendurchlaufes). Wenn der Zähler den Sollwert erreicht wird in case 4 und case 5 der Impuls erzeugt.

    Beim switch kannst du noch nach "case 5" ein "default" einfügen, das wird immer ausgeführt wenn bei Status keine der cases zutrifft (z.B. nach "case 5" da dort Status auf 0 gesetzt wird).

    Du kannst auch die Pausenzeit ändern (z.b. 100ms), dann musst du aber eventuell noch zwischen den beiden Cases für Ausgang setzen bzw löschen ein weiteres Case einsetzen und mit einem Zähler versehen (wie bei case 3). Dann hast du:
    Case 1 Ausgang setzen
    Case 2 Zähler (Impulslänge)
    Case 3 Ausgang löschen
    Case 4 Zähler (Pause zwischen Impulsen)
    Case 5 Ausgang setzen
    Case 6 Zähler (Impulslänge)
    Case 7 Ausgang löschen

    MfG Hannes
    Geändert von 021aet04 (14.03.2018 um 09:34 Uhr)

  10. #20
    Neuer Benutzer Öfters hier
    Registriert seit
    03.03.2018
    Beiträge
    12
    Danke für eure Vorschläge. jetzt muss ich warten, bis das Teil da ist. Danach bin ich erst mal unterwegs. Ich werde mich später sicher nochmal melden, wenn ich vielleicht noch nen Tipp brauche.

    Lg Funky

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Ähnliche Themen

  1. Suche geeignete Steuerung für Videoüberwachungssystem
    Von allexus im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 0
    Letzter Beitrag: 26.01.2010, 11:44
  2. Suche geeignete Funkstrecke
    Von the_Ghost666 im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 04.07.2007, 20:37
  3. suche geeignete sensoren!
    Von macinstyle im Forum Sensoren / Sensorik
    Antworten: 11
    Letzter Beitrag: 20.08.2006, 14:39
  4. [ERLEDIGT] suche geeignete kamera
    Von im Forum Sensoren / Sensorik
    Antworten: 12
    Letzter Beitrag: 02.11.2004, 11:40
  5. Antworten: 3
    Letzter Beitrag: 24.04.2004, 19:40

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test