PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bumper funktioniert nicht richtig



irgendsowas
11.06.2004, 14:05
hi.
ich hab nen taster am port 9 und hab geschrieben:

define bumpervorn port [9]
...
#test
if bumpervorn then goto rueck else goto test


#rueck
...
'motoren werden rückwärts gefahren
pause 50


jetzt fährt mein roboter aber nur so lange zurück, so lange ich den taster gedrückt halte!! das soll aber nicht so sein.
ist da ein fehler in der programmierung??

Michael
11.06.2004, 19:42
Hallo irgendsowas,
muss es nicht heissen:
if bumpervorn [highlight=red:c84fad8975]= 0[/highlight:c84fad8975] then ...?
Die booleanschen Werte könnten auch 1 oder -1 sein,
probiers einfach aus :)
Hast du den Taster mit einem Pull-up (down) versehen?

jetzt fährt mein roboter aber nur so lange zurück, so lange ich den taster gedrückt halte!! das soll aber nicht so sein.
ist da ein fehler in der programmierung??
Kein Fehler, er tut das, was du ihm sagst.
Gruss Michael

recycle
11.06.2004, 21:17
#test
if bumpervorn then goto rueck else goto test


#rueck
...
'motoren werden rückwärts gefahren
pause 50

steht das Ganze zufällig in einer Schleife und nach "Pause 50" kehrt das Programm zu "if bumpervorn then goto rueck else goto test " zurück?

"Pause 50" dauert bei der C-Control soweit ich weiss eine Sekunde.
Wenn das Programm nach einer Sekunde den Schalter wieder abfragt und er dann nicht mehr gedrückt ist fährt der Robby auch nur 1 Sekunde wenn man den Taster loslässt.

matren
11.06.2004, 21:59
@Michale:
Variablen vom Typ Boolean können immer nur zwei Werte aufnehmen (true/false), wenn diese Variable was anderes aufnehmen kann ist es keine Boolean Variable.
Es sollte aber dennoch möglich sein sie wie eine solche zu behandeln. Denn im Normalfall sollte 0=false sein und alle anderen Werte=true.

Man sollte eigentlich schreiben können:

if bumpervorn then
oder gegenteil:
if not bumpervorn then
-----
Ich vermute auch, daß es ein Problem mit dem Timing ist, schließlich fährt der Roboter ja auch zurück, also funktioniert ja eigentlich alles.

ACU
11.06.2004, 22:05
Wieso schreibst du in meheren Foren das gleiche und liest dann die Antwort nicht?
Ich habe dir in meinem Forum schon eine ziemlich ausführliche Antwort gegeben.
Was ist dein Problem jetzt?

RCO
12.06.2004, 12:49
Hast du die Zeit mal verlängert???
1 ist bei C-control 20 ms; 50 = 1 sec.
Vielleicht ist die Zeit zu kurz, oder dein control ist schneller getacktet???

[scroll:1000c043fd]http://www.free-webspace.biz/c-control/[/scroll:1000c043fd]

Michael
12.06.2004, 14:40
Hallo matren,
du hast natürlich recht, die CControl liegt bei mir halt schon ein paar Jahre zurück ;)
recycle hat den Fehler ja auch schon beschrieben.
Gruss, Michael

irgendsowas
12.06.2004, 23:44
@acu
ich hab aus deinem forum nie eine bestätigung erhalten, dass mir jemand geantwortet hat und ausserdem kann nicht jeder immer vorm pc sitzen und die robotikforen durchsuchen. manche leute müssen für ihr geld auch arbeiten und sind halt nicht "sponsored by daddy" -- nichts für ungut

ich hab den fehler gefunden leute! gestern nacht um 4 ist mir eingefallen, dass bei gedrücktem schalter ein LOW-Pegel anliegt, kein HIGH!! mein programm war also in ordnung, nur hab ich nicht berücksichtigt, dass ich einen high pegel als bedingung geschrieben hab! der roboter ist also folglich am anfang nicht vorwärts, sondern rückwärts gelaufen, weil die bedingung zum rückwärtslaufen schon am programmanfang erfüllt war!!

nochmal danke an alle und auch an acu!!

Ulrich
10.09.2004, 13:47
Hi!

Als Newbee versuche ich gerade zwei Bumper an den Robby anzuschließen, aber ich komm nicht drauf wie die Mikroschalter angeschlossen werden müssen.
Mein Schalter hat drei Pins, zwei davon werden geschlossen wenn der Schalter gedrückt wird. Der Dritte gibt für mich irgendwie keinen Sinn!

Ein Pin an VCC und einen an einen freien Port funktioniert nicht, oder?

Programmtechnisch hab ich mir den Zustand von Port8 mal anzeigen lassen. Der ändert sich aber nicht, wenn der Schaltergedrückt wird. ???

Grüße
Uli

Michael
10.09.2004, 17:21
Hallo Ulrich,


Der Dritte gibt für mich irgendwie keinen Sinn!

Der ist geschlossen, wenn der Schalter nicht gedrückt wird.


Ein Pin an VCC und einen an einen freien Port funktioniert nicht, oder?

Wenn der freie Port noch zusätzlich einen Widerstand nach GND bekommt, sollte es funktionieren.
Gruß, Michael