PDA

View Full Version : IR problem



KARIM102
06-08-2010, 01:11 AM
hi everybody
i bluid robort that work by wrieless, there are two mircontroll one is the rmote (TX) the the other in the robort, this robort can go right, left forward and backward... i put two IR detector in the back, they work when u press the backward sw the robort when he come close it an object it should go leftside "left" until the object is passed then it will conutine to go backward... the problem is the is statment doesn't work i don't know actually!!!! could anyone help????????


this is the RX coding ::

'{$STAMP BS2}
'{$PBASIC 2.5}
'----------------------variables-------------------------------------------
xиииииииииииии VARииии Wordиииии ' Variable for output signal
yиииииииииииии VARииии Wordиииии ' Variable for input signal
eyeиииииииииии VARииии Bitииииии ' Variable for IR left
eye1ииииииииии VARииии Bitииииии ' Variable for IR left
'----------------------constants------------------------------------------
FwdLtFastиииии CONииии 850ииииии ' Left servo forward full speed
BwdLtFastиииии CONииии 650ииииии ' Left servo backward full speed
FwdRtFastиииии CONииии 650ииииии ' Right servo forward full speed
BwdRtFastиииии CONииии 850ииииии ' Right servo backward full speed
BAUDииииииииии CONииии 84иииииии ' Baud set at 9600
'----------------------servo definitions-----------------------------------
ltServoиииииии PINииии 10иииииии ' Left Servo Pin
rtServoиииииии PINииии 8ииииииии ' Right Servo Pin
'================================================= ================================================== ====
'----------------------main routine --------------------------------------------------------------------
'================================================= ================================================== ====
иLOW 1
иLOW 0
иeyeии = IN4иииииииииииииииииииииииииииииииииииииииииииииии ииииииииииииии ' Input for IR reciver left (1)
иeye1и = IN5иииииииииииииииииииииииииииииииииииииииииииииии ииииииииииииии ' Input for IR reciver right(2)
ии DO
ииииииииииииииииииииииииииииииииииииииииииииииииии иииииииииииииииииииииии 'Sync pulse for the tranimeter
SERIN 3,16780, [WAIT("!"), x]

иPAUSE 50
иFREQOUT 1, 1, 38500иииииииииииииииииииииииииииииииииииииииииииии ииииииии 'Output from IR LEDs frequecy 40Hz
иFREQOUT 0, 1, 38500
HIGH 11
LOW 13ииииииииииииииииииииииииииииииииииииииииииииииии иииииииииииииииииии ' All LEDs turn off, only Green LED will be on
LOW 8иииииииииииииииииииииииииииииииииииииииииииииииии иииииииииииииииииии ' tell you that the system on standby mode
LOW 10
LOW 14
LOW 12

IF x=154 THEN
ииииииииииииииииииииииииииииииииииииииииииииииииии иииииииииииииииииииииии 'The robot will go ahead
и PULSOUT ltServo, BwdLtFast
и PULSOUT rtServo, BwdRtFast
и PAUSE 15
и HIGH 14
и HIGH 13
и LOW 12
и LOW 11
ELSEIF x=54 THENииииииииииииииииииииииииииииииииииииииииииииии ииииииииии 'The robot will turn left
и PULSOUT ltServo, FwdRtFast
и PULSOUT rtServo, FwdRtFast
и PAUSE 15
и HIGH 13
и LOW 12
и LOW 14
и LOW 11
ELSEIF x=210 THENииииииииииииииииииииииииииииииииииииииииииииии иииииииииии 'The robot will turn right
и PULSOUT ltServo, FwdLtFast
и PULSOUT rtServo, FwdLtFast
и PAUSE 15
и HIGH 13
и LOW 12
и LOW 14
и LOW 11
ELSEIF x=110 AND (eye = 0) AND (eye1 = 0) THENиииииииииииииииииииииииииииииии 'The robot will turn left
и PULSOUT ltServo, FwdRtFast
и PULSOUT rtServo, FwdRtFast
и PAUSE 15
и HIGH 13
и LOW 12
и LOW 14
и LOW 11
ELSEIF x=110 THENииииииииииииииииииииииииииииииииииииииииииииии ииииииииии 'The robot will go backward
и PULSOUT ltServo, FwdLtFast
и PULSOUT rtServo, FwdRtFast
и PAUSE 15
и HIGH 12
и HIGH 13
и LOW 11
и LOW 14
и ELSEииииииииииииииииииииииииииииииииииииииииииииии иииииииииииииииииииииии 'Both servo will stop moves
HIGH 11
LOW 13ииииииииииииииииииииииииииииииииииииииииииииииии иииииииииииииииииии ' All LEDs turn off, only Green LED will be on
LOW 8иииииииииииииииииииииииииииииииииииииииииииииииии иииииииииииииииииии ' tell you that the system on standby mode
LOW 10
LOW 14
LOW 12
ENDIF
LOOP
'======================================== End routine ==================================================


this is the TX coding:


'{$STAMP BS2}
'{$PBASIC 2.5}
'----------------------variables-------------------------------------------
xииииииииииииииииииииии VAR Wordиии ' Variable for input signal
zииииииииииииииииииииии VAR Wordиии ' Variable for output signal

'================================================= ===========================
'-------------------- main routine ------------------------------------------
'================================================= ===========================

DO
PULSOUT 15, 1200ииииииииииииииииииииииииииии 'Sync pulse for the receiver
SEROUTи 15, 16780, [ "!", x]


IF IN5 = 1 THEN
x = 210
ELSEIF IN0 = 1 THEN
x = 110
ELSEIF IN1 = 1 THEN
x = 54
ELSEIF IN10 = 1 THEN
x = 154
ELSE
x = 232
ENDIF
LOOP
'==================== End routine ==================================

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

Spiral_72
06-08-2010, 11:47 PM
My mind doesn't seem to want to grasp what you are doing here..... but after all the IF-ELSEIF stuff, you have a "LOOP", but I don't see where the loop is handled. Where is it supposed to go???

If you intended for the LOOP to start all the IF-ELSEIF checks over again, then it needs to be a goto....... or precede all that stuff with a "DO WHILE"

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"puff"...... crap, there went another one.

KARIM102
06-09-2010, 10:59 AM
i don't think the peoblem with DO LOOP but it is with IF-ELSEIF!!! I Check the IR detector it's working perfectly with if- when it's the only input to the microcontroller,,, but when it's with the with RX coding it's not working!!! that's the only peoblem i got
"ELSEIF x=110 AND (eye = 0) AND (eye1 = 0) THEN 'The robot will turn left
PULSOUT ltServo, FwdRtFast
PULSOUT rtServo, FwdRtFast
PAUSE 15
HIGH 13
LOW 12
LOW 14
LOW 11

this status not working !!! but why????

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

Franklin
06-09-2010, 11:07 AM
Break your program into smaller pieces and find out where the problem lies. Add back one piece at a time until it breaks again and you will know where your problem is.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- Stephen

KARIM102
06-13-2010, 01:23 AM
thx a lot i find the problem but it will be silly to say!!!!!!!!!!!! i just copy the coding and open another page and it work but why??? i couldn't understant what happen??? but now with the same code it's working???????????

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔