PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : einfacher roboter



Che Guevara
19.04.2008, 20:44
hallo leute,

ich habe vor ein paar tagen rn-control geschenkt bekommen! *freu*

jetzt wollte ich mir einen roboter mit lego bauen (für den anfang)
dieser soll folgendes können:
-geradeaus fahren
-wenn der taster t1 (vorne am roboter) gedrückt (z.b. durch gegenstand) wird, soll er ganz einfach stehen bleiben, bis der taster nicht mehr gedrückt wird!

hier der code in basic:


$regfile = "m32def.dat"
$crystal = 16000000

Config Portc = Output
Config Portb = Output
Config Porta = Input
Porta = &HFF

T1 Alias Pina.0
T2 Alias Pina.1
T3 Alias Pina.2
T4 Alias Pina.3
T5 Alias Pina.4
T6 Alias Pina.5
T7 Alias Pina.6
T8 Alias Pina.7

Ml1 Alias Portc.6
Ml2 Alias Portc.7
Mr1 Alias Portb.0
Mr2 Alias Portb.1

Led1 Alias Pinc.0
Led2 Alias Pinc.1
Led3 Alias Pinc.2

Do
Ml1 = 1
Ml2 = 0
Mr1 = 1
Mr2 = 0
If T1 = 0 Then
Ml1 = 0
Ml2 = 0
Mr1 = 0
Mr2 = 0
End If
Loop
leider werden die motoren nur langsam, wenn der taster gedrückt wird, aber sie bleiben nicht ganz stehen!!
könnt ihr mir sagen, warum das so ist??
gruß
chris

p_mork
20.04.2008, 12:02
Hallo Chris,

die Motoren bleiben nicht stehen, weil sie am Anfang der Do-Lool-Schleife immer eingeschaltet werden, selbst der Taster gedrückt ist. Dadurch entseht eine Art Software-PWM. So sollte das klappen:


Do
If T1 = 0 Then
Ml1 = 0
Ml2 = 0
Mr1 = 0
Mr2 = 0
Else
Ml1 = 1
Ml2 = 0
Mr1 = 1
Mr2 = 0
End If
Loop


MfG Mark

Che Guevara
20.04.2008, 12:23
hallo p_mork,

danke für deine antwort!
jetzt wenn du das so sagst, klingt es eigentlich ganz einleuchtend!!

gruß
chris