PDA

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