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
joao victor carmona
Mensagens : 47
Data de inscrição : 18/03/2023
Escola : Colegio Professora lindaura ribeiro lucas

ex 1.14 resolvido Empty ex 1.14 resolvido

Sex Set 08, 2023 6:34 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 1.14
* Tema: Pinos Analógicos
* Atividade: Controlar a velocidade do sequencial conforme a quantidade de luz no LDR
* Descrição: Usar uma entrada analógica para medir a intensidade da luz e usar esse valor para ajustar a velocidade
* Requisito1: A cada troca de estado deve ser atualizado o tempo conforme iluminação do ambiente
* Requisito2: A variação de tempo deve ser diretamente proporcional ao valor do ldr, ou seja, quanto mais luz mais rápido o sequencial
* Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o LDR em uma entrada analógica
* Comandos: pinMode, analogRead, digitalWrite,delay, map
* Dica1:A o conversor analógico possui 10 bits ou seja de 0 até 1024
* Dica2: Usar a função debug() para checar as variações de valor do ldr no pino analógico
* Dica3:Pode usar a função map() para converter a variação dos valores lidos no ldr para as variações de tempo desejadas
* Dica4: Pode usar uma função para fazer a leitura do LDR e temporização do sequencial
*/

//DEFINICOES INICIAIS
#define led1 3 //define que o pino 3 se chama "led1"
#define led2 4 //define que o pino 4 se chama "led2"
#define led3 5 //define que o pino 5 se chama "led3"
#define led4 6 //define que o pino 6 se chama "led4"
#define led5 7 //define que o pino 7 se chama "led5"
#define led6 8 //define que o pino 8 se chama "led6"
#define ldr A0 //definido que o pino A0 se chama ldr

//DECLARAcAO DE VARIAVEIS GLOBAIS
int tempo;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //define que o programa começara
pinMode(led1, OUTPUT); //define o led1 como saida
pinMode(led2, OUTPUT); //define o led2 como saida
pinMode(led3, OUTPUT); //define o led3 como saida
pinMode(led4, OUTPUT); //define o led4 como saida
pinMode(led5, OUTPUT); //define o led5 como saida
pinMode(led6, OUTPUT); //define o led6 como saida

}

//FUNÇÕES COMPLEMENTARES
void debug() {
Serial.print("luminosidade = "); //vai colocar o valor do temperatura pela porta serial
Serial.println(analogRead(ldr)); //define que o ldr pulara para a proxima linha
Serial.print("tempo = "); //vai colocar o valor do tempo pela porta serial
Serial.println(tempo); //define que o tempo pulara para a proxima linha
}

void relogio(){
tempo = map(analogRead(ldr), 2, 930, 400, 50); //fara a leitura do ldr
delay(tempo); //o tempo que o programa estara ligado
debug(); //define que repetira tudo que esta escrito em void debug
}
//PROGRAMA PRINCIPALtempo
void loop() {
digitalWrite(led1, HIGH); //define que o led estara ligado
relogio(); //define que repetira tudo que esta escrito em void relogio()
digitalWrite(led1, LOW); //define que o led estara desligado
digitalWrite(led2, HIGH); //define que o led estara ligado
relogio(); //define que repetira tudo que esta escrito em void relogio()
digitalWrite(led2, LOW); //define que o led estara desligado
digitalWrite(led3, HIGH); //define que o led estara ligado
relogio(); //define que repetira tudo que esta escrito em void relogio()
digitalWrite(led3, LOW); //define que o led estara desligado
digitalWrite(led4, HIGH); //define que o led estara ligado
relogio(); //define que repetira tudo que esta escrito em void relogio()
digitalWrite(led4, LOW); //define que o led estara desligado
digitalWrite(led5, HIGH); //define que o led estara ligado
relogio(); //define que repetira tudo que esta escrito em void relogio()
digitalWrite(led5, LOW); //define que o led estara desligado
digitalWrite(led6, HIGH); //define que o led estara ligado
relogio(); //define que repetira tudo que esta escrito em void relogio()
digitalWrite(led6, LOW); //define que o led estara desligado

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

ex 1.14 resolvido Empty Re: ex 1.14 resolvido

Dom Set 24, 2023 8:10 pm
Muito bom, nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos