Forum: Mikrocontroller und Digitale Elektronik Atmega8 Servo + Poti (bascom)


von jack w. (jeck556)


Lesenswert?

hey leute ich möchte gerne mit einem poti einen servo ansteuern
also so wenn das poti ganz rechts ist das soll der servo ganz rechts 
(sein oder links) ist mir egal wenn das poti links ist das soll der 
servo links (rechts sein)

ich habe hir mal einen code

$regfile "m8def.dat"
$crystal = 8000000

Config Servos = 1 , Servo1 = Portd.6 , Reload = 10

Config Portd.6 = Output

Enable Interrupts

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim X As Word
Dim Y As Byte

Do

X = Getadc(0)

Servo(1) = X

Loop
end


jetzt mein problem wen ihc das poti von rechts 1/4 nach links drehe ist 
der servo von rechts nach links gewandert volle 180°
ja x ist  0-1024 ich möchte nur gerne wwissen wie ich den adc wert 
umrechne so dass dieser nicht von 0-1024 sondern von 30-150 geht
wie mache ich das???
(wie kann ich das zittern des servon verhindern also das signal 
stabillistren)

von jack w. (jeck556)


Lesenswert?

habs jetzt ich habe grade gesehen als ich meinen beitreg geschrieben 
habe
das ich dim y as word hatte

jetzt hab ichs stabillisirung auch


$regfile "m8def.dat"
$crystal = 8000000


Config Servos = 1 , Servo1 = Portd.6 , Reload = 10

Config Portd.6 = Output

Enable Interrupts

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim X As Word
Dim Y As Word


Do

X = Getadc(0)

Y = X / 5


Servo(1) = Y



Loop

von moep (Gast)


Lesenswert?

Die Umrechnung von einem Wertebereic 0-1024 auf einen Wertebereich 
30-150 solle man wohl auch noch schaffen...

Y = ( ( Y * (120 / 1024) ) + 30 )

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.