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
Daniel Lukas
Mensagens : 62
Data de inscrição : 06/03/2020
Idade : 17
Escola : Rua Aníbal Silva
https://sayajin-gamers-store.myshopify.com/

Exercício 2.4 Empty Exercício 2.4

Qua Jun 24, 2020 6:02 pm

/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.4
* Tema: Função IF
* Atividade: Acender um LED se a luminosidade for maior que o ajuste do trimpot
* Descrição: Usar uma entrada analógica para medir a intensidade da luz e outra para comparar o valor e usar esse valor para acender um LED
* Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o LDR e o TRIMPOT em uma entrada analógica
* Comandos: pinMode, analogRead, digitalWrite,delay, map, IF ELSE
* Dica1:A o conversor analógico possui 10 bits ou seja de 0 até 1024
* Dica2:Comparar se o valor do LDR ultrapassar o valor estabelecido pelo trimpot e acender o LED e se baixar apagar o LED
*/

//DEFINICOES INICIAIS
#define lampada 3 //pino 3 definido como lampada
#define LDR A0 //pino analogico A0 definido como LDR
#define trimpot A1 //pino analogico A1 definido como trimpot
//DECLARAcAO DE VARIAVEIS GLOBAIS
int luminosidade; //variavel luminosidade definida
int ajuste; //variavel ajuste definida
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //porta serial que abriu
pinMode(lampada, OUTPUT); //definido lampada como saida
}

//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("luminosidade = "); //variavel é escrita no comando
Serial.print(luminosidade); //comando é ativado
Serial.print("TRIMPOT = "); //variavel é escrita no comando
Serial.println(ajuste); //comando é escrito na linha de baixo
}

//PROGRAMA PRINCIPAL
void loop() {

luminosidade = analogRead(LDR); //luminosidade lê o comando no pino analogico
ajuste = map(analogRead(trimpot), 11,834,834, 11); //map da variavel
debug(); //debug é executado
if(luminosidade > 715){ //if vai acender a lampada quando passar 715
digitalWrite(lampada,HIGH); //lampada acende
} else { //comando else
digitalWrite(lampada,LOW); //lampada apaga
}
}

Daniel Lukas gosta desta mensagem

Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5021
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 2.4 Empty Re: Exercício 2.4

Qua Jun 24, 2020 10:24 pm
Daniel, Precisa fazer com que o led acenda quando a luminosidade for maior que o ajuste,
então a comparação é se a luminosidade > ajuste , de forma que se mudar o trimpot para baixo acende com menos luz e se colocar o trimpot para cima acende com mais luz.
Depois tem a situação do map() , precisa medir a variação do LDR e depois a variação do TRIMPOT, e vai converter uma na outra. no caso o trimpot deve ficar igual ao LDR,
Nota 6.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos