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
LucyAnna800
Mensagens : 98
Data de inscrição : 11/06/2022
Idade : 12
Escola : Colegio Lindaura Ribeiro Lucas

Exercício 1.13 Empty Exercício 1.13

Qui Set 22, 2022 10:54 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 1.13
* Tema: Pinos Analógicos
* Atividade: Fazer o led alternar o brilho conforme variações de temperatura.
* Descrição: Usar um pino analógico para controlar o brilho do led e uma entrada analógica para captar a temperatura pelo NTC
* Hardware: Ligar um led em um pino digital configurado como SAÍDA ANALÓGICA e o NTC em uma entrada analógica
* Comandos: pinMode(), analogRead(), analogWrite(),map()
* 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:O LDR não gera valores proximos a zero nem a próximos de 1023 então usar a função map() para ajustar a escala
* Dica3:Escrever o valor lido do NTC no led, tente também fazer o brilho inversamente proporcional a temperatura
*/

//DEFINICOES INICIAIS
#define ntc A0 //batizado o A0 de ntc
#define led 3 //batizado o pino 3 de led

//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura; //variavel para guardar a temperatura

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //começandoa imprimir a porta serial
pinMode(led, OUTPUT); //led configurado como saída
}

//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("temperatura = "); //imprimindo a porta serial no texto "temperatura = ..."
Serial.println(temperatura); //imprimindo a porta serial na variavel temperatura e pula na linha seguinte
}

//PROGRAMA PRINCIPAL
void loop() {
temperatura = map(analogRead(ntc), 279, 930, 255, 0); //temperatura é ígual a função map e o ntc é configurado como pino analogico
debug(); //tudo o que esta dentro da função debug esta escrito aqui
analogWrite(led, temperatura); //led configurado como pino analogico
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5039
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.13 Empty Re: Exercício 1.13

Qui Set 22, 2022 10:13 pm
Oi Lucy, o programa está correto, mas tem duas coisas que preciso orientar voce, uma sobre a calibração dos sensores e outra sonre os comentários.
- Sobre a calibração do sensor, é necessário para ajustar a escala conforme os valores de netrada, o procedimento é:
a) coloca o sensor de temperatura (ntc) na temperatura mais baixa e anota o valor que apareceu no debug
b) coloca o ntc na temperatura mais alta, normalmente usamos o calor do proprio corpo, segurando o sensor, e dai anota o valor que deu na serial
c) sabendo do valor que dá quando frio e quando aquecido, usa esses valores na função map() na entrada min, e ntrada max, dai os demais parametros estão corretos.
Após esse procedimento vai perceber bem a variação da luminosidade quando aquece o ntc com a mão.

- Sobre os comentários, veja esses abaixo
temperatura = map(analogRead(ntc), 279, 930, 255, 0); //temperatura é ígual a função map e o ntc é configurado como pino analogico
a) Aqui não se configura o pino analógico, na verdade ele nem é configurado. Aqui é feita a leitura do pino analógico, e o valor lido que estiver na entrada é convertido por regra de 3 conforme a escala da saída da função

analogWrite(led, temperatura); //led configurado como pino analogico
a) Aqui também não está configurando pino nenhum, está fazendo uma escrita PWM do valor da temperatura no pino led

Como passei as orientações o programa está correto vou dar nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos