- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 10

Thema: Eigenbau RP6 ... wie Encoder kalibrieren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von Jackeder Beitrag anzeigen
    danke für die Blumen, ich programmiere in C
    Wie gesagt die Encoder sind an einem ATmega 16 angeschlossen an Pin PD2 und PD3 über einen 10Kohm Pull UP, sprich wie als wären es Taster
    sieht dann im Prog. so aus

    volatile int TaktLi;
    volatile int TaktRe;
    // ** Interrupt-routinen**
    ISR(INT0_vect) //Encoder rechts zählen
    {
    TaktRe++;
    }
    ISR(INT1_vect) //Encoder links zählen
    {
    TaktLi++;
    }

    mit "TaktLi" und "TacktRe" arbeite ich dann weiter bzw. anzeigen auf dem LCD
    Ich kenne die Decoder vom RP6 nicht.

    Grundsätzlich hat man aber immer das Problem des Prellens.

    Ein mechanischer Schalter macht nicht einfach sauber Kontakt. Der hüpft beim Schliessen erst mal wie ein Ball etwas rum und macht mal Kontakt und mal nicht. Die Prellzeit liegt typischerweise im Bereich von ms. Wenn die Elektronik schneller ist, wertet sie dies als mehrere Impulse.

    Beim RP6 werden zwar Lichtschranken verwendet, die können aber auch Probleme haben sich eindeutig zu entscheiden, wenn sie nur teilweise abgedeckt sind.
    Deine Interruptroutine wird aber Impulse bis in de Bereich von 100kHz bis etwa 1MHz noch als einzelne Impulse erkennen und zählen.

    Eine Andere Möglichkeit sind Störsignale, welche auf die Sensorleitung eingestreut werden und auch als gültige Impulse gewertet werden.

    Am einfachsten wäre es, sich die Signale mal mit einem Oszilloskop anzusehen.
    Nun wissen wir aber nicht ob du diese Möglichkeit hast?

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  2. #2
    Unregistriert
    Gast
    > dennoch werden mir unterschiedliche Schritte gezählt.

    Wieviel unterschiedlich denn etwa auf eine bestimmte Distanz?
    Durch Radschlupf gibts da immer Abweichungen, das könnte also auch normal sein.
    (Nutze mal die Suchfunktion im Forum, da gibts hunderte Threads zu diversen Robotern)

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    angeschlossen an Pin PD2 und PD3 über einen 10Kohm Pull UP
    Beim orginalen RP6 sehe ich keinen Pullup im Schaltplan. Der Ausgang vom OV geht direkt auf den Eingang vom Mega32.

    Und der interne Pullup wird auch nicht verwendet:
    Code:
    // PORTD
    
    #define ACS_PWR	(1 << PIND6)	// Output
    #define MOTOR_R	(1 << PIND5)	// PWM Output (OC1A)
    #define MOTOR_L	(1 << PIND4)	// PWM Output (OC1B)
    #define ENC_R 	(1 << PIND3)	// INT1 (Input)
    #define ENC_L 	(1 << PIND2)	// INT0 (Input)
    #define TX 		(1 << PIND1)	// USART TX (Output)
    #define RX 		(1 << PIND0)	// USART RX (Input)
    
    // Initial value of port and direction registers.
    #define INIT_DDRD 0b11110010
    #define INIT_PRTD 0b00000001
    (Aus RP6RobotBase.h)
    Geändert von radbruch (11.02.2015 um 18:15 Uhr) Grund: Encoder Setup interner Pullup
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hallo,

    die Drehgeber haben einen analogen Ausgang (da ist ein Operationsverstärker drauf).
    Das ist fast digital, aber eben nicht ganz.
    Der Pullup schadet eher, würde ich mal probehalber ganz entfernen.
    Die Potis auf den Drehgebern können zum Einstellen der Empfindlichkeit genutzt werden, probier da mal andere Positionen durch.


    Beim orginalen RP6 sehe ich keinen Pullup im Schaltplan. Der Ausgang vom OV geht direkt auf den Eingang vom Mega32.
    Nicht ganz, da ist eine Schmidt-Trigger Schaltung dazwischen (Seite 4). Es geht auch ohne. Der AVR hat das prinzipiell auch intern.
    Für die älteren Drehgeber des v1 war die Schaltung noch notwendig, bei den neuen nicht mehr unbedingt, sie ist sicherheitshalber aber dennoch geblieben.

    MfG,
    SlyD

  5. #5
    Benutzer Stammmitglied Avatar von Jackeder
    Registriert seit
    08.02.2015
    Ort
    Chemnitz, Germany
    Beiträge
    53
    Einen schönen Sonntag wünsche ich euch und danke für die Antworten.

    einen Oszilloskop hab ich nicht zur Verfügung, aber Arbeitskolege. Das war auch mein nächster Plan sobalt dieser mal Zeit hat die Signale übern Oszi auslesen.
    Den Pullup Wiederstand war/ ist meine Idee. Hab bevor ich die Encoder eingebaut habe Int0 und Int1 übers Atmel Evolutionsboard (Taster 1 + 2 ) zählen lassen. Und da der Encoder ja im grunde über die Signalleitung nur 0 und 1 sendet hab ich das wie einen Taster gesehen. Aber werd in den nächsten Tagen mal den Wiederstand entfernen und nenn Oszi aufsuchen

Ähnliche Themen

  1. RP6 Probleme Bootloader und Encoder
    Von bernd01 im Forum Robby RP6
    Antworten: 17
    Letzter Beitrag: 11.08.2012, 15:57
  2. RP6 Encoder
    Von Kene im Forum Robby RP6
    Antworten: 12
    Letzter Beitrag: 02.10.2010, 14:54
  3. RP6 alternative Encoder / Drehimpulsgeber
    Von RP6User im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 13.10.2008, 10:42
  4. Antworten: 8
    Letzter Beitrag: 26.04.2006, 22:29
  5. wie funktioniert encoder(LEFT) und encoder(RIGHT)
    Von natalie im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 2
    Letzter Beitrag: 22.11.2005, 22:45

Stichworte

Berechtigungen

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

Labornetzteil AliExpress