Exercício Número 2.24
Ter Out 13, 2020 1:18 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.24
* 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
do { //função do while ativa
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
} while(luminosidade < ajuste);
digitalWrite(led, HIGH); //led vai acender
delay(300); //tempo de espera
digitalWrite(led, LOW); //led vai apagar
delay(300); //tempo de espera
}
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.24
* 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
do { //função do while ativa
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
} while(luminosidade < ajuste);
digitalWrite(led, HIGH); //led vai acender
delay(300); //tempo de espera
digitalWrite(led, LOW); //led vai apagar
delay(300); //tempo de espera
}
Re: Exercício Número 2.24
Sáb Nov 21, 2020 3:38 pm
Oi Daniel, como todos os demais seus programas estão corretos e os comentários, que seriam para descrever sobre o entendimentos, são incompletos.
Como ja fiz várias correçoes nos anteriores acredito que vai facilitar sobre o entendimento do while()
Então vou dar nota 6.0 e aguardar que melhore os comentários.
Como ja fiz várias correçoes nos anteriores acredito que vai facilitar sobre o entendimento do while()
Então vou dar nota 6.0 e aguardar que melhore os comentários.
Permissões neste sub-fórum
Não podes responder a tópicos
|
|