'PROGRAMA ROBO_FOLLOW_LIGTH.BAS 'TESTA PINOS COM LDR (P1 E P2) 'PARA SEGUIR LUZ 'DESENVOLVIDO POR MÁRCIO JOSÉ SOARES '' 'OBS: ESTE PROGRAMA FOI DESENVOLVIDO PARA 'BASIC STEP 1 COM FIRMWARE 2.6 OU SUPERIOR 'COM COMPILADOR TBASIC 1.0.0.0 OU SUPERIOR symbol cmd=254 'habilita lcd p/ receber comandos symbol clear=1 'apaga display symbol posi=128 'posiciona cursor no lcd symbol display=2 'pino do display symbol ldr1=b2 'variável p/ guardar condição do LDR1 symbol ldr2=b3 'variável p/ guardar condição do LDR2 symbol m1_1=4 'pino 7 do L293D symbol m1_2=5 'pino 2 do L293D symbol m2_1=7 'pino 10 do L293D symbol m2_2=6 'pino 15 do L293D symbol led=3 'pino do led inicio: dirs=%11111001 'todas as portas como saída, exceto 1 e 2 low m1_1 'desliga motores low m1_2 low m2_1 low m2_2 pause 400 'espera display inicializar serout display,N2400, (cmd,clear) 'apaga display serout display,N2400, (" Robo Luzbo") 'apaga display pause 3000 loop: pause 500 'aguarda 250ms serout display,N2400, (cmd,clear) 'apaga display input 0 'lê pino 1 (LDR1) if pin0=1 then 'se sem luz no ldr1 ldr1=0 'informa valor serout display,N2400, ("LDR1 sem LUZ") else ldr1=1 'senão, informa valor ldr com luz serout display,N2400, ("LDR1 com LUZ") endif serout display,N2400, (cmd, posi+40) input 1 'lê pino 2 (LDR2) if pin1=1 then 'se sem luz no ldr2 ldr2=0 'informa valor serout display,N2400, ("LDR2 sem LUZ") else ldr2=1 'senão, informa valor ldr com luz serout display,N2400, ("LDR2 com LUZ") endif if ldr1=1 then 'ambos tem luz? if ldr2=1 then high m1_1 'move robô a frente. low m1_2 low m2_1 high m2_2 else 'só LDR1 tem luz. Gira na direção deste low m1_1 'mantem motor 1 parado low m1_2 low m2_1 'e busca luz com motor 2 para LDR2 high m2_2 endif else 'LDR1 não tem luz if ldr2=0 then 'ldr2 também está sem luz low m1_1 'para robô low m1_2 low m2_1 low m2_2 else 'ldr1 sem luz, ldr2 com luz high m1_1 'busca luz com motor 1 low m1_2 low m2_1 'e mantem parado motor 2 low m2_2 endif endif toggle led 'muda estado do led goto loop 'faz eternamente!!!