Hi,
ich versuche gerade die ersten Schritte eines Maker-Projekts zum Aufbau einer Uhr aus drehbaren Segmenten. Damit die dazu benötigten Servos anständig ausgerichtet sind sollten sie direkt beim Einbau kalibriert werden.
Der Ersteller des Threads (der aber offenbar aktuell nicht mehr gepflegt wird) beschreibt hierzu folgendes:
am Arduino Mega (mit Sensor Shield -> weil später insgesamt 20 solcher Servos mit dem Arduino verbunden werden) an Pin45 den Servo anschließen.
Das Drehelement mittels dem KY-040 rotieren und den entsprechenden Wert auf dem Serial Monitor in der Arduino IDE notieren.
Mir ist allerdings völlig unklar, wo am shield ich den rotary encoder anstecken soll. die normalen pins sind ja durch das shield belegt. An pin 45 den Servo anzustecken war hingegen kein Problem.
du kannst Beispiel Sketch "Knob" der Bibliothek Servo nutzen, mit Ersatz Encoder durch Poti und ganz ohne Schild. Den aktuellen Winkelwert könntest du mit Serial.print ausgeben.
Die Pins gibts beim Shield ja so nicht, ich finde eigentlich nur "dreiadrige" female plugs, an die direkt ein z.B. servo angeschlossen werden kann.
Nehme ich das shield ab, hab ich zwar die ganzen pins ulk, dt, usw. aber dann weiß ich nicht, wie ich den servo an pin 45 (den ich laut Anleitung für mein maker-projekt nutzen soll) mit seinen drei kabeln an einem einzelnen pin anschließen soll.
wenn der encoder nicht an das shield passt, dann muss er aufs normale board. wie schließe ich dann aber an pin45 für die kalibrierung den servo mit seinen 3 kabeln an?
die 3 genannten PINs (2,3,4) sind für den rotary encoder (der hat male connectors), pin 45 ist für den servo (der aber wie gesagt 3 Kabel hat), der servo hat female connectors.
Jede 3-er Kombination (Senkrecht im obrigen Foto) sind von oben G-GND, V-Versorgungsspannung und S-Signal. Unter jedem Dreierblock steht eine Nummer des Pins die dem S-Pin entspricht.
Die Pins an die Du den Encoder stecken solltest sind die Pins 2, 3 und 4.
Du bringst zwei Sachen gehörig durcheinander.
Das kann mehrere Gründe haben, aber hier ist es eindeutig das nicht richtige lesen.
Ich habe Dir in #3 Deine Frage zitiert und dazu die passende Antwort gegeben.
Damit ist der Teil erledigt.
Dein PIN 45 ist der Pin, auf dem die pwm übertragen wird,
Die anderen beiden Pins sind die Versorgung.
Somit braucht dein Servo den Anschluß mit der Nummer 45:
Wie rum der Stecker da rauf kommt, siehst Du dann auf dem Board am linken Rand.
Da wo GND dran steht, dürfte das Kabel sw sein, wenn es sich an die gängigen Konventionen hält. Die 5V dann rt.
Tut mir Leid, wenn der Eindruck entsteht, dass ich nicht richtig lesen würde. Ich gebe mein bestes und behaupte, es liegt er am mangelnden Verständnis als an einer Leseschwäche
Wie auch immer, ich habe deshalb nachgefragt, weil die genannten Pins aus Post3 und die aus der als Lösung gekennzeichneten für den Encoder nicht zu funktionieren scheinen. (Ist-Zustand siehe Foto ->
Daher hatte ich überlegt, ob es sein kann, dass die beiden aktuell noch nicht belegten Pins am Encoder (beschriftet mit + und gnd) auch irgendwie mit dem board verbunden werden müssten.
Ach - vielleicht ist das Problem auch grundlegender: ich weiß nämlich nicht mal, ob das board ein hochgeladenes Skript automatisch ausführt oder ob man das irgendwie starten muss (und es daran mangelt)
Ein Arduino MEGA 2560 (wie viele andere Modelle) hat kein Betriebsystem und darum wird der geladene Sketch beim Einschalten oder nach RESET nach Arbeitung des Bootloader direkt ausgeführt.
Der Bootloader dient dazu damit mit einem eventuel vorhandenen Programmierer ( = IDE auf dem PC) zu komunizieren, ob ein neuer Sketch hochgeladen werden soll und dann diesen im Flash abzuspeichern. Ist das nicht der Fall wird sofort der im Flash hinterlegte Sketch ausgeführt.
Du brauchst auf dem KY-040 Modul Masse und +5V. Die Masse als Bezugspotential für die Signale ( wie fast immer) und die 5V für die Pullupwiderstände.
Also ohne Masse (GND) und +5V funktioniert das nicht. Die +5V können entfallen wenn Pullupwiderstände hinzugeschaltet werden (Aber wieso 2 Widerstände verbauen wenn sie bereits vorhanden sind. Für den Druckknopf (SW Pin) braucht es einen Pullup Widerstand weil da keiner vorhanden it. Es kann auch der interne verwendet werden.
Wenn ich @uwefed richtig verstanden habe soll ich also z.B. vom shield an PIN 2, 3 oder 4 noch den mittleren pin (5V) und den "oberen" (GND) zum encoder führen?