-         

Ergebnis 1 bis 3 von 3

Thema: Frage: INT0/1 für Motor-Drehzahl verwenden

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.07.2006
    Ort
    Puchheim
    Alter
    69
    Beiträge
    419

    Frage: INT0/1 für Motor-Drehzahl verwenden

    Anzeige

    hi,

    ist es eigentlich möglich, beim ASURO die Motorgeschwindigkeit links/rechts über die Interrupt-Eingänge 0/1 (8-Bit-Timer) zu steuern?

    An INT0 (PD2/PIN4) hängt ja nur die rote Status-Led, auf die ich verzichten kann, an INT1 (PD3/PIN5) die Switches, die ich z.Zt. auch nicht nutze.

    Anstelle der Reflexsensor/Led Mimik/(T11/T12,D13/14) würde ich Gabellichtschranken verwenden, die (relativ) sauberes Low/High-Signal liefern (Ich brauch dann nicht die AD-Wandlung für die Encoder und kann dann wohl auch hohe Drehzahlen direkt (an der Motorwelle) messen).

    Hat da bereits jemand Erfahrung oder geht es prinzipiell nicht, die Motordrehzahl über die 8-Bit-Interrupts zu ermitteln ?


    Gruß

    mausi-mick

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554

    Re: Frage: INT0/1 für Motor-Drehzahl verwenden

    Hallo mausi_mick,

    Zitat Zitat von mausi_mick
    ... ist es eigentlich möglich, beim ASURO die Motorgeschwindigkeit links/rechts über die Interrupt-Eingänge 0/1 (8-Bit-Timer) zu steuern? ...
    Das überlege ich auch seit einiger Zeit.

    Zitat Zitat von mausi_mick
    ... Hat da bereits jemand Erfahrung oder geht es prinzipiell nicht, die Motordrehzahl über die 8-Bit-Interrupts zu ermitteln ? ...
    Ich habe das an meinem Dottie gemacht mit gehackten Servos, bei denen die Elektronik total entfernt und durch Gabellichtschranken ersetzt worden war. Es geht also, und noch dazu sehr gut.

    Beim Dottie funktioniert das so gut, dass ich ein entsprechendes Vorhaben auf meine asuro-Arbeitsplan-Warteliste geschrieben habe. Deshalb hatte ich Dich vor Kurzem nach der Montage von Deinem Encoder am Motorritzel gefragt.

    Ich habe mit dem Timer 2, das ist beim m168 ein 8-bittiger Timer, einen 50µs-Interrupt im CTC-Modus programmiert; 20 MHz, kein prescaler, OCR2A = 124. In der zugehörigen ISR wird ein Zeitzähler bis 20000 hochgezählt (=1 sec) und dann wieder auf Null gesetzt. Diese Zeitmarke wird bei jedem extINT0/~1 abgefragt bzw. ausgewertet, um die Zeit für den letzten Encoderabschnitt zu bestimmen. Der Zeitbedarf wird in der Regelung (Integer, 100 Hz, etwas tricky bei den Parametern, siehe Dottie-Link oben) ausgewertet. Der Geradeauslauf ist bei Dottie besser als +/- 1 mm auf 1m Laufstrecke. Blos Kurvenfahren habe ich mit Dottie noch nicht geübt *schnief*.
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.07.2006
    Ort
    Puchheim
    Alter
    69
    Beiträge
    419
    Hallo oberallgeier,
    danke für die Info,
    will aber erstmal beim ASURO bleiben und den TIMER2 möglichst nicht verwenden, da für IR-Schnittstelle bzw. den Abstandssensor benötigt.

    Ich hab aber noch keine genaue Vorstellung, wie das mit Timer0 und 1 geht (Timer0 8-Bit , Timer1 16-Bit), und weiss nicht, ob das mit dem PWM
    für die Motoren (OCR1A/OCR1B) Probleme gibt.

    Ich hab nur den Eindruck, dass das mit den ENCODER-Scheiben auf dem Ritzel mit den 8-Bit-ADC-Wandlern bei hoher Geschwindigkeit Probleme
    macht (ca 100 Motorumdrehungen / s)(ca 400 ADC-Wandlungen/ s) (x 2 für links/rechts).

    Mit dem abgefeilten Zahnrad auf der Welle hab ich schon mal bei Drehzahl nahe Null (Handantrieb) und einer provisorisch angebrachten Gabel-LS gemessen ( An/in dem Zahnrad sind in 90° Abstand bereits vier Bohrungen mit ca 2 mm Durchmesser). Bei den vorhandenen Gabellichtschranken (OPB...) schaltete der Transistor bei ca 15mA Diodenstrom zwischen ca 100mV und Versorgungsspannung bei 4,7kOhm Collector-Widerstand. Über die Gabel-LS (von Optek) gibt's wohl keine Unterlagen, die Anschlüsse sind aber - zumindest bei der IR- Diode - (1,1V Flussspannung) leicht zu ermitteln, nur sollte man mit der Messspannung unter 5V und dem Strom unter 10mA bleiben, da die Transistoren oft nicht sehr spannungsfest sind.

    Gruß

    mausi_mick

Berechtigungen

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