Robótica Livre
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
avatar
Renata Pinheiro B
Mensagens : 54
Data de inscrição : 31/07/2021
Idade : 16
Escola : Lindaura Ribeiro Lucas

Exercício 2.16 resolvido Empty Exercício 2.16 resolvido

Sáb maio 27, 2023 8:56 am
/*
* 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 byte definida como luminosidade

//FUNÇÕES COMPLEMENTARES


//INICIALIZAÇÃO DO HARDWARE
void setup() {
 Serial.begin(9600);//velocidade do monitor serial
pinMode(led1, OUTPUT);        //programado o led como saida
pinMode(led2, OUTPUT);        //programado o led como saida
pinMode(led3, OUTPUT);        //programado o led como saida
}

//PROGRAMA PRINCIPAL
void loop() {
 luminosidade = map(analogRead(ldr),11,834,0,3);//a variável luminosidade vai guardar o valor lido pelo map do ldr entre 11 e 834 e entre 3 e 0
 switch(luminosidade){//Se a variável tiver o valor igual a 0, executa o bloco abaixo
 case (0)://se o valor da variável for 0, executa o bloco abaixo
 digitalWrite(led1, LOW);//desliga o led1
 digitalWrite(led2, LOW);//desliga o led2
 digitalWrite(led3, LOW);//desliga o led3
  break;//o programa é interrompido e saí fora do bloco
  case (1)://se o valor da variável for 1, executa o bloco abaixo
 digitalWrite(led1, HIGH);//liga o led1
 digitalWrite(led2, LOW);//desliga o led2
 digitalWrite(led3, LOW);//desliga o led3
  break;//o programa é interrompido e saí fora do bloco
  case (2)://se o valor da variável for 2, executa o bloco abaixo
 digitalWrite(led1, HIGH);//liga o led1
 digitalWrite(led2, HIGH);//liga o led2
 digitalWrite(led3, LOW);//desliga o led3
  break;//o programa é interrompido e saí fora do bloco
  case (3)://se o valor da variável for 3, executa o bloco abaixo
 digitalWrite(led1, HIGH);//liga o led1
 digitalWrite(led2, HIGH);//liga o led2
 digitalWrite(led3, HIGH);//liga o led3
  break;//o programa é interrompido e saí fora do bloco

}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5715
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 2.16 resolvido Empty Re: Exercício 2.16 resolvido

Ter maio 30, 2023 11:26 pm
Oi Renata, tudo certinho, nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos