90 likes | 190 Views
Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC. Exercício 1. Coloque o sensor de luz sobre um papel branco. Ao mover-se sobre um papel preto, ligue o motor A para que avance ( Foward ). Desligue o motor quando o sensor de luz voltar ao papel branco.
E N D
Lição 3: Sensor de luze condicionaisSoluções de Programação: RoboLab programado com NQC
Exercício 1 Coloque o sensor de luz sobre um papel branco. Ao mover-se sobre um papel preto, ligue o motor A para que avance ( Foward ). Desligue o motor quando o sensor de luz voltar ao papel branco.
Exercício 1: Solução NQC Use macros para facilitar a leitura do código #define LIGHT SENSOR_1 #define THRESHOLD 45 task main() { SetSensor(LIGHT, SENSOR_LIGHT); SelectDisplay(DISPLAY_SENSOR_1); until (LIGHT <= THRESHOLD); OnFwd(OUT_A); until (LIGHT > THRESHOLD); Off(OUT_A); } Para o sensor, 45 é um valor médio entre branco e preto Mostra o valor lido pelo sensor no display
Exercício 2 Iniciando-se o programa um som, tipo zumbido, é emitido se presionado o sensor de contato. Por outro lado, se o sensor de contato não é pressionado, se emite um tom descendente.
Exercício 2: Solução NQC A entrada 1 tem um sensor de contato. task main() { SetSensor(SENSOR_1, SENSOR_TOUCH); if (SENSOR_1 == 0) { PlaySound(SOUND_DOWN); } else { PlaySound(SOUND_LOW_BEEP); } } 1significa “pressionado.” 0 significa “liberado.” não dúvide é um duplo sinal de igual! ‘SOUND_LOW_BEEP” é um zumbido!
Exercício 3 Se o sensor de luz está sobre papel branco, liga-se somente o motor A. Se o sensor de luz está sobre um papel preto liga-se o motor C. Faz-se isto para sempre.
Exercício 3: Solução NQC use macros para facilitar a leitura do código #define LIGHT SENSOR_1 #define THRESHOLD 45 task main() { SetSensor(LIGHT, SENSOR_LIGHT); while (true) { if (LIGHT > THRESHOLD) { Off(OUT_C); OnFwd(OUT_A); } else { Off(OUT_A); OnFwd(OUT_C); } } } while (true) cria um laço ( loop ) infinito
Exercício 4 Se o sensor de luz está sobre papel branco, se o sensor de contato é pressionado, ligue o motor A em reverso;em outro caso, ligue o motor A para que avance. Por outro lado, se o sensor de luz está sobre o papel preto, se o sensor de contato é pressionado, ligue o motor C em reverso;em outro caso, ligue o motor C para que avance. Para todas as condições, o motor funciona por 4 segundos e depois desliga.
#define TOUCH SENSOR_1 #define LIGHT SENSOR_2 task main() { SetSensor(TOUCH, SENSOR_TOUCH); SetSensor(LIGHT, SENSOR_LIGHT); if (LIGHT > 45) { if (TOUCH == 0) { OnFwd(OUT_A); } else { OnRev(OUT_A); } } else { if (TOUCH == 0) { OnFwd(OUT_C); } else { OnRev(OUT_C); } } Wait(400); Off(OUT_A); Off(OUT_C); } Exercício 4: Solução NQC