-
        

Ergebnis 1 bis 8 von 8

Thema: Drehzahl abfragen "Dreht", "Dreht nicht"

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    08.06.2005
    Ort
    Eisenach
    Alter
    30
    Beiträge
    47

    Drehzahl abfragen "Dreht", "Dreht nicht"

    Anzeige

    Hallo,

    ich habe jetzt schon einiges hier gelesen und auch selber probiert. Bin aber zu keiner sauberen Lösung meines Problems gekommen.

    Ich habe einen Motor der mit einer Drehzahl von ca. 5400rpm läuft, bei jeder Umdrehung gibt mir ein Sensor ein kurzes Signal an den MC.
    Im Programm möchte ich dieses Signal nun abfragen und in einen Merker schreiben. Also MotorOK=1 oder MotorOK=0.
    Drehzahlschwankungen treten am Motor so gut wie keine auf es muss also wirklich nur auf "Dreht", "Dreht nicht" abgefragt werden. Und diese Abfrage sollte permanent und mit minimalster Verzögerung laufen.

    Bin über jegliche Hilfe und Anhaltspunkte dankbar.

    Laufen sollte das ganze auf einen 8515.

    Grüße
    Elias

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.04.2010
    Beiträge
    170
    Du könntest einen Counter nehmen und diesen Wert mit nem Vorgängerwert nach einer Zeit X vergleichen.

    MfG JoeBlack

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    06.11.2006
    Beiträge
    1.078
    Hallo
    Eventuell ist ein retriggerbares Monoflop verwendbar.
    (in Hard- oder Software)
    Mit freundlichen Grüßen
    Benno
    Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
    Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.551
    EINE der vielen Möglichkeiten:

    5400 Upm sind 11 ms pro Umdrehung
    1) Timer aufbauen mit 1 ms (evtl. weniger)
    2) ISR des Timers zählt eine Variable pro Interrupt um eins hoch. Ist der Wert über 15 (oder 20 oder so), dann Fehlerflag setzen und Variable nullen.
    3) Motorsensorsignal an PD2 oder PD3 = INT0 oder ~1
    4) ISR des External Interrupts schaut nach dem Zählerstand der Timervariablen. Ist der deutlich über 11, dann dreht der Motor zu langsam - also Fehlerflag setzten. Ansonsten Timerwert nullen und zurück.

    Verzögerung der Fehlermeldung also ca. 20 ms.

    OK?
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Einen Timer mit Interrupt konfigurieren
    -den Timer starten
    -mit einem externen Interrupt den Timer immer wieder auf Null setzen
    -läuft der Timer über, weil Impulse fehlen, kommt der Timeroverflowinterrupt und es kann reagiert werden.

    Da hier nur Register gesetzt werden, dürfte der Code sehr schnell sein.
    Die gewünschte Zeit bis zum Interrupt kann dadurch verändert werden, indem nicht auf Null zurückgesetzt wird, sondern auf einen höheren Wert.

    Günter

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    08.06.2005
    Ort
    Eisenach
    Alter
    30
    Beiträge
    47
    Danke vielmals, habe es jetzt mit dem Timer gemacht, welcher durch die Impulse vom Sensor zurück gesetzt wird.

    Klappt super und ich habe eine, ohne Weiteres, nicht messbare Reaktionszeit.

    Grüße
    Elias

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.09.2006
    Alter
    28
    Beiträge
    841
    Blog-Einträge
    1
    einfachste lösung: magnet ran spule dahinter un ne diode..spannung messen (ev. glätten)

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    08.06.2005
    Ort
    Eisenach
    Alter
    30
    Beiträge
    47
    Zitat Zitat von dremler
    einfachste lösung: magnet ran spule dahinter un ne diode..spannung messen (ev. glätten)
    Auch das wäre ein durchaus praktikable Lösung. In meinen Fall leider nicht mehr zu realisieren, da meine "Motor-Sensor-Einheit" konstruktiv nicht mehr verändert werden kann.

    Grüße
    Elias

Berechtigungen

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