-         

Ergebnis 1 bis 6 von 6

Thema: Loggen einer Lichtschrankenaktivitt ber die Zeit

  1. #1

    Loggen einer Lichtschrankenaktivitt ber die Zeit

    Anzeige

    Hallo zusammen!

    ich habe ein Problem und keine Idee dafr und hatte gehofft, ihr knnt mir dabei vielleicht helfen.

    Ich mchte die Aktivitt einer IR-Schranke ber die Zeit aufzeichnen. Das heit konkret, dass das Unterbrechen der Schranke / Zhlen von einem (batteriebetriebenen) Datenlogger aufgezeichnet werden soll.
    Da das Unterbrechen aber ja nur ein kurzer Impuls ist, msste ich mit extrem hoher Frequenz abtasten.Eigentlich wrde es mir reichen, die Anzahl der Unterbrechungen in 5min- oder auch nur 15min-Segmenten zu erfassen. Dann msste ich die Unterbrechungen mitzhlen, zwischenspeichern, auslesen und zurcksetzen und irgendwie klingt das schon sehr komplex und ich bruchts eher einfach ;-)

    Ich bekomme das Unterbrechungs-Low auf einem Klinkenkabel und habe alternativ schon berlegt "einfach" eine wav. aufzunehmen und die LOWs dann hinterher auszuwerten, aber komfortabel klingt das auch nicht...

    Hat jemand von euch eine Idee wie ich elegant diskrete Impulse mindestens ber 12h, lieber eine Woche mit einem Datenlogger aufzeichnen knnte? [7Tage x 24h x 12 MP(5min) = 2016 << bliche Datenlogger Messpunktkapazitt]

    Vielen Dank schon mal im vorraus!

    spyke

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    48
    Beitrge
    2.298
    Das eine Zauberwort heist Interrupteingang.
    Da mu man nicht samplen, sondern jedesmal wenn an dem Eingang ein Interuptereignis stattfinden (steigende Flanke, fallende Flank, Pegelwechsel)
    wird eine ISR (Interrupt Service Routine) ausgelst da kommt einfach ein i=i+1 konstrukt rein.
    Das Zweite Zauberwort heist Timer.
    Den stellst Du dir so ein, das er z.B. alle Minute oder alle 5 Minuten berluft.
    Wenn das passiert wird der inhalt von i z.B. mit einem Zeitstempel wohin geschrieben (z.B. SD Karte) und i auf null gesetzt.

    Dann hadst Du immer einen Zahlenwert und einen Zeitstempel. so kannst Du alle Werte spter wieder zeitlich zuordnen.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    59
    Beitrge
    2.237
    Hallo spyke.

    Wie schon geschrieben wurde, musst du dich mit den Interrupts befassen.

    Falls das Ganze auf Batterie laufen soll, haben Interrupts noch einen weiteren Vorteil:
    Normal mssen nur der Interrupt-Controller und der Timer durchgehend laufen, den ganzen Rest, inkl. die CPU, kann man in den Tiefschlaf versetzen.
    Verwendet man noch einen 32kHz Takt fr den Timer, kommt der C mit ein paar A aus (Da muss man dann z.B. mit Pull-Ups aufpassen, die brauchen dann den meisten Strom).
    Tritt ein Interrupt auf, wird die CPU geweckt und der Strom kann natrlich schnell auf 100mA ansteigen, aber dies nur fr ein paar ms.
    So hlt dann die Batterie leicht ein halbes Jahr oder lnger.

    So funktioniert auch jedes analoge Uhren-Quarzwerk. Fr den Sekundenzeiger braucht man auch 10-100mA, aber nur jede Sekunde und nur fr ms.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Gerte ohne Simulation entwickeln konnte?

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beitrge
    1.867
    Das aufzeichnen knnte man z.B. mit einer SD Karte machen.
    Wenn Du mit ATMEL Controllern arbeitest kannst Du mal nach FAT fr AVR Googeln.
    Allerdings braucht man dazu schon einen relativ groen Controller, weil man 2 komplette Cluster ( 2*512Byte ) zwischenspeichern muss.
    Der Vorteil ist, das man die Karte aus dem Gert nehmen kann und die Daten dann einfach per Datei in den PC kriegt.
    Man knnte auch in das RAM oder das EEPROM des Controllers zwischenspeichern und dann bei bedarf die SD Karte aktivieren und die Daten dann En Bloc reinschreiben.

    Das Zhlen der Lichtschrankenaktivitt ( Interrupt ist ne gute Idee ) kann der Controller so nebenbei mitmachen.
    Problematisch sehe ich nur die Uhrzeit, hier msste man einen RTC Chip verwenden.

    Den meisten Strom wird wohl die Lichtschranke selbst brauchen.
    Mit etwas berlegung kriegt man die AVR Chips sehr stromsparend.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    59
    Beitrge
    2.237
    Zitat Zitat von wkrug Beitrag anzeigen
    Problematisch sehe ich nur die Uhrzeit, hier msste man einen RTC Chip verwenden.
    Ist gar nicht ntig, es gengt ein Timer welcher durch luft.

    Unter Unix wurde als Zeit die Sekunden seit dem 1.1.1970 eingefhrt. Dies bentigt eine 23-Bit Variable, welche jede Sekunde um 1 erhht wird. Das reicht dann fr etwa 138 Jahre ab dem 1.1.1970. Dafr gibt es in C schon fertige Funktionen, ist aber gar nicht so aufwndig, man muss nur wissen wie man die Schaltjahre richtig berechnet.

    Je nach Anforderung kann das Intervall auch etwas anderes als 1s sein.

    BTW: In den meisten meiner Gerte ist seit Mitte der 80er Jahre so ein Timer versteckt. Meist zeigt er dann nur die Zeit seit dem letzten Einschalten an, kann aber ber Service-Funktionen abgerufen werden. Entstanden ist der Timer immer als erster Gehversuch mit den Timern und dem Interrupt-Controller auf einem neuen C.
    Dieser Timer hat sich dann oft als ntzlich bei der Entwicklung erwiesen. Man kann erkennen, wenn irgendwie ein unplanmssiger Reset auftritt und wenn der Timer sehr nach geht, werden die Interrupts irgendwo zu lange blockiert.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Gerte ohne Simulation entwickeln konnte?

  6. #6
    Herzlichen Dank fr eure Vorschlge!

    Ich werde mich mal mit dem Aufbau einer solchen Interrupt-Schaltung beschftigen und versuche das umzusetzen.
    Ggf. und durchaus wahrscheinlich melde ich mich nochmal.

    VG spyke


    PS.: Ich war krank geworden. Daher kam von meiner Seite so lange keine Antwort.

hnliche Themen

  1. live loggen - uart
    Von hannes_u im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 03.10.2010, 20:50
  2. [Frage] Zeit einer RS 232 berechnen
    Von nasir im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 02.07.2010, 20:17
  3. setzen einer Variable nach ablauf einer bestimmten Zeit
    Von mat-sche im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 08.12.2008, 00:45
  4. Befestigung einer Welle an einer Platte ber Wlzlager
    Von Biometriker im Forum Mechanik
    Antworten: 4
    Letzter Beitrag: 25.01.2008, 22:03
  5. Waitms befehl mit einer Variablen als zeit?
    Von strunz im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 13.10.2006, 22:39

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhnge hochladen: Nein
  • Beitrge bearbeiten: Nein
  •