I'm developing a program to control a simple robot. This picture and code show what I'm doing. Problem is that when I try to use the "ultra" command it disrupts the servos and they run/stop/run/stop, etc.. Without the "ultra" command (commenting it out) they run smoothly. Any hints to help me solve this? Thank you, JimS
Code:
[color=Green]'***************************************************************
'* Drive a continuous servo Robot forward with Picaxe 20M2.
'***************************************************************
; 20M2 Robot Controller
;.---------.
;| |
'| B.0 |18 ----330 ohm--> Servo 1, Left Wheel.
;| B.4 |14 ----330 ohm--> Servo 3, Right Wheel.
'| |
'| | SRF004
'| | +-------+
'| | +5VDC+--->| +5VDC |
'| | | |
'| C.0 | Pin 10 +-----------+-------->| Trig |
'| | | | |
'| | +-+--+ | |
'| | | | | |
'| | |1.5K| | |
'| | |ohm | | |
'| | +----+<-----| Echo |
'| | | |
'| | | |
'| | 0VDC +--->| 0VDC |
'| | +-------+
'+---------+[/color]
[color=Blue]symbol ping [/color][color=DarkCyan]=[/color][color=Blue]C.0 [/color][color=Green]'pin 10, Ultra input.[/color]
[color=Blue]Symbol servo_1 [/color][color=DarkCyan]= [/color][color=Blue]B.0 [/color][color=Green]'pin 18, left wheel.[/color]
[color=Blue]Symbol servo_3 [/color][color=DarkCyan]= [/color][color=Blue]B.2 [/color][color=Green]'pin 16, Right Wheel.[/color]
[color=Blue]Symbol [/color][color=Purple]IRdata[/color][color=DarkCyan]=[/color][color=Purple]b1[/color]
[color=Blue]symbol [/color][color=Purple]rangeCM [/color][color=DarkCyan]=[/color][color=Purple]w1 [/color][color=Green]'Range in cm.
'* Constants:[/color]
[color=Blue]symbol LWstop [/color][color=DarkCyan]= [/color][color=Navy]149 [/color]
[color=Blue]symbol LWfwd [/color][color=DarkCyan]= [/color][color=Navy]165 [/color]
[color=Blue]symbol RWstop [/color][color=DarkCyan]= [/color][color=Navy]145 [/color]
[color=Blue]symbol RWfwd [/color][color=DarkCyan]= [/color][color=Navy]126
#picaxe [/color][color=Black]20m2[/color]
[color=Navy]#macro [/color][color=Black]scan
[/color][color=Blue]ultra Ping[/color][color=Black],[/color][color=Purple]RangeCM[/color][color=Black]:[/color][color=Blue]pause [/color][color=Navy]100
[/color][color=Blue]ultra Ping[/color][color=Black],[/color][color=Purple]RangeCM[/color][color=Black]:[/color][color=Blue]pause [/color][color=Navy]100 [/color][color=Green]' pause 100 ms [/color]
[color=Navy]#endmacro[/color]
[color=Black]init: [/color]
[color=Blue]Pause [/color][color=Navy]1000 [/color][color=Green]'PAUSE TO INITIALIZE SYSTEM.
[/color][color=Blue]Servo B.0[/color][color=Black], [/color][color=Blue]LWstop [/color][color=Green]' INITIALISE SERVO_1, PIN 18, LEFT WHEEL Null/stop.
[/color][color=Blue]Servo B.2[/color][color=Black], [/color][color=Blue]RWstop [/color][color=Green]' INITIALISE SERVO_3, PIN 16, RIGHT WHEEL Null/stop.
[/color]
[color=Black]main: [/color][color=Green]'*MoveRobot Forward.
[/color][color=Blue]do
Servopos servo_1[/color][color=Black],[/color][color=Blue]LWfwd [/color][color=Green]; move Left Wheel Forward.
[/color][color=Blue]Servopos servo_3[/color][color=Black],[/color][color=Blue]RWfwd [/color][color=Green]; move Right Wheel Forward.
[/color][color=Black]scan
[/color][color=Blue]loop[/color]