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

Ir para baixo
Monica Moreno
Monica Moreno
Mensagens : 744
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Resolvido 2.4 Empty Resolvido 2.4

Sáb Ago 28, 2021 11:44 am
/*
* 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 led1 3 // Definido que pino 3 vai se chamar "led1"
#define ldr A0 //Definido que pino Ao vai se chamar "ldr"
#define trimpot A1 // Definido que A1 vai se chamar "trimpot"

//DECLARAcAO DE VARIAVEIS GLOBAIS
int luminosidade; // Variavel Int chamada 'Luminosidade"
int ajuste; // Variavel Int chamada "Ajuste"

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicializa a Porta Serial
pinMode(led1, OUTPUT); // Programado "led1'como Saída
}

//FUNÇÕES COMPLEMENTARES
void debug () {
Serial.print("Luminosidade = "); // Vai monitorar o texto luminosidade na porta Serial
Serial.println(luminosidade); //Vai monitorar a varialvel luminosidade da Porta Serial
Serial.print("Trimpot = "); //Vai monitorar o texto Trimpot na porta Serial
Serial.println(ajuste); // Vai monitorar a variavel ajuste na porta Serial

}

//PROGRAMA PRINCIPAL
void loop() {
luminosidade = map(analogRead(ldr),17,863,0,1022); //Ajusta os valores das estradas
ajuste = analogRead(trimpot); // Ajuste vai ser igual a leitura analógica do TRIMPOT
luminosidade = analogRead(ldr); // a Luminosidade vai ser igual a leitura do LDR
debug(); // Liga afuncao da variavel luminosidade
if(luminosidade > ajuste){ ; // Se a luminosidade for maior que ajuste no cado o valor do TRIMPOT vai ser executado o else o led acende
digitalWrite(led1, HIGH); // Acende o Led1
}else{ ; //Se a luminosidade não for maior que ajuste o led apaga
digitalWrite(led1,LOW); //Apaga o Led1
}
delay(1000); // Tempo
}

Refeito 2.4


Última edição por Monica Moreno em Sáb Out 23, 2021 9:13 am, editado 1 vez(es)
BielRibas
BielRibas
Mensagens : 266
Data de inscrição : 27/02/2019
Idade : 18
Escola : Col. Lindaura

Resolvido 2.4 Empty Re: Resolvido 2.4

Seg Ago 30, 2021 2:40 pm
Corrija os seguintes comentários para receber a nota:
1)A luminosidade esta como variável não como função
2)O debug esta mostrando os valores e não "ligando" a luminosidade
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Resolvido 2.4 Empty Re: Resolvido 2.4

Ter Set 07, 2021 9:12 pm
Monica, vou te ajudar na correção. O Gabriel está se referindo a essa linha abaixo:

debug(); // Liga a função luminosidade

Lembro que a função debug() é um trecho de programa que pode ser invocado em qualquer parte do programa principal, e no caso dessa função, ela envia para a porta serial os valores das variáveis.
Usamos essa função normalmente para calibrar os sensores ou ajustar parametros do programa.

Lembro que para corrigir basta responder esse tópico mesmo.

Espero ter ajudado.
Monica Moreno
Monica Moreno
Mensagens : 744
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Resolvido 2.4 Empty Re: Resolvido 2.4

Qui Out 28, 2021 8:20 am
/*
* 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 led1 3 // Definido que pino 3 vai se chamar "led1"
#define ldr A0 //Definido que pino Ao vai se chamar "ldr"
#define trimpot A1 // Definido que A1 vai se chamar "trimpot"

//DECLARAcAO DE VARIAVEIS GLOBAIS
int luminosidade; // Variavel Int chamada 'Luminosidade"
int ajuste; // Variavel Int chamada "Ajuste"

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicializa a Porta Serial
pinMode(led1, OUTPUT); // Programado "led1'como Saída
}

//FUNÇÕES COMPLEMENTARES
void debug () {
Serial.print("Luminosidade = "); // Vai monitorar o texto luminosidade na porta Serial
Serial.println(luminosidade); //Vai monitorar a varialvel luminosidade da Porta Serial
Serial.print("Trimpot = "); //Vai monitorar o texto Trimpot na porta Serial
Serial.println(ajuste); // Vai monitorar a variavel ajuste na porta Serial

}

//PROGRAMA PRINCIPAL
void loop() {
luminosidade = map(analogRead(ldr),17,863,0,1022); //Ajusta os valores das estradas
ajuste = analogRead(trimpot); // Ajuste vai ser igual a leitura analógica do TRIMPOT
luminosidade = analogRead(ldr); // a Luminosidade vai ser igual a leitura do LDR
debug(); // A função complementar vai ser ligada
if(luminosidade > ajuste){ ; // Se a luminosidade for maior que ajuste no cado o valor do TRIMPOT vai ser executado o else o led acende
digitalWrite(led1, HIGH); // Acende o Led1
}else{ ; //Se a luminosidade não for maior que ajuste o led apaga
digitalWrite(led1,LOW); //Apaga o Led1
}
delay(1000); // Tempo
}


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

Resolvido 2.4 Empty Re: Resolvido 2.4

Seg Nov 22, 2021 11:01 pm
Muito bom Monica, o programa funcionou. Mas novamente fiquei confuso com a interpretação que está dando para os comandos, veja abaixo.

if(luminosidade > ajuste){ ; // Se a luminosidade for maior que ajuste no cado o valor do TRIMPOT vai ser executado o else o led acende

Essa interpretação me leva a achar que não endeu como funciona essa função. Então vou dar nota 9.0 e lançar uma pergunta.

Pergunta: Qual funcão usamos para executar um bloco de instruções se a condição for verdadeira e outro bloco se a condição for falsa?
Monica Moreno
Monica Moreno
Mensagens : 744
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Resolvido 2.4 Empty Re: Resolvido 2.4

Qua Nov 24, 2021 9:35 am
Pergunta: Qual função usamos para executar um bloco de instruções se a condição for verdadeira e outro bloco se a condição for falsa?

Resposta: If - else

Se for verdadeira vai ser if, se for falsa e else Cool Cool Wink study
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Resolvido 2.4 Empty Re: Resolvido 2.4

Qui Mar 10, 2022 12:13 am
Correto, nota 10.0
Conteúdo patrocinado

Resolvido 2.4 Empty Re: Resolvido 2.4

Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos