Post on 14-Jan-2016
description
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.
Exercício 1: Solução NQC#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
Use macros para facilitara leitura do código
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 NQCtask main()
{
SetSensor(SENSOR_1, SENSOR_TOUCH);
if (SENSOR_1 == 0)
{
PlaySound(SOUND_DOWN);
}
else
{
PlaySound(SOUND_LOW_BEEP);
}
}
A entrada 1 tem um sensor de contato.
1 significa “pressionado.”0 significa “liberado.”
‘SOUND_LOW_BEEP”é um zumbido!
não dúvide é um duplo sinal de igual!
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#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);
}
}
}
use macros para facilitar a leitura do código
while (true) cria um laço ( loop ) infinito
Exercício 4Se 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.
Exercício 4: Solução NQC#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);
}