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 Número 2.23 Empty Exercício Número 2.23

Ter Out 13, 2020 12:03 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.23
* Tema: Função WHILE
* Atividade: Construir um luximetro, para aferir ambiente de trabalho conforme NBR ISO/CIE 8995-1
* Descrição: O Luximetro deverá informar apenas se a luminosidade está acima do ajuste piscando o LED vermelho, abaixo fica aceso.
* Hardware: Ligar um led em um pino digital configurado como SAÍDA, usar o LDR e TRIMPOT em entradas analógicas
* Comandos: pinMode, digitalWrite, while(), analogRead(),
* DICA1: A função while() será usada para fazer o pisca rodar enquanto a luminosidade for maior que o definido pelo TRIMPOT
* DICA2: Usar duas variáveis de controle para LDR e TRIMPOT
* DICA3: Usar um pisca-pisca de um led dentro do while()
* DICA4: Fazer a leitura do LDR e TRIMPOT e comparar para acionar o pisca
* DICA5: As escalas do LDR e TRIMPOT são diferentes, usar map() para ajustar as escalas
*/

//DEFINICOES INICIAIS
#define led 3 //pino 3 será chamado de led
#define ldr A0 //pino A0 será chamado de ldr
#define trimpot A1 //pino A1 será chamado de trimpot

//DECLARAcAO DE VARIAVEIS
int luminosidade = 0; //variavel luminosidade começará como 0
int ajuste = 0; //variavel ajuste começara como 0

//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("TRIMPOT="); //Serial print configurado com o trimpot
Serial.print(analogRead(trimpot)); //Serial print vai ler o trimpot
Serial.print(" LDR= "); //Serial print configurado com o ldr
Serial.println(luminosidade); //Serial println com a variavel
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //porta serial que abriu
pinMode(led, OUTPUT); //led configurado como saida
}

//PROGRAMA PRINCIPAL
void loop() {
debug(); //debug ativo
//min LDR=11 trimpot=0 //minimo do ldr e do trimpot
//max LDR=834 trimpot=1022 //maximo do ldr e do trimpot
luminosidade = analogRead(ldr); //variavel vai ler o ldr para acender o led
ajuste= map(analogRead(trimpot),0,1022,11,834); //função map com o minimo e o maximo
while(luminosidade > ajuste){ //função while usada para arrumar a luminosidade do led
luminosidade = analogRead(ldr); //luminosidade vai ler o estado do ldr
ajuste= map(analogRead(trimpot),0,1022,11,834); //ajuste com o minimo e o maximo
debug(); //debug ativo
digitalWrite(led, HIGH); //led vai acender
delay(300); //tempo de espera
digitalWrite(led, LOW); //led vai apagar
delay(300); //tempo de espera
}
digitalWrite(led, HIGH); //led vai acender
}
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 Número 2.23 Empty Re: Exercício Número 2.23

Sáb Nov 21, 2020 2:33 pm
Fala Daniel, O programa funcionou, mas os comentários que colocou não vai dar pra deixar passar. Segue umas questões para ganhar a nota.

while(luminosidade > ajuste){
( ) //função while usada para arrumar a luminosidade do led
( ) //função while repete o programa do bloco enquanto a condição for falsa, ou seja, enquanto a luminosidade for maior que o ajuste
( ) //função while testa a condição e repete o bloco de instruções enquanto a condição for verdadeira
( ) //função while repete o programa do pisca-pisca enquanto a luminosidade for maior que o ajuste, se a condição for falsa pula o pisca-pisca
( ) //função while é usada para acender o led se a luminosidade ficar abaixo do ajuste
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos