- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 15

Thema: Drehzahl Messung

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.06.2010
    Ort
    Darmstadt
    Beiträge
    136

    Drehzahl Messung

    Hallo,
    ich habe mal wieder ein Problem .
    Mein erster Roboter macht soweit ganz gute Vortschritte. Er basiert auf der RN-Control 1.4
    bisher funktioniert soweit alles bis auf die Drehzahlmessung bzw. daraus resultierende Drehzahlregelung.

    Programmierung tu ich mit BASCOM.

    Irgendwie bekomm ich keine Drehzahl raus. Im Fahrgestell sind direkt am Motor Drehgeber angebracht die ein Rechtecksignal rausgeben sollten.

    Die Drehgeber habe ich Testweise auch mal an nen Oszi drangehalten. Dort geben sie ein Signal raus. Allerdings ist es bei dem einen Drehgeber kein genaues Rechtecksignal
    hier mal der Screenshot:
    Klicke auf die Grafik für eine größere Ansicht

Name:	SLOscope_capture.jpg
Hits:	37
Größe:	73,2 KB
ID:	26064

    Aber dennoch müsste doch zumindestens die eine Drehzahlerfassung funktionieren oder?
    Irgendwas scheint also im Code etwas nicht zu stimmen.
    Hier mal der Code als Ausschnitt:

    Code:
    .......
    'Interrupt    für Inkrementalgeber
    'Inkrementalgeber 1 an Port D2      Rechts
    Config Pind.2 = Input
    Portd.2 = 1                                                 'PullUp ein
    
    'Der Interrupt INT0 wird ausgelöst wenn der Pin PD2 gegen GND gezogen wird.
    'Also beim Übergang von HIGH nach LOW. Der Interrupt wird nicht ausgelöst, wenn
    'der Pin bereits gegen GND zieht.
    Config Int0 = Falling                                       'fallende Flanke     Low Level
    
    'Wenn der Interrupt INT0 auftritt, dann springe zum Label On_int0
    On Int0 Irq0
    
    'Int0 Einschalten
    Enable Int0
    '*********************************
    'Inkrementalgeber 2 an Port D3    Links
    Config Pind.3 = Input
    Portd.3 = 1                                                 'PullUp ein
    
    'Der Interrupt INT1 wird ausgelöst wenn der Pin PD3 gegen GND gezogen wird.
    'Also beim Übergang von HIGH nach LOW. Der Interrupt wird nicht ausgelöst, wenn
    'der Pin bereits gegen GND zieht.
    Config Int1 = Falling                                       'fallende Flanke     Low Level
    
    'Wenn der Interrupt INT0 auftritt, dann springe zum Label On_int0
    On Int1 Irq1
    
    'Int1 Einschalten
    Enable Int1
    
    Config Timer2 = Timer , Prescale = 1024                     'Für Geschwindigkeitsmessung
    On Timer2 Timer_irq2
    Enable Timer2
    
    'Interrupts global einschalten. Das ist der Hauptschalter für alle Interrupts
    Enable Interrupts    
    
    ............     
    
    Sub Inkrementgeberabfrage()                                 'Drehzahl der Räder ermitteln. Umdrehungen pro sekunde
    'Prüfen welche Zeit abgelaufen ist, Prüfen wie viel Impulse am Rad entstanden sind. Berechnen der Drehzahl       Rad hat 8 Impulse pro Umdrehung
    'Bei 8Bit Timer, 16Mhz und einem Prescaler von 1024 hätte man nach einer Sekunde Timerdurchlauf=61,035 Interrups
       Local Hilfsvariable As Word
                                              'Formel: Umdrehungen [s^-1] = (Zählerirq/8) * (61,0352/Timerdurchlauf)
       Hilfsvariable = Zaehlerirql / 8
       Hilfsvariable = Hilfsvariable * Timerdurchlauf
       Drehzahllinks = Hilfsvariable / 61.0352
    
       Hilfsvariable = Zaehlerirqr / 8
       Hilfsvariable = Hilfsvariable * Timerdurchlauf
       Drehzahlrechts = Hilfsvariable / 61.0352
    
       Print "Drehzahl Links [1/s]: " ; Drehzahllinks ; " Drehzahl Rechts [1/s]: " ; Drehzahlrechts
    
       Zaehlerirqr = 0
       Zaehlerirql = 0
       Timerdurchlauf = 0
    End Sub
    
    ............
    
    'Interrupt und Timer Routinen:
    '*************************************************  **************************************************  *****************************
    'Interrupt Int0 Unterprogramm. Wird gestertt wenn Signal an Int0 anliegt
    Irq0:
       Incr Zaehlerirqr
    Return
    
    Irq1:
       Incr Zaehlerirql
    Return
    
    'Timer 2
    Timer_irq2:
       Incr Timerdurchlauf
    Return
    Hoffe jemand kann mir helfen.
    Danke schonmal.

    Ach hab auch mal das komplette Programm beigefügt.

    Edit: hier mal nen kurzes Video:
    Angehängte Dateien Angehängte Dateien
    Es gibt keine Probleme, es gibt nur Lösungen

Ähnliche Themen

  1. Messung der Drehzahl
    Von Collage im Forum Sensoren / Sensorik
    Antworten: 6
    Letzter Beitrag: 21.05.2013, 16:12
  2. Temperatur Messung
    Von Raphi im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 06.03.2006, 18:51
  3. C-Messung
    Von wurzn im Forum Sensoren / Sensorik
    Antworten: 8
    Letzter Beitrag: 14.11.2005, 22:29
  4. [ERLEDIGT] redox-messung
    Von im Forum Sensoren / Sensorik
    Antworten: 0
    Letzter Beitrag: 27.05.2005, 07:06
  5. Drehzahl messung
    Von rup im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 7
    Letzter Beitrag: 12.04.2005, 18:44

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress