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
Cadu2005
Mensagens : 26
Data de inscrição : 03/03/2020

Ex 1.14 ldr led sequencial  Empty Ex 1.14 ldr led sequencial

Qui Ago 13, 2020 12:26 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 o pino 3 como led1
#define led2 4 //Define o pino 4 como led2
#define led3 5 //Define o pino 5 como led3
#define led4 6 //Define o pino 6 como led4
#define led5 7 //Define o pino 7 como led5
#define led6 8 //Define o pino 8 como led6
#define ldr A0 //Define o pino A0 como ldr
//DECLARAcAO DE VARIAVEIS GLOBAIS
int tempo;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(led1 , OUTPUT); //Define o pino3 como Saida
pinMode(led2 , OUTPUT); //Define o pino4 como Saida
pinMode(led3 , OUTPUT); //Define o pino5 como Saida
pinMode(led4 , OUTPUT); //Define o pino6 como Saida
pinMode(led5 , OUTPUT); //Define o pino7 como Saida
pinMode(led6 , OUTPUT); //Define o pino8 como Saida
}

//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("luminosidade = ");
Serial.println(analogRead(ldr));
}
void timer(){
tempo = map(analogRead(ldr), 2, 930, 50, 400); //Função map para definir valores de saida maxima e saida minima
delay(tempo);
}


//PROGRAMA PRINCIPAL
void loop() {
debug(); //Envia os valores para o Serial
digitalWrite(led1, HIGH);
timer();
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
timer();
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
timer();
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
timer();
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
timer();
digitalWrite(led5, LOW);
digitalWrite(led6, HIGH);
timer();
digitalWrite(led6, LOW);
}

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

Ex 1.14 ldr led sequencial  Empty Re: Ex 1.14 ldr led sequencial

Seg Ago 31, 2020 9:35 pm
Oi Cadu, o programa funcionou direitinho, mas lembra da regra do comentário ? Então a nota será 7.0.
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos