- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Drehzahlmesser mit schneller Reaktionszeit

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    39
    Beiträge
    207

    Drehzahlmesser mit schneller Reaktionszeit

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen,

    mein aktuelles Projekt ist ein Drehzahlmesser mit induktivem Abgriff für 1 Zylinder 4-Takt Motore.

    Die Signalaufbereitung mit einer Transistorstufe ist soweit fertig, aus den schwingenden Zündsignalen filtere ich mir nun saubere 5V Rechtecksignale heraus.

    Nun kommt das Problem an dem ich jetzt hänge: Die realisierung der Datenerfassung dieser Drehzahl. Das ganze ist nämlich relativ zeitkritisch, heißt ich möchte die geringstmögliche Reaktionszeit zwischen tatsächlicher Drehzahl und am AVR ausgewerteter Drehzahl haben. Mit Gering meine ich Verzögerungen von max 100ms.
    Im Klartext also: Ich sage meinem Controller "gib mir ein Signal genau dann, wenn 10000 U/min anliegen, und zwar exakt wenn es so weit ist, nicht erst wenn schon seit >100ms 10000 U/min anliegen"
    Man muss sich als Betriebsbedingung vorstellen, dass die Drehzahl sich innerhalb von 2 Sekunden von 10 Hz auf 40 Hz verändern kann (Beschleunigung), was nun das Hauptproblem verursacht. Die Drehzahl ändert sich permanent, und mein Controller muss nun trotzdem genau diesen Zeitpunkt errechnen können.

    Ich habe nun 3 potentielle Möglichkeiten:

    1. Pulsabstand messen und darüber die Drehzahl ermitteln
    2. Pulse über definiertem Zeitintervall zählen
    3. Hardwareseitig die Impulse Integrieren (Kondensator parallel zum Signalausgang, je höher die Frequenz desto höher die Spannung) und analog auswerten

    Ich habe jetzt noch keine weiteren Mathematischen Überlegungen dazu angestellt, vielleicht hat jemand ja direkt einen Tip wie es am schlauesten ist, oder wie es definitiv nicht gehen wird.
    Grüße Paul

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    39
    Beiträge
    731
    Hi

    Ich bin gerade dabei für mein Auto ein digitalen Tacho + Drehzahlmesser zu bauen. Ich mach das nach deiner Variante 2 und rechne dann auf ganze Minuten hoch.

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo Powell!

    Die schnallstmögliche Reaktionszeit gibt die 1. Möglichkeit, die jedoch eine Umrechnung der Periode (Zeit zwischen zwei gleichen Flanken) in Frequenz und Multiplizieren mal 60 benötigt.

    Die beide übrige Methoden hätten längere Reaktionszeit.

    MfG

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    39
    Beiträge
    207
    Hallo zusammen,

    ich habe ebenfalls mal weiterüberlegt und konkretere Zahlenwerte angenommen: Bei 40 Hz beträgt mein Pulsabstand 25 msec.

    Demnach könnte ich doch sagen "sobald der Abstand zwischen zwei eingangspulsen kleiner als 25msec wird, hast du die Bedingung erreicht"

    Wie kann ich dies nun über Bascom realisieren? Es gibt da den Pulsein Befehl, allerdings hatte ich schon mal vergeblich damit experimentiert, ggf. ein Verständnisfehler? Weiß jemand bescheid wie man ihn in diesem Konkreten Beispiel einfließen lassen würde? (Heißt: Wenn Pulsabstand größer 25ms mache nichts, wenn Pulsabstand <= 25ms dann gebe Signal. Wichtig ist dabei natürlich dass der Pulsabstand permanent gemessen wird, selbst wenn mal über Stunden gar kein Impuls kommt, vielleicht liegt da das Problem)

    Möglichkeit 2 schließe ich nun auch mal kategorisch aus, da ich im Maximalfall über 100ms gerade mal 4 Impulse zu zählen hätte, viel zu geringe auflösung.
    Grüße Paul

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    39
    Beiträge
    731
    Das mit den 25ms Pulslänge kommt aber nur hin wenn ein Puls nahe 0ms lang ist, oder seh ich das falsch?!

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    39
    Beiträge
    207
    Hallo Tobi,

    ich meine den Pulsabstand, oder genauergesagt: Den Zeitabstand zwischen zwei ansteigenden Flanken. Hiernach ist es egal wie lang der Puls nun tatsächlich ist, da es immer auf die Flanken ankommt.
    Grüße Paul

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    39
    Beiträge
    731
    Hast recht, hab da was durcheinander gebracht.
    Ich denke auf die Art liesse sich das sehr genau und sehr schnell messen. Das werde ich für mein Projekt wohl übernehmen.

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    39
    Beiträge
    207
    Also, ich bin hier gerade wieder am experimentieren und kann mein Problem mal präzisieren: Ich verwende den Timer um ein Rechtecksignal mit einer Pulsbreite von 13ms (also Pulsabstand 26ms) zu generieren. Dies wird über einen Taster an den Eingang zur Pulsabfrage geführt. Drücke ich den Taster liegt das Signal an, drücke ich ihn nicht halt eben nicht.
    Folgender Code auszug:

    Code:
    Do
    
      Pulsein Puls , Pind , 1 , 1
    
      If Puls < 1300 Then
      Portd.7 = 0
      End If
    
      If Puls > 1300 Then
      Portd.7 = 1
      End If
    
    Loop
    
    End
    
    Timer_irq:
    Timer1 = 62285
    
    Toggle Portd.0
    
      Return
    Wenn ich mit 13ms Pulsbreite und "Puls" auf 1300 (*10 us) abfrage funktioniert es, meine "Puls LED" geht aus sobald ich den Taster drücke. Wenn ich allerdings die Frequenz variiere passiert folgendes: Senke ich die Frequenz "blinkt" meine Puls LED auf ein mal im takt der Eingangsfrequenz (laut meinem Code geht sie über einer Frequenz aus und unterhalb einer Frequenz an, aber sie kann nicht blinken).
    Erhöhe ich die Frequenz passiert gar nichts, die LED behält ihren Zustand wie wenn ich den Taster nicht drücken würde.

    Hat jemand eine Idee?
    Grüße Paul

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    39
    Beiträge
    207
    Also ich komme einfach nicht weiter

    Die Hilfebeschreibung dieses Befehls ist mehr als mau. Wenn ich das ganze über eine Tastereingabe mache, geht gar nichts mehr. Es scheint so als ob der Controller nach dem Aufspielen des Programms kurz auf eine Eingabe wartet, und dann geht die LED des Pulsein-Ausgangs aus und das Programm reagiert einfach nicht mehr auf meine Tastereingabe. Egal ob ich langsam oder schnell drücke, egal ob ich den Pulsein-Wert klein oder groß wähle.

    In der Hilfe ist kurz etwas von der ERR Variable erwähnt. Ich vermute dass diese auf eins gesetzt wurde und daher Pulsein nicht mehr ausgewertet wird. Aber das kanns doch nicht sein!?

    Gibts denn niemanden der diese Funktion öfter nutzt, sie komplett versteht, und mir nochmal genauer erläutern kann?
    Grüße Paul

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.308

    Re: Drehzahlmesser mit schneller Reaktionszeit

    Zitat Zitat von Powell
    Die Signalaufbereitung mit einer Transistorstufe ist soweit fertig, aus den schwingenden Zündsignalen filtere ich mir nun saubere 5V Rechtecksignale heraus.
    Ist zwar nicht deine Thread-Frage, aber die Schaltung würde mich interessieren

    Und wie und wo nimmst du das Signal ab ?
    Ich programmiere mit AVRCo

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress