- Thiaguin
- Mensagens : 176
Data de inscrição : 03/03/2020
Exercício 2.16 Medidor de Intensidade de luz usando switch case
Qui Ago 20, 2020 5:33 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.16
* Tema: Switch Case
* Atividade: Montar medidor de intensidade de luz
* Descrição: Acionar os leds conforme intensidade de luz, pouca luz tudo apagado e muita luz 3 leds acesos, 4 escalas de intensidade
* Hardware: Ligar o LDR configurados como ENTRADA ANALóGICA e 3 leds em outros pinos digitais configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT), Switch Case, IF
* DICA1: Ajustar a escala usando o debug() para encontrar as variações máximas e minimas
* DICA2: Usar a função map() e ajustar na saida de 0 a 3
* DICA3: em cada case colocar a configuração dos leds entre os acesos e apagados
*/
//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led2 4 //Definido que o pino 4 vai se chamar "led2"
#define led3 5 //Definido que o pino 5 vai se chamar "led3"
#define ldr A0 //definido que o pino A0 agora se chama LDR
//DECLARAcAO DE VARIAVEIS
byte luminosidade;//Variável para ser atribuído o valor da luminosidade
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("luminosidade=");//Ele irá mandar o valor da linha de baixo
Serial.println(analogRead(ldr));//O valor lido no ldr será mandado para o monitor serial
delay(200);//O intertvalo de tempo será de 0,2 segundos
}
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT); //programado o led como saida
pinMode(led2, OUTPUT); //programado o led como saida
pinMode(led3, OUTPUT); //programado o led como saida
Serial.begin(9600);//Porta serial inicializada
}
//PROGRAMA PRINCIPAL
void loop() {
//luminosidade 11=0 834=3
debug();//A função complementar será ativada
switch(map(analogRead(ldr),11,834,0,3)){//Os valores lidos no ldr serão convertidos para os valores correspondentes aos pinos , pela função map e serão tratadas dentro da função switch
case 0 ://Se a variável luminosidade tiver valor igual a 0 , irá rodar o bloco abaixo
digitalWrite(led1,LOW);//O led1 irá se manter apagado
digitalWrite(led2,LOW);//O led2 irá se manter apagado
digitalWrite(led3,LOW);//O led3 irá se manter apagado
break;//O programa será interrompido e irá sair fora do bloco
case 1 ://Se a variável luminosidade tiver valor igual a 1 , irá rodar o bloco abaixo
digitalWrite(led1,HIGH);//O led1 irá acender
digitalWrite(led2,LOW);//O led2 irá se manter apagado
digitalWrite(led3,LOW);//O led3 irá se manter apagado
break;//O programa será interrompido e irá sair fora do bloco
case 2 ://Se a variável luminosidade tiver valor igual a 2 , irá rodar o bloco abaixo
digitalWrite(led1,HIGH);//O led1 irá acender
digitalWrite(led2,HIGH);//O led2 irá acender
digitalWrite(led3,LOW);//O led3 irá se manter apagado
break;//O programa será interrompido e irá sair fora do bloco
case 3 ://Se a variável luminosidade tiver valor igual a 3 , irá rodar o bloco abaixo
digitalWrite(led1,HIGH);//O led1 irá acender
digitalWrite(led2,HIGH);//O led2 irá acender
digitalWrite(led3,HIGH);//O led3 irá acender
break;//O programa será interrompido e irá sair fora do bloco
}
}
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.16
* Tema: Switch Case
* Atividade: Montar medidor de intensidade de luz
* Descrição: Acionar os leds conforme intensidade de luz, pouca luz tudo apagado e muita luz 3 leds acesos, 4 escalas de intensidade
* Hardware: Ligar o LDR configurados como ENTRADA ANALóGICA e 3 leds em outros pinos digitais configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT), Switch Case, IF
* DICA1: Ajustar a escala usando o debug() para encontrar as variações máximas e minimas
* DICA2: Usar a função map() e ajustar na saida de 0 a 3
* DICA3: em cada case colocar a configuração dos leds entre os acesos e apagados
*/
//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led2 4 //Definido que o pino 4 vai se chamar "led2"
#define led3 5 //Definido que o pino 5 vai se chamar "led3"
#define ldr A0 //definido que o pino A0 agora se chama LDR
//DECLARAcAO DE VARIAVEIS
byte luminosidade;//Variável para ser atribuído o valor da luminosidade
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("luminosidade=");//Ele irá mandar o valor da linha de baixo
Serial.println(analogRead(ldr));//O valor lido no ldr será mandado para o monitor serial
delay(200);//O intertvalo de tempo será de 0,2 segundos
}
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT); //programado o led como saida
pinMode(led2, OUTPUT); //programado o led como saida
pinMode(led3, OUTPUT); //programado o led como saida
Serial.begin(9600);//Porta serial inicializada
}
//PROGRAMA PRINCIPAL
void loop() {
//luminosidade 11=0 834=3
debug();//A função complementar será ativada
switch(map(analogRead(ldr),11,834,0,3)){//Os valores lidos no ldr serão convertidos para os valores correspondentes aos pinos , pela função map e serão tratadas dentro da função switch
case 0 ://Se a variável luminosidade tiver valor igual a 0 , irá rodar o bloco abaixo
digitalWrite(led1,LOW);//O led1 irá se manter apagado
digitalWrite(led2,LOW);//O led2 irá se manter apagado
digitalWrite(led3,LOW);//O led3 irá se manter apagado
break;//O programa será interrompido e irá sair fora do bloco
case 1 ://Se a variável luminosidade tiver valor igual a 1 , irá rodar o bloco abaixo
digitalWrite(led1,HIGH);//O led1 irá acender
digitalWrite(led2,LOW);//O led2 irá se manter apagado
digitalWrite(led3,LOW);//O led3 irá se manter apagado
break;//O programa será interrompido e irá sair fora do bloco
case 2 ://Se a variável luminosidade tiver valor igual a 2 , irá rodar o bloco abaixo
digitalWrite(led1,HIGH);//O led1 irá acender
digitalWrite(led2,HIGH);//O led2 irá acender
digitalWrite(led3,LOW);//O led3 irá se manter apagado
break;//O programa será interrompido e irá sair fora do bloco
case 3 ://Se a variável luminosidade tiver valor igual a 3 , irá rodar o bloco abaixo
digitalWrite(led1,HIGH);//O led1 irá acender
digitalWrite(led2,HIGH);//O led2 irá acender
digitalWrite(led3,HIGH);//O led3 irá acender
break;//O programa será interrompido e irá sair fora do bloco
}
}
Re: Exercício 2.16 Medidor de Intensidade de luz usando switch case
Seg Ago 24, 2020 1:50 am
Ae Thiago, o programa está correto. Nota 10.0
Permissões neste sub-fórum
Não podes responder a tópicos
|
|