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

Ir para baixo
Gigio
Gigio
Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 17
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas

Exercício 1.12 Empty Exercício 1.12

Qua Abr 27, 2022 3:41 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 1.12
* Tema: Pinos Analógicos
* Atividade: Fazer o led alternar o brilho conforme a variação de luminosidade
* Descrição: Usar um pino analógico para controlar o brilho do led e uma entrada analógica para medir a luminosidade
* Hardware: Ligar um led em um pino digital configurado como SAÍDA ANALÓGICA e o LDR em uma entrada analógica
* Comandos: pinMode, analogRead, analogWrite,
* Dica1:A saída analógica aceita valores entre 0 e 255, e o conversor analógico possui 10 bits ou seja até 1024
* Dica2:Usar a função debug() para checar os valores maximos e minimos do LDR
* Dica3:Checar os valores de entrada maximo e minimo, lembrando que nesse circuito não é possível atingir o zero nem o valor máximo.
* Dica4:Converter a escala do LDR usando regra de 3,
* Dica5:Escrever o valor lido do LDR no led, tente também fazer o brilho inversamente proporcional a Luminosidade
*/

//DEFINICOES INICIAIS
#define led1 3 //Define o pino 3 como LED1
#define led2 5 //Define o pino 5 como LED2
#define ldr A1 //Define o pino A1 como LDR

//DECLARAcAO DE VARIAVEIS GLOBAIS
int valor; //Variável INT para valor
int valormenos; //Variável INT para valormenos

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(led1,OUTPUT); //Define o LED como OUTPUT,
pinMode(led2,OUTPUT); //Define o LED 2 como OUTPUT.
}

//FUNÇÕES COMPLEMENTARES
void amongus(){ //Função debug, porém com um nome suspeito,
Serial.println(valor); //Manda o valor da variável "valor" para o monitor
Serial.print("Luminosidade: "); //Manda a descrição antes de mandar a variável "valor" para o monitor
}
//PROGRAMA PRINCIPAL

void loop() {
valor = analogRead(ldr)/3.8; //Lê o LDR e define-o como a variável valor, e divide-a por 3.8 para manter a proporção a luminosidade,
valormenos = analogRead(ldr)/-3.8; //Lê o LDR e define-o como a variável valor, e divide-a por -3.8 para manter a proporção a luminosidade e fazer o efeito inverso no LED 2,
amongus(); //Chama a função debug,
analogWrite(led1,valor); //Liga o LED com o valor da variável "valor", ligando-o quando a luminosidade está alta,
analogWrite(led2,valormenos); //Liga o LED com o valor da variável "valormenos", ligando-o quando a luminosidade está baixa.
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5715
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.12 Empty Re: Exercício 1.12

Sex maio 06, 2022 12:59 am
Muito bom Giovano, resolveu de uma forma diferente o ajuste da escala, isso mostra que entendeu o conceito da escala. Nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos