'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 INFERIOR a 2.6 'COM COMPILADOR TBASIC 0.9.25.0 symbol cmd=254 'habilita lcd p/ receber comandos symbol clear=1 'apaga display symbol posi=168 '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: toggle led 'muda estado do led pause 500 'aguarda 250ms serout display,N2400, (cmd,clear) 'apaga display input 0 'lê pino 1 (LDR1) if pin0=1 then sluz1 'se sem luz no ldr1 goto cluz1 volta1: serout display,N2400,(cmd, posi) input 1 'lê pino 2 (LDR2) if pin1=1 then sluz2 'se sem luz no ldr2 goto cluz2 'informa valor volta2: if ldr1=1 then ldr1tem 'ambos tem luz? ldr1ntem: 'LDR1 não tem luz if ldr2=0 then pararobo 'ldr2 também está sem luz ldr2tem: '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 goto loop ldr1tem: if ldr2=1 then parafrente ldr2ntem: '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 goto loop parafrente: high m1_1 'move robô a frente. low m1_2 low m2_1 high m2_2 goto loop pararobo: low m1_1 'para robô low m1_2 low m2_1 low m2_2 goto loop sluz1: ldr1=0 'informa valor serout display,N2400, ("LDR1 sem LUZ") goto volta1 cluz1: ldr1=1 'senão, informa valor ldr com luz serout display,N2400, ("LDR1 com LUZ") goto volta1 sluz2: ldr2=0 'informa valor serout display,N2400, ("LDR2 sem LUZ") goto volta2 cluz2: ldr2=1 'senão, informa valor ldr com luz serout display,N2400, ("LDR2 com LUZ") goto volta2