-         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Servosteuerung ohne Arduino und Co

  1. #11
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    56
    Beiträge
    5.794
    Blog-Einträge
    8
    Anzeige

    Hallo

    Mit dem Prescaler erzeugt man den heruntergeteilten Takt für den Timer aus dem Takt des Kontrollers. Der Takt des Timers ist um der Faktor des Vorteilers geringer als der Kontrollertakt. Ein 8MHz-Mega8 zählt mit Prescaler /8 in 20ms bis 8000000/8*0,020=20000. In einer Millisekunde zählt er bis 1000.

    Weil es so einfach ist, wählt man den Mode 14 "Fast-PWM mit ICR1 als TOP" und begrenzt den Zählbereich mit dem IRC1-Register auf 20000. Das Zählregister TCNT1 zählt dann von 0 (Bottom) nach 20000 (Top) und wird beim Erreichen von Top wieder auf Bottom gesetzt. Ein Zyklus dauert nun 20ms.

    Das Vergleichsregister OCR1A (A für Kanal A) wird mit 1000 geladen und der Ausgang OC1A wird so eingestellt, dass der Ausgang (beim Mega8 ist OC1A der Pin PB1) bei TCNT1==Bottom auf High und bei TCNT1==OCR1A wieder auf Low gesetzt wird. Wenn dann noch das Datenrichtungsregister auf Ausgang konfiguriert ist, wird am Pin PB1 ein Impuls ausgegeben,der 1ms dauert. Wenn man nun den Wert in OC1A ändert, ändert sich auch die Impulsdauer.

    In den Registern TCCR1A und TCCR1B (hier bezeichen A und B die zwei Register und nicht die zwei Kanäle!) werden der Prescaler (CS), der Modus (WGM) und die Ansteuerung des Ausgang (COM1A0 und COM1A1, A ist hier wieder der Kanal) durch setzen der entsprechenden Bits ausgewählt.

    Ich habe die Datenblätter nur überflogen, aber ich denke, die Register vom Mega8 und vom Mega256 stimmen in etwa überein. Bis auf das Setup des Pins kannst du deshalb die Konfiguration von oben übernehmen.

    Was müsste ich wie manipulieren um den einen oder anderen Servo anzusteuern?
    Mit OCR1A beeinflußt man die Impulsdauer an OC1A (PB1). Mit OCR1B funktioniert das dann auch mit OC1B an PB2, wenn du COM1B0 und COM1B1 und das DDR für Pin PB2 auch konfiguriert hast. Der Prescaler, der Mode, das Zählregister und die Einstellung für Top gilt für beide Kanäle.

    Übrigends läuft das alles automatisch im Hintergrund ohne dein Programm zu beeinflussen oder gar zu bremsen.

    Gruß

    mic
    Geändert von radbruch (21.02.2015 um 18:29 Uhr) Grund: Kanal B hinzugefügt

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #12
    Neuer Benutzer Öfters hier Avatar von Strawhat
    Registriert seit
    20.02.2015
    Beiträge
    14
    Vielen Dank für die ausführliche Erklärung, damit kann ich mal was Anfangen. Hier wäre wohl ein Oszi nicht schlecht ... leider sind die ja so teuer =/

    Hab mal einen gesehen, der es über einen PC laufen ließ, gibts da Oszi Hardware für PC? Was haltet ihr davon?
    Facebook Gruppe für Robotik, Elektronik und Modellbau Enthusiasten. https://www.facebook.com/groups/1396674970640627

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    433
    Blog-Einträge
    3
    Zitat Zitat von Strawhat Beitrag anzeigen
    Hab mal einen gesehen, der es über einen PC laufen ließ, gibts da Oszi Hardware für PC? Was haltet ihr davon?
    Google mal nach: Logic Analyzer
    Die Teile gibts zum Teil erstaunlich günstig zu haben.

  4. #14
    Neuer Benutzer Öfters hier Avatar von Strawhat
    Registriert seit
    20.02.2015
    Beiträge
    14
    Und was taugen diese Logic Analyzer im vergleich zu normalen Digital Oszis?
    Facebook Gruppe für Robotik, Elektronik und Modellbau Enthusiasten. https://www.facebook.com/groups/1396674970640627

  5. #15
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    56
    Beiträge
    5.794
    Blog-Einträge
    8
    Hier wäre wohl ein Oszi nicht schlecht
    Das Oszi ist dein Servo. Letztlich ist es doch egal, wie lange der Impuls ist. Wichtig ist nur, dass das Servo in erkennt.

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #16
    Neuer Benutzer Öfters hier Avatar von Strawhat
    Registriert seit
    20.02.2015
    Beiträge
    14
    Schon, es geht mir eher um das Verständnis des Ganzen. Das Oszi würde mir Zeigen, wie das Signal sich verändert und würd sicherlich mehr aushalten als mein Servo im Falle eines Fehlers.
    Je tiefer ich in die elektronik Themen eintauche, desto bewusster wird mir, dass das absolut kein billiges Hobby ist =/
    Facebook Gruppe für Robotik, Elektronik und Modellbau Enthusiasten. https://www.facebook.com/groups/1396674970640627

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. [ERLEDIGT] Messen einer Entfernung mit einem Arduino OHNE Kit
    Von Unregistriert im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 5
    Letzter Beitrag: 25.01.2015, 10:58
  2. ARDUINO und C++???
    Von Dr. Bombe im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 7
    Letzter Beitrag: 03.01.2013, 12:27
  3. Antworten: 1
    Letzter Beitrag: 05.12.2012, 19:11
  4. Antworten: 1
    Letzter Beitrag: 14.10.2012, 16:12
  5. Servosteuerung und STK500
    Von raoul.m@gmx.ch im Forum Assembler-Programmierung
    Antworten: 10
    Letzter Beitrag: 16.12.2006, 02:23

Stichworte

Berechtigungen

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