Exercício 2.16
Seg Ago 17, 2020 3:24 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
int luminosidade; //variavel declarada
//FUNÇÕES COMPLEMENTARES
//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);
}
//PROGRAMA PRINCIPAL
void loop() {
luminosidade = map(analogRead(ldr),11,834,0,3); //função luminosidade com maximo e minino
switch(luminosidade){ //função switch com variavel
case(0): //case 0
digitalWrite(led1,LOW); //led1 fica apagado
digitalWrite(led2,LOW); //led2 fica apagado
digitalWrite(led3,LOW); //led3 fica apagado
break; //função break
case(1): //case 1
digitalWrite(led1,HIGH); //led1 fica apagado
digitalWrite(led2,LOW); //led2 fica apagado
digitalWrite(led3,LOW); //led3 fica apagado
break; //função break
case(2): //case 2
digitalWrite(led1,HIGH); //led1 acende
digitalWrite(led2,HIGH); //led1 acende
digitalWrite(led3,LOW); //led1 fica apagado
break; //função break
case(3): //case 3
digitalWrite(led1,HIGH); //led1 acende
digitalWrite(led2,HIGH); //led1 acende
digitalWrite(led3,HIGH); //led1 acende
}
}
* 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
int luminosidade; //variavel declarada
//FUNÇÕES COMPLEMENTARES
//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);
}
//PROGRAMA PRINCIPAL
void loop() {
luminosidade = map(analogRead(ldr),11,834,0,3); //função luminosidade com maximo e minino
switch(luminosidade){ //função switch com variavel
case(0): //case 0
digitalWrite(led1,LOW); //led1 fica apagado
digitalWrite(led2,LOW); //led2 fica apagado
digitalWrite(led3,LOW); //led3 fica apagado
break; //função break
case(1): //case 1
digitalWrite(led1,HIGH); //led1 fica apagado
digitalWrite(led2,LOW); //led2 fica apagado
digitalWrite(led3,LOW); //led3 fica apagado
break; //função break
case(2): //case 2
digitalWrite(led1,HIGH); //led1 acende
digitalWrite(led2,HIGH); //led1 acende
digitalWrite(led3,LOW); //led1 fica apagado
break; //função break
case(3): //case 3
digitalWrite(led1,HIGH); //led1 acende
digitalWrite(led2,HIGH); //led1 acende
digitalWrite(led3,HIGH); //led1 acende
}
}
Re: Exercício 2.16
Dom Ago 23, 2020 10:32 pm
Muito bom Daniel, funcionou. Nota 10.0
Apesar que os comentários na função map() estarem superficiais e imprecisos.
Vou cobrer mais de voce esses comentários.
Apesar que os comentários na função map() estarem superficiais e imprecisos.
Vou cobrer mais de voce esses comentários.
Permissões neste sub-fórum
Não podes responder a tópicos
|
|