Last Updated on 16. Januar 2022 by sfambach
Mit Hilfe von Hal-Sensoren Encodern oder Odometrien können die Umdrehungen von Motorwellen gezählt werden. Wie fein die Zählung ist hängt von der Auflösung ab. Ich habe mir mal einen dieser Motoren mit Hal-Sensor angsehen die Ergebnisse findet ihr hier zusammengefasst.
Fakten
Mein Motor hat 6 Anschlüsse. Zwei für die Motor 9V Versorgungsspannung und 4 für den Encoder. Zwei hiervon sind für die 5V Versorungsspannung der beiden Hal-Sensoren und die anderen für die Signalleitungen.
- Hall Sensor DC 5V
- Motorspannung: DC 9V
- Leerlaufstrom: ≤200mA
- Laststrom: max. 1,2A
- Motordrehzahl: Leerlauf 150 U / min – Last 100 U / min / min
- 150 Zähler des Encoders pro einer Wellenumdrehung
Anwendungsbereiche
- Autonome Systeme zur Positionierung/Positionsbestimmung (Achtung sehr fehlerbehaftet).
- Zum genauen Stuerung/Positionierung von Wellen (Beispiel Gimbel)
Ansichten
Hier ein paar Bespiele für Belegungen. Also genau hin schauen und am Besten nur Motoren kaufen bei denen die Belegung und die Betreibsspannungen klar sind.
Stückliste
- Getriebemotor mit Encoder
- Arduino Uno
- Kabel
Programmierung
Schaltung
Der Encoder 1 hängt am Interruptpin 2. Den Motor selbst habe ich nicht mit Strom versorgt, da für diesen Test das manuelle drehen der Welle reicht.
Bibliotheken
Eine Zusätzliche Bibliothek ist nicht notwendig, der Arduino bringt schon alles mit.
Testprogramm
Das Testprogramm habe ich unter diesem LINK gefunden und auf meine Bedürfnisse angepasst. Das Beipiel verwendet den Interrupt des Arduinos. Da der Uno nur zwei hat ist somit bei zwei Motoren schluss. Der Arduino Mega und der ESP kann da mehr.
Hier nun noch das Beispiel zum downloaden:
So sieht es aus
Fazit
Den Encoder auszulesen erscheint simpel. Andrew Kramer berschreibt jedoch ein paar Ungenauigkeiten. Sollte der x
Wenn man jedoch die Motoren synchronisieren möchte, bietet der Encoder eine Möglichkeit dies zu automatisieren.
Verwandte Beiträge
- GY-530 VL53L0X Laser-Entfernungsmesser
- Pan Tilt mit Joystick
- Arduino – Pan/Tilt Test
- Dreieckiges Roboter Chassis mit omnidirektionalen Rädern
- Arduino USB Host Zusatzplatine
- GY-273/HMC5883L – Kompassmodul
- Arduino Schach-Uhr
- RC Auto mit PS2 Controller
- NRF RC Auto
- Menü Klassen für LCD Displays
Quellen
Motor Encoders with Arduino
https://goetzmd.de/diy/arduino/arduino-encoder-tutorial-fuer-anfaenger
https://www.instructables.com/id/Motor-With-Encoder-How-to-Read-Input-Value-From-En/
https://www.allaboutcircuits.com/projects/use-an-arduino-to-control-a-motor/
https://www.digikey.de/de/blog/using-bldc-hall-sensors-as-position-encoders-part-3
https://www.instructables.com/Hall-Effect-Sensors-1-Position-Control/
https://hartmut-waller.info/arduinoblog/licht-schalten-hall-sensor/