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 1.14  resolvido Empty ExercÌcio 1.14 resolvido

Seg Set 20, 2021 2:41 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 vai se chamar led1
#define led2 4//define que o pino 4 vai se chamar led2
#define led3 5//define que o pino 5 vai se chamar led3
#define led4 6//define que o pino 6 vai se chamar led4
#define led5 7//define que o pino 7 vai se chamar led5
#define led6 8//define que o pino 8 vai se chamar led6
#define ldr A0//define que o pino A0 vai se chamar ldr

//DECLARAcAO DE VARIAVEIS GLOBAIS
int tempo;//variável int definida como tempo

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//velocidade do monitor serial
pinMode(led1, OUTPUT);//define o led1 como saída
pinMode(led2, OUTPUT);//define o led2 como saída
pinMode(led3, OUTPUT);//define o led3 como saída
pinMode(led4, OUTPUT);//define o led4 como saída
pinMode(led5, OUTPUT);//define o led5 como saída
pinMode(led6, OUTPUT);//define o led6 como saída
}

//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("Luminosidade = ");//vai imprimir no minitor serial a frase "Luminosidade = "
Serial.print(analogRead(ldr));//vai imprimir no monitor serial o valor do ldr
Serial.print(" Tempo = ");//vai imprimir no monitor serial a frase " Tempo = "
Serial.println(tempo);//vai imprimir no monitor serial o valor da variável tempo
}

void timer(){
tempo = map(analogRead(ldr),2, 930, 400, 50);//vai converter valor dos numeros de 2 a 930 para 50 a 400
delay(tempo);//pausa foi definida pela variável tempo
debug();//vai chamar a função debug
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(led1, HIGH);//liga o led1
timer();//vai chamar a função time
digitalWrite(led1, LOW);//desliga o led1
digitalWrite(led2, HIGH);//liga o led2
timer();//vai chamar a função time
digitalWrite(led2, LOW);//desliga o led2
digitalWrite(led3, HIGH);//liga o led3
timer();//vai chamar a função time
digitalWrite(led3, LOW);//desliga o led3
digitalWrite(led4, HIGH);//liga o led4
timer();//vai chamar a função time
digitalWrite(led4, LOW);//desliga o led4
digitalWrite(led5, HIGH);//liga o led5
timer();//vai chamar a função time
digitalWrite(led5, LOW);//desliga o led5
digitalWrite(led6, HIGH);//liga o led6
timer();//vai chamar a função time
digitalWrite(led6, LOW);//desliga o led6
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

ExercÌcio 1.14  resolvido Empty Re: ExercÌcio 1.14 resolvido

Qui Set 30, 2021 11:36 pm
Muito bom Renata, nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos