Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC
description
Transcript of Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC
![Page 1: Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC](https://reader036.fdocumentos.tips/reader036/viewer/2022082712/568148a0550346895db5b4c5/html5/thumbnails/1.jpg)
Lição 3: Sensor de luz e condicionais
Soluções de Programação: RoboLab programado com NQC
![Page 2: Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC](https://reader036.fdocumentos.tips/reader036/viewer/2022082712/568148a0550346895db5b4c5/html5/thumbnails/2.jpg)
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.
![Page 3: Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC](https://reader036.fdocumentos.tips/reader036/viewer/2022082712/568148a0550346895db5b4c5/html5/thumbnails/3.jpg)
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
![Page 4: Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC](https://reader036.fdocumentos.tips/reader036/viewer/2022082712/568148a0550346895db5b4c5/html5/thumbnails/4.jpg)
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.
![Page 5: Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC](https://reader036.fdocumentos.tips/reader036/viewer/2022082712/568148a0550346895db5b4c5/html5/thumbnails/5.jpg)
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!
![Page 6: Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC](https://reader036.fdocumentos.tips/reader036/viewer/2022082712/568148a0550346895db5b4c5/html5/thumbnails/6.jpg)
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.
![Page 7: Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC](https://reader036.fdocumentos.tips/reader036/viewer/2022082712/568148a0550346895db5b4c5/html5/thumbnails/7.jpg)
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
![Page 8: Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC](https://reader036.fdocumentos.tips/reader036/viewer/2022082712/568148a0550346895db5b4c5/html5/thumbnails/8.jpg)
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.
![Page 9: Lição 3: Sensor de luz e condicionais Soluções de Programação: RoboLab programado com NQC](https://reader036.fdocumentos.tips/reader036/viewer/2022082712/568148a0550346895db5b4c5/html5/thumbnails/9.jpg)
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);
}