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

Ir para baixo
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.14 Sequencial pelo LDR Empty Exercício 1.14 Sequencial pelo LDR

Seg Jul 06, 2020 8:50 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 //Definido que o pino 3 irá se chamar led1
#define led2 4 //Definido que o pino 4 irá se chamar led2
#define led3 5 //Definido que o pino 5 irá se chamar led3
#define led4 6 //Definido que o pino 6 irá se chamar led4
#define led5 7 //Definido que o pino 7 irá se chamar led5
#define led6 8 //Definido que o pino 8 irá se chamar led6
#define LDR A0 //Definido que o pino A0 irá se chamar LDR

//DECLARAcAO DE VARIAVEIS GLOBAIS
int tempo;//Variável para ser atribuído o valor do tempo

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1,OUTPUT);//Configurado o pino 3 como saída
pinMode(led2,OUTPUT);//Configurado o pino 4 como saída
pinMode(led3,OUTPUT);//Configurado o pino 5 como saída
pinMode(led4,OUTPUT);//Configurado o pino 6 como saída
pinMode(led5,OUTPUT);//Configurado o pino 7 como saída
pinMode(led6,OUTPUT);//Configurado o pino 8 como saída
Serial.begin(9600);//Porta serial inicializada
}

//FUNÇÕES COMPLEMENTARES
void debug() {
Serial.print("luminosidade=");//Quando a função for ativada ele irá colocar o valor da linha baixo
Serial.println(analogRead(LDR));//O valor lido no LDR será o valor atribuído à luminosidade
Serial.println("tempo=");//Quando a função for ativada ele irá colocar o valor da linha de baixo
Serial.println(tempo);//O valor do intervalo de tempo será o valor atribuído na variável do próprio tempo
}
void debug2() {
tempo=map(analogRead(LDR),2,930,200,20);//O valor do tempo será os valores lidos no LDR convertidos pelos valores do tempo(inversos), pela função map
delay(tempo);//O valor do tempo será o valor atribuído pela variável tempo
debug();//A função complementar será ativada
}
//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(led1,HIGH);//Quando o programa inicializar o led1 irá acender
debug2();//A segunda função compementar será ativada
digitalWrite(led1,LOW);//Quando o intervalo de tempo acabar o led1 irá apagar
digitalWrite(led2,HIGH);//Quando o led1 apagar o led2 irá acender
debug2();//A segunda função compementar será ativada
digitalWrite(led2,LOW);//Quando o intervalo de tempo acabar o led2 irá apagar
digitalWrite(led3,HIGH);//Quando o led2 apagar o led3 irá acender
debug2();//A segunda função compementar será ativada
digitalWrite(led3,LOW);//Quando o intervalo de tempo acabar o led3 irá apagar
digitalWrite(led4,HIGH);//Quando o led3 apagar o led4 irá acender
debug2();//A segunda função compementar será ativada
digitalWrite(led4,LOW);//Quando o intervalo de tempo acabar o led4 irá apagar
digitalWrite(led5,HIGH);//Quando o led4 apagar o led5 irá acender
debug2();//A segunda função compementar será ativada
digitalWrite(led5,LOW);//Quando o intervalo de tempo acabar o led5 irá apagar
digitalWrite(led6,HIGH);//Quando o led5 apagar o led6 irá acender
debug2();//A segunda função compementar será ativada
digitalWrite(led6,LOW);//Quando o intervalo de tempo acabar o led6 irá apagar
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5039
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.14 Sequencial pelo LDR Empty Re: Exercício 1.14 Sequencial pelo LDR

Ter Jul 07, 2020 12:11 am
Muito bom Thiago, nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos