Archiv verlassen und diese Seite im Standarddesign anzeigen : servo mit poti steuern
Che Guevara
21.04.2008, 19:51
hallo leute,
ich hab (mal wieder mit meinem rn-control) ein problem:
ich möchte ein poti (10kOhm) über einen analogen port (porta.0) einlesen!
dieses signal möchte ich dann in ein pwm-signal umwandeln, welches einen servo steuert! also:
poti --> porta.0 --> pwm --> porta.1
wäre echt wahnsinnig nett, wenn mir jemand diese paar zeilen schreiben könnte [-o< [-o< oder zumindest einen denkanstoß geben könnte??!?!
mfg
chris
Andree-HB
21.04.2008, 20:27
In Bascom ungefähr so :
Header
- definiere Servo
- definiere Analogport
schleife beginnen
- lese Analogport ein
- rechne Wert um
- erzeuge damit Servopwm
schleife wiederholen
Ende
...genauen Syntax jeweils in der Hilfe, Poti mit den äusseren Pins an GND/VCC, Schleifer an Porteingang
radbruch
21.04.2008, 20:32
Hallo
oder zumindest einen denkanstoß geben
Kein Problem. Die Funktion des ADC ist hier gut beschrieben:
https://www.roboternetz.de/wissen/index.php/ADC_%28Avr%29
Achtung. Das Demoprogramm verwendet die interne 2,56V-Referenz. Du müsstest also einen 10K-Widerstand (besser 12K-15K) zwischen 5V und dem Potianfang anschließen wenn du den Schleifer direkt an PA0 anschließen willst. Anderes Ende des Potis kommt an GND. Oder du änderst das Beispiel auf 5V-Referenz.
Beschreibung einer Servoansteuerung mit ISR (Software-PWM):
https://www.roboternetz.de/wissen/index.php/Servo
Gruß
mic
Che Guevara
21.04.2008, 20:35
hallo andree-hb,
danke für deine schnelle antwort!!
jetzt habe ich alles schon, nur ich weiß absolut nicht, wie man einen wert umrechnet????
gruß
chris
radbruch
21.04.2008, 20:56
Hallo
Der Potiwert dürfte zwischen 0 und 1023 sein (10bit-ADC), Servopos irgendwas zwischen 50 und 200 je nach Ansteuerung und Takt. Die Formel könnte dann etwa so aussehen:
servopos=servomin+(servomax-servomin)*poti/1024
Eine 16-Bit-Variable läuft dabei über!
Gruß
mic
Che Guevara
24.05.2008, 21:12
hallo leute,
ich weiß, der thread ist schon etwas älter, aber ich habe nochmal ein problem:
das mit der formel funktioniert jetzt auch so weit, es läuft alles wunderbar, bis auf:
wenn ich am poti in eine richtung drehe, dreht sich auch der servo... nur an einer best. stelle dreht sich der servo wider ein stück zurück (in die andere richtung) und dann dreht er sich wider in die erste richtung!!
ich weiß aber nicht, woran das liegt???
am servo liegts nicht, hab das pwm signal mitm oszi nachgemessen, wird anfangs immer breiter, dann schlagartig wider etwas schmäler und dann wider breiten!!!
weiß jemand, woran das liegen kann??
mfg
chris
oberallgeier
24.05.2008, 23:09
Hallo,
hast Du schon mal mit dem Multimeter das Poti gemessen - vor allem an DER Stelle, bei der sich der Servo zurück dreht? WENN das so ist - dann muss ich Dir ja nicht mehr sagen, woran das liegt. Wenn nicht - hmmm - warten wirs ab
Che Guevara
24.05.2008, 23:21
poti funzt!!
mfg
chris
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.