Anfänger machen das mit Raspis über Python oder als Fortgeschrittenere in C über wiringPi, und wenn sie noch fortgeschrittener sind, vielleicht sogar in pigpio.
Encodermotoren haben aber keinen i2c- oder SPI-Anschluss, und daher muss man die Pins per digitalRead etc, auswerten.
Auf Arduinos macht man das auch so, aber über Pinchange- oder Timer-Interrupts, das klappt wunderbar (AVR-IRQs oder über DueTimer, noch viel einfacher): beides absolut echtzeitfähig.
Nur dass es auf dem Raspi Hardware-Timer-Interrupts überhaupt nicht gibt (im user space), und Hardware Pinchange-Interrupts auch nicht (nur softwaremäßig über gelatchte IO pins via pthread), dann aber zu langsam (eben wieder wegen dem lahmen Linux user space).
Lesezeichen