mirco13
11.02.2006, 12:17
Ich möchte einen alten Servo selbst steuern. Infos in einem anderen thema:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=16828
Die Steuerung rechts links klappt auch wunderbar, nur leider scheint irgendwo in meinem Prog ein fehler zu stecken, den ich nicht finde. Nach dem programmstart wird die Mittelstellung angefahren. das ist schonmal super. sobald dann aber das Programm in "loop" steckt, scheint es durchgehend nur noch auf IR Signale zu warten. Normal sollte es ja wieder zu "startloop" spriingen, wenn keine IR Signale Empfangen werden. Wie kann ich das beheben? Lenken ist so ja möglich, aber der Servo soll ja automatisch auf Mittelstellung fahren, wenn keine IR Signale mehr kommen.
Bin am Verzweifeln.
Programm:
symbol rechts = 1 `rechts ansteuerung ausgang 1 Pin 6
symbol links = 2 `links ansteuerung ausgang 2 Pin 5
symbol position = b0 `Speicherort Position
startloop:
goto mittelstellung
loop:
low rechts
low links
infrain2
if infra = 1 then lenkr
if infra = 2 then lenkl
goto startloop
lenkr:
readadc 4,b0 `lese den Analogwert in b0 (Aktuelle Position)
if b0 > 236 then goto loop
high rechts `rechts vollausschlag lenken
goto lenkr
lenkl:
readadc 4,b0 `lese den Analogwert in b0 (Aktuelle Position)
if b0 < 20 then goto loop
high links `links vollausschlag lenken
goto lenkl
`Auswertung der Servostellung
` 5V = rechts = 256 (in Auswertung rechts = sobald größer 236)
`2,6V = mitte = 133
` 0V = links = 0 (in Auswertung links = sobald kleiner 20)
mittelstellung:
for b1 = 1 to 20
pause 20
readadc 4,b0 `lese den Analogwert in b0 (Aktuelle Position)
if b0 > 162 then goto linksdrehen
if b0 < 150 then goto rechtsdrehen
next b1
goto loop
linksdrehen:
high links `links drehen
pause 20 `für 0,02sec
low links
goto mittelstellung
rechtsdrehen:
high rechts `rechts drehen
pause 20 `für 0,02sec
low rechts
goto mittelstellung
https://www.roboternetz.de/phpBB2/viewtopic.php?t=16828
Die Steuerung rechts links klappt auch wunderbar, nur leider scheint irgendwo in meinem Prog ein fehler zu stecken, den ich nicht finde. Nach dem programmstart wird die Mittelstellung angefahren. das ist schonmal super. sobald dann aber das Programm in "loop" steckt, scheint es durchgehend nur noch auf IR Signale zu warten. Normal sollte es ja wieder zu "startloop" spriingen, wenn keine IR Signale Empfangen werden. Wie kann ich das beheben? Lenken ist so ja möglich, aber der Servo soll ja automatisch auf Mittelstellung fahren, wenn keine IR Signale mehr kommen.
Bin am Verzweifeln.
Programm:
symbol rechts = 1 `rechts ansteuerung ausgang 1 Pin 6
symbol links = 2 `links ansteuerung ausgang 2 Pin 5
symbol position = b0 `Speicherort Position
startloop:
goto mittelstellung
loop:
low rechts
low links
infrain2
if infra = 1 then lenkr
if infra = 2 then lenkl
goto startloop
lenkr:
readadc 4,b0 `lese den Analogwert in b0 (Aktuelle Position)
if b0 > 236 then goto loop
high rechts `rechts vollausschlag lenken
goto lenkr
lenkl:
readadc 4,b0 `lese den Analogwert in b0 (Aktuelle Position)
if b0 < 20 then goto loop
high links `links vollausschlag lenken
goto lenkl
`Auswertung der Servostellung
` 5V = rechts = 256 (in Auswertung rechts = sobald größer 236)
`2,6V = mitte = 133
` 0V = links = 0 (in Auswertung links = sobald kleiner 20)
mittelstellung:
for b1 = 1 to 20
pause 20
readadc 4,b0 `lese den Analogwert in b0 (Aktuelle Position)
if b0 > 162 then goto linksdrehen
if b0 < 150 then goto rechtsdrehen
next b1
goto loop
linksdrehen:
high links `links drehen
pause 20 `für 0,02sec
low links
goto mittelstellung
rechtsdrehen:
high rechts `rechts drehen
pause 20 `für 0,02sec
low rechts
goto mittelstellung