-         
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Drehzahlmessen

  1. #1
    LinkinPark
    Gast

    Drehzahlmessen

    Hallo,
    ich will die Drehzahl einer Bohrmaschiene messen. Dazu hab ich eine Gabellichtschranke aufgebaut, die einmal pro Umdrehung auslöst. Jetzt weis ich nur nicht genau wie ich daraus die Drehzahl messe. Ich wollte irgendwie die Zeit zwischen 2 Impulsen messen nur wie ?

    Vielen Dank shon mal
    LP

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Warum misst du nicht die Anzahl der Impulse in einer bestimmten Zeiteinheit.
    So wie du meintest gehts auch, schau mal in Klaus Kühnels Bascom AVR da steht wie man das macht.

    MFG Moritz

  3. #3
    RN-Premium User Begeisterter Techniker
    Registriert seit
    30.04.2004
    Alter
    39
    Beiträge
    245
    Alternativ kannst du auch Zählen, wie oft in einer bestimmten Zeit ausgelöst wird.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.05.2004
    Ort
    Detmold
    Alter
    28
    Beiträge
    557
    Such mal in der Hilfe nach "pulsein"...

    Gruß, Trabukh
    "Der Mensch wächst am Widerstand" (Werner Kieser)

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.02.2004
    Alter
    34
    Beiträge
    171
    Bei einem Implus müßte man einen Zähler auf null setzen und dann über einen Interrupt beim nächsten puls den Zähler stand auslesen und schon hat man die zeit für eine Umdrehung. Ist gerad bei kleiner Drehzahlen bis ca 4000U/min die genauerer Möglichkeit. Ansonsten kann man auch noch die Impulse während eines Zeitfensters zählen. Wenn dies ausreichend groß ist, dann kommen da auch sehr genau Werte raus.

    Gruß Johann!

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Also ich hab bei Bascom 2 Code gefunden, müsstest du dir allerdings selber erklären. Ich denke Trabukh meinte pulsin1.bas:

    Code:
    Declare Function Lopulse() As Byte
    
    Dim Value As Byte
    
    
    
    Const Inputpin = $10 , 0                  ' Inputpin Alias Pind.0
    
    Config Portb = Output
    Portb = &HFF
    
    Config Timer0 = Timer , Prescale = 1
    
    On Timer0 Overflow_isr Nosave
    
    Enable Timer0
    Enable Interrupts
    
    Do
      Value = Lopulse()
      Portb = Value
    Loop
    
    End
    
    Function Lopulse() As Byte
      $asm
    Hilo:
      Sbic Inputpin                           ' wait for Hi-Lo on inputpin
      Rjmp Hilo
      $end Asm
      Tcnt0 = 0                               ' reset Timer0
      Start Timer0
      $asm
    Lohi:
      Sbis Inputpin                           ' wait for Hi-Lo on inputpin
      Rjmp Lohi
      $end Asm
      Stop Timer0                             ' stop Timer0 after 26 cycles minimum
      Lopulse = Tcnt0
    End Sub
    
    ' overflow isr stops timer0 and set tcnt0 to zero
    Overflow_isr:
      !push R24
      Stop Timer0
      Tcnt0 = 0
      !pop R24
      Return
    bzw. Pulsein2.bas:

    Code:
    Declare Function Lopulse() As Word
    
    Dim Value As Word
    Dim Time As Word
    
    Inputpin Alias Pind.0
    
    Config Portb = Output
    Portb = &HFF
    
    
    Do
      Value = Lopulse()
      Portb = Low(value)
    Loop
    
    End
    
    Function Lopulse() As Word
    '  Local Time As Word
    
      While Inputpin <> 0 : Wend
      Time = 0                                ' reset Timer0
      While Inputpin = 0
        Incr Time
      Wend
      Lopulse = Time
    End Sub
    MFG Moritz

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.05.2004
    Ort
    Detmold
    Alter
    28
    Beiträge
    557
    Eigentlich dachte ich mehr an sowas:
    Code:
    Dim w As Byte
    
    pulsein w , PIND , 1 , 0
    print w
    end
    "Der Mensch wächst am Widerstand" (Werner Kieser)

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Gut, wenn das funktioniert sprciht natürlich nichts dagegen. Die oberen Codes sind halt aus BAscom-AVR. Muss auch zugeben, das ich mich damit noch nicht beschäftigt habe, sondern es nur beim durchblättern gefunden habe.

    Kannst du dein Code noch Kurz erläutern?
    Warum z.B. nimmst du PinD und nicht D1 oder so?
    Was meinen , 1 , 0 dahinter?

    MFG Moritz

  9. #9
    Gast
    Hallo,
    erstmal vielen Dank für alle Antworten. Die Möglichkeit die Tragukh gepostet hat ist natürlich die bequemste. Allerdings hab ich das mal ausgetestet und konnte nicht erkennen was der Befehl pulsein in die Variable w schreibt ?

  10. #10
    LinkinPark
    Gast
    der Post über diesem stammt auch von mir.

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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