Hallo,
ich spiele gerade ein bisschen mit meinem Arduino Mega rum und versuche das Ding zu verstehen.
Habe einen Poti und einen Servo angeschlossen. (Siehe Bild)
Ich lese den Wert vom A15 aus, normiere ihn auf 180° und steuere mit dem Wert den Servo an. Klappt aber nicht
Die Umrechnung des Sensorwerts in einen Winkel klappt nicht. Was mache ich falsch????
Der serielle Monitor Zeigt für den Wert winkel immer "0" an!?!?
sensorwert zeigt je nach Potistellung zwischen 0 und 1023 an.
Was stimmt an meiner Rechnung nicht?
Der Arduino kann schon richtig rechnen, nur Du verstehst nicht, wie er das macht.
Wenn nichts anderes gefordert ist, rechnet er mit int und von links nach rechts.
Und da ist
gleich 0, wenn der Sensorwert nicht gerade 1023 ist und 0 * irgendwas bleibt 0.
Wenn Du sensorwert*180 / 1023 rechnest, sieht das schon anders aus.
Gruß Tommy
Edit: Besser: sensorwert*180UL / 1023
Danke combie für die Korrektur
Danke für die Hinweise.
Macht alles Sinn wenn man drüber nachdenkt.
Der Informatik Grundkurs für Maschinenbauer ist nun auch schon über 20 Jahre her :s , da vergisst man ein paar Feinheiten.
Von map() habe ich auch schon mal was gehört. Lese ich nochmal.
Ich nenne sowas gerne "Fantasie Bilder" oder "Fantasie Code", wenn die Realität und das gezeigte keine Übereinstimmung hat. Nicht zusammen passt.
Gut, hier war das kein Drama.
Aber in vielen Fällen zieht sowas einen Thread wie ein Kaugummi in die Länge und ist fürchterlich frustrierend. Für alle Beteiligten.
Für die Hilfesuchenden gibt es nur ein Mittel dagegen: Sorgfalt!
Für die Leser/Helfer heißt das Mittel: Misstrauen und Wachsamkeit.
Es stellt die Logik und Diagnosefähigkeiten auf eine ganz harte Probe.
Du hast hier Programm und Bild geliefert. Das macht längst nicht jeder. So konnte man schon sehen, dass sich da was "verirrt" hat. Das hat es deutlich entschärft.
Ich möchte dem TO mal gratulieren weil er ohne Nachfragen alle relevanten Infos im ersten Post gegeben hast.
Ja, das Schaltbild sollte mit dem Sketch zusammenpassen. Das verwirrt.
Aber im Endeffekt ist der Fehler für einen etwas geübten Arduino-Fan leicht zu finden.