วันอังคารที่ 18 ธันวาคม พ.ศ. 2550

B12-1.bsx

'{$STAMP BS2sx}
'{$PBASIC 2.5}
CH VAR Nib
ADC VAR Word
CNT VAR Nib
i VAR Nib
GOSUB Beep
Main: DO : LOOP UNTIL (IN1=0 ) ' Press key for start program
GOSUB Forward ' Motor on
CNT = 0
DO
CH = 1 : GOSUB RD_ADC ' Read data from left sensor
IF (ADC < 400) THEN ' Check the black line
GOSUB Beep
CNT = CNT + 1 ' Count 1 time at 1 line
DO
CH = 1 : GOSUB RD_ADC ' Wait until sensor exit line
LOOP UNTIL (ADC > 600)
ENDIF
LOOP UNTIL ( CNT = 4 ) ' Pass 4 line ?
GOSUB Motor_OFF ' Stop motor after exit loop
FOR i = 1 TO 4 ' Beep 4 time to finish
GOSUB Beep
PAUSE 200
NEXT
GOTO Main ' Again
'+++++ Analog to Digital Converter Procedure ++++++++++
RD_ADC: LOW 10: PAUSE 2: HIGH 10 ' Send acknowledge
SEROUT 10,240,[CH] ' Send aelect chip
SERIN 10,240,250,Error,[ADC.BYTE0,ADC.BYTE1] ' Read ADC
RETURN
Error: DEBUG "Error Reading",CR
RETURN
Beep: FREQOUT 11,200,800 ' Sound Routine
RETURN
'+++++ Movement Procedure +++++++++++++++++++++++++++++
Forward: HIGH 13 : LOW 12 : HIGH 15 : LOW 14 : RETURN
Motor_OFF: LOW 13 : LOW 12 : LOW 15 : LOW 14 : RETURN
'++++++++++++++++++++++++++++++++++++++++++++++++++++++

B9-1.bsx

'{$STAMP BS2sx}
'{$PBASIC 2.5}
CH VAR Nib
ADC VAR Word
DO
CH = 1 ' Select Channel 1 For Analog1
GOSUB RD_ADC ' Read Data From Left Sensor
DEBUG 2,5,5, "LEFT SENSOR VALUE = ",DEC ADC
IF (ADC < 400) THEN ' Robot Lift From White Board ?
FREQOUT 11,500,800 ' Beep
ENDIF
LOOP
'+++++ Analog to Digital Converter Procedure ++++++++++
RD_ADC: LOW 10: PAUSE 2: HIGH 10 ' Send Acknowledge
SEROUT 10,240,[CH] ' Send Select Chip
SERIN 10,240,250,Error,[ADC.BYTE0,ADC.BYTE1] ' Read ADC
RETURN
Error: DEBUG "Error Reading",CR
RETURN

B8-1.bsx-Module3 read

'{$STAMP BS2sx}
'{$PBASIC 2.5}
CH VAR Nib
ADC VAR Word

DO
CH = 1 ' Select Channel 1 For Analog1
GOSUB RD_ADC ' Read Data From Left Sensor
DEBUG 2,5,5, "LEFT SENSOR VALUE = ",DEC ADC
CH = 3 ' Select Channel 3 For Analog3
GOSUB RD_ADC ' Read Data From Mid Sensor
DEBUG 2,5,6, "MID SENSOR VALUE = ",DEC ADC
CH = 5 ' Select Channel 5 For Analog5
GOSUB RD_ADC ' Read Data From Right Sensor
DEBUG 2,5,7, "RIGHT SENSOR VALUE = ",DEC ADC
PAUSE 200
LOOP

'+++++ Analog to Digital Converter Procedure ++++++++++
RD_ADC: LOW 10: PAUSE 2: HIGH 10 ' Send Acknowledge
SEROUT 10,240,[CH] ' Send Select Chip
SERIN 10,240,250,Error,[ADC.BYTE0,ADC.BYTE1] ' Read ADC
RETURN
Error: DEBUG "Error Reading",CR
RETURN