- Renata Pinheiro B
- Mensagens : 54
Data de inscrição : 31/07/2021
Idade : 16
Escola : Lindaura Ribeiro Lucas
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
}
* 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
}
Permissões neste sub-fórum
Não podes responder a tópicos