PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Inkrementaler Drehgeber mit I2C ausgang



hellobello
02.03.2015, 10:34
Hallo Gemeinde,
ich bin auf der Suche nach einem Inkrementalen Drehgeber, den ich bequem mittels I2C oder ähnlicher Schnittstelle auslesen kann. Leider blieb meine bisherige suche Erfolglos, nur A+B oder PWM Ausgänge.

Der Grund ist, dass der µC in meinem Projekt mit zuviel beschäftigt ist, als dass er auch noch eine Lichtschranke mit genügend vielen Teilstrichen zwecks der Präzision auswerten könnte. Der verliert zu viele Striche.

Ich dachte schon daran, mit dem Austrian Microsystems AS5040 was zu basteln, aber an ein breakout board von denen ist ja kaum ranzukommen, oder gibt es einen deutschen Händler? Zudem inkrementiert der nicht wirklich. Und die Drehrichtung ist auch nicht gegeben...

Irgendwelche (bezahlbaren) anderen Ideen? Also nicht gerade von Heidenhain... :)

Grüßle, der Micha

PICture
02.03.2015, 10:49
Hallo!


Der Grund ist, dass der µC in meinem Projekt mit zuviel beschäftigt ist, als dass er auch noch eine Lichtschranke mit genügend vielen Teilstrichen zwecks der Präzision auswerten könnte. Der verliert zu viele Striche.

Ich würde dann für inkrementalen Drehgeber einen extra µC nehmen und mit dem zuviel beschäftigten µC in deinem Projekt nur die Drehzahl und eventuel die normaleweise aus Steuerung bekannte Richtung auslesen. ;)

Geistesblitz
02.03.2015, 11:04
Würd auch sagen, nimmst nen kleinen Controller (Attiny würd bestimmt schon reichen) und übernimmst mit dem die Auswertung des Inkrementalgebers. Dann als I2C-Slave konfigurieren, damit der dann dem Hauptcontroller die Messwerte mitteilen kann. Ist sowieso häufiger nützlich, einzelne Funktionen auf weitere Controller auszulagern, zB. Motorregler oder Displaysteuerungen oder sowas.

malthy
02.03.2015, 11:07
Hi,

inkremental und I2C widerpspricht sich für meinen Geschmack ein wenig. Bei einem Inkrementalgeber geht es je meist darum, möglichst latenzfrei über einen Bewegungsvorgang informiert zu werden. Bei einem einfachen Eingabedrehgeber mag das noch nicht so kritisch sein, ein Inkrementalgeber an einem Motor hat vermutlicht nicht die Zeit, jeden Tick per I2C zu verschicken. Was Du ja aber - je nach Anwendung - machen kannst, ist einen Absolutencoder per I2C auslesen und dann die Differenz der Stellung zwischen den Auslesezeitpunkten bilden. Das hat zwar auch ein paar praktische Probleme, aber im Grunde hast Du dann ja Deine inkrementelle Information.

Wie schnell ist denn die Drehung die Du auswerten willst und welche Auflösung brauchst Du?

Gruß
Malte

Geistesblitz
02.03.2015, 11:16
Kommt auch immerwieder darauf an, wofür der Inkrementalgeber gebraucht wird. Wenn man eine Position messen will, dann zählt der kleine Controller ja munter die Schritte mit und über I2C fragt man dann nur den aktuellen Wert ab. Wenns aber was wirklich zeitkritisches ist, könnte man es vielleicht auch so bauen, dass der Controller das auch noch mit übernimmt. Wenn nicht, muss wohl ein leistungsfähigerer Controller her.

hellobello
02.03.2015, 11:38
...dann zählt der kleine Controller ja munter die Schritte mit und über I2C fragt man dann nur den aktuellen Wert ab.

genau das ist mein begehr. das mit dem zweiten controller habe ich mir auch schon überlegt, allerdings habe ich mich noch nie mit der programmierung als slave außeinander gesetzt. da komme ich jetzt aber wohl nicht umhin. :-) ich dachte eventuell gibts da was fertiges.

danke mal.

PICture
02.03.2015, 12:25
:-) ich dachte eventuell gibts da was fertiges.

Mechanisch fertig ist Drehrad bei PC-Maus und das habe ich oft bei µCs benutzt: http://rn-wissen.de/wiki/index.php/PIC_Assembler#Mausrad_bzw._Drehencoder . ;)