PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Radencoder auslesen



Kurzer
11.01.2007, 22:58
Moin,

hab mal ne Frage zum Thema Radencoder auslesen.
Ich hab mir zwei Radencoder mit CNY70ern gebaut um damit 2 Räder zu kontrollieren.
Nun hab ich allerdings keine Ahnung wie ich die auslesen soll, bzw wie verlässlich das ist.
Ich wollte dafür einen kleinen AVR benutzen (ATTiny26 mal wieder?..) und diesen als I2C-Slave ansteuern.

Ich hab gehört, dass man die Radencoder häufig über die INTERRUPT-PINS ausliest. Aber da wir 2 gleichzeitig auslesen und auch I2C über Interrupt läuft, habe ich meine Bedenken, dass alle Signale ankommen.

Gibt es vllt. auch methoden bei denen man nicht alle Signale des Radencoders einlesen muss?

Schonmal danke für jegliche Hilfe!!
Kurzer

batti112
12.01.2007, 01:10
Hi!

Damit man dir helfen kann solltest du vll. ein wenig genauer beschreiben welche Signale deine Encoder liefern.

Gängige Encoder liefern Drehrichtung und die Länge (durch Berechnung zu bestimmen). Im Wiki müsste es afaik einen guten Artikel darüber geben.

Zum Thema zu viele Interrupts:
Problem ist bei der Lösung ohne Interrupts, das du unter umständen einen Tick verpassen könntest (Frage der gewünschten Genauigkeit, kann man sich das Leisten?)

Allgemein ist es so das wenn mehrere Interrupts auftreten diese nacheinander anhand ihrer Priorität abgearbeitet werden.

mfg
batti

Albanac
12.01.2007, 10:35
Wenn du den AVR nur als Radencodermessgerät benutzt dann brauchste für die Radencoder kein Interrupt weil du ja eh die Pin immer beobachten kannst. Bei zu hohen Drehraten gibts zwar Probleme aber so hoch kommst du unter umständen garnicht...

ogni42
12.01.2007, 11:24
Solange dein I2C ISR stets kürzer dauert als die Zeit zwischen zwei Impulsen ist das kein Problem. Der Rest ist jetzt (Tschen)rechnerei.

Kurzer
12.01.2007, 12:24
vielen Danke erstmal für eure Beiträge, ich werd mal sehen wie schnell dass ganze letzendlich wirklich sein muss.

@batti 112: Die Encoder sollen nur 1 und 0 abwechslend liefern, für Schwarz/Weiß auf der Encoderscheibe.
Denke mal die Drehrichtung ändert sich nicht durch Abweichungen^^ daher kenne ich die ja vom Ansteuern her und muss es mir mit den Encodern nicht unnötig kompliziert machen.

m.a.r.v.i.n
12.01.2007, 12:31
Hi,

Die CNY70 liefern aber nur ein Analogsignal. Du brauchst also jeweils noch ein Schmitt-Trigger Gatter um ein Digitalsignal zu bekommen. Entscheidend dabei ist die Schaltschwelle richtig zu justieren, um korrekte Schaltimpulse zu bekommen. Schaltung dazu gibt es im RN-Wiki (https://www.roboternetz.de/wissen/index.php/Sensorarten#CNY70)

Kurzer
12.01.2007, 13:00
ja schon klar, dass hab ich jetzt einfach mal als gegeben vorausgesetzt^^ das mit dem CNY selber is nicht das Problem, mit dem hab ich mich schon ausreichend beschäftigt....^^