Exercício 1.13
2 participantes
- Gigio
- Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 16
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas
Exercício 1.13
Seg maio 02, 2022 2:21 pm
/*
* 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 led1 3 //Define o LED 1 como pino 3,
#define led2 5 //Define o LED 2 como pino 5
#define NTC A1 //Define o sensor de temperatura como A1.
//DECLARAcAO DE VARIAVEIS GLOBAIS
int Luzes; //Variável INT que controla a luz,
int Sezul; //Variável INT que controla a luz inversamente.
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicia o monitor serial,
pinMode(led1,OUTPUT); //Define o LED 1 como OUTPUT,
pinMode(led2,OUTPUT); //Define o LED 2 como OUTPUT.
}
//FUNÇÕES COMPLEMENTARES
void debugar(){ //Função para ler os valores das variáveis.
Serial.println(Luzes); //Manda a variável Luzes para o monitor serial,
Serial.print("Temperatura: "); //Descreve a variável luzes antes de mandar,
Serial.println(Sezul); //Manda a variável Sezul/Luzes invertidas para o monitor serial,
Serial.print("Arutarepmet: "); //Descreve a variável Sezul antes de mandar.
}
//PROGRAMA PRINCIPAL
void loop() {
Luzes = map(analogRead(NTC),0,1023,0,255); //Luzes é equivalente a leitura do sensor de temperatura, sendo proporcionalmente calculado,
Sezul = Luzes/-1; //Sezul é equivalente a Luzes dividido por -1, para inverter a função da variável,
analogWrite(led1,Luzes); //Liga o LED 1 analógicamente com a variável Luzes,
analogWrite(led2,Sezul); //Liga o LED 2 analólicamente com a variável Sezul, invertendo a função da variável Luzes.
debugar(); //Invoca a função para debug.
}
* 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 led1 3 //Define o LED 1 como pino 3,
#define led2 5 //Define o LED 2 como pino 5
#define NTC A1 //Define o sensor de temperatura como A1.
//DECLARAcAO DE VARIAVEIS GLOBAIS
int Luzes; //Variável INT que controla a luz,
int Sezul; //Variável INT que controla a luz inversamente.
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicia o monitor serial,
pinMode(led1,OUTPUT); //Define o LED 1 como OUTPUT,
pinMode(led2,OUTPUT); //Define o LED 2 como OUTPUT.
}
//FUNÇÕES COMPLEMENTARES
void debugar(){ //Função para ler os valores das variáveis.
Serial.println(Luzes); //Manda a variável Luzes para o monitor serial,
Serial.print("Temperatura: "); //Descreve a variável luzes antes de mandar,
Serial.println(Sezul); //Manda a variável Sezul/Luzes invertidas para o monitor serial,
Serial.print("Arutarepmet: "); //Descreve a variável Sezul antes de mandar.
}
//PROGRAMA PRINCIPAL
void loop() {
Luzes = map(analogRead(NTC),0,1023,0,255); //Luzes é equivalente a leitura do sensor de temperatura, sendo proporcionalmente calculado,
Sezul = Luzes/-1; //Sezul é equivalente a Luzes dividido por -1, para inverter a função da variável,
analogWrite(led1,Luzes); //Liga o LED 1 analógicamente com a variável Luzes,
analogWrite(led2,Sezul); //Liga o LED 2 analólicamente com a variável Sezul, invertendo a função da variável Luzes.
debugar(); //Invoca a função para debug.
}
Re: Exercício 1.13
Sex maio 06, 2022 11:42 pm
Oi Giovani, O programa está correto pelo ponto de vista da logica. Mas tem um detalhe que impede o funcionamento, a calibração do sensor.
Quando temos componentes resistivos como LDR e NTC as variações funcionam como um divisor de tensão e a variação nunca é de 0 a 1023.
Então é necessario calibrar, para isso coloca o NTC em 0 graus e verifica o valor que aparece na leitura do conversor. Depois coloca em 200 graus e verifica o valor que deu.
Dai na função map() aplica esses valores nas variações de minimo e maximo.
Se fizer vai ver que não dá 0 e 1023.
E deixando assim a escala fica distorcida.
Portanto como não funcionou corretamente a nota será 8.0
Quando temos componentes resistivos como LDR e NTC as variações funcionam como um divisor de tensão e a variação nunca é de 0 a 1023.
Então é necessario calibrar, para isso coloca o NTC em 0 graus e verifica o valor que aparece na leitura do conversor. Depois coloca em 200 graus e verifica o valor que deu.
Dai na função map() aplica esses valores nas variações de minimo e maximo.
Se fizer vai ver que não dá 0 e 1023.
E deixando assim a escala fica distorcida.
Portanto como não funcionou corretamente a nota será 8.0
- Gigio
- Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 16
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas
Correção Exercício 1.13
Sáb maio 07, 2022 11:33 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 led1 3 //Define o LED 1 como pino 3,
#define led2 5 //Define o LED 2 como pino 5
#define NTC A1 //Define o sensor de temperatura como A1.
//DECLARAcAO DE VARIAVEIS GLOBAIS
int Luzes; //Variável INT que controla a luz,
int Sezul; //Variável INT que controla a luz inversamente.
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicia o monitor serial,
pinMode(led1,OUTPUT); //Define o LED 1 como OUTPUT,
pinMode(led2,OUTPUT); //Define o LED 2 como OUTPUT.
}
//FUNÇÕES COMPLEMENTARES
void debugar(){ //Função para ler os valores das variáveis.
Serial.println(Luzes); //Manda a variável Luzes para o monitor serial,
Serial.print("Arutarepmet: "); //Descreve a variável Sezul antes de mandar,
Serial.println(Sezul); //Manda a variável Sezul/Luzes invertidas para o monitor serial,
Serial.print("NTC: "); //Descreve o NTC antes de mandar.
Serial.println(analogRead(NTC)); //Manda o valor do NTC ao monitor serial,
Serial.print("Temperatura: "); //Descreve a varivel Luzes antes de mandar,
}
//PROGRAMA PRINCIPAL
void loop() {
Luzes = map(analogRead(NTC),140,480,0,255); //Calibra o NTC, 140 sendo equivalente a 0 e 480 sendo equivalente a 255,
Sezul = Luzes/-1; //Sezul é equivalente a Luzes dividido por -1, para inverter a função da variável,
analogWrite(led1,Luzes); //Liga o LED 1 analógicamente com a variável Luzes,
analogWrite(led2,Sezul); //Liga o LED 2 analólicamente com a variável Sezul, invertendo a função da variável Luzes.
debugar(); //Invoca a função para debug.
}
* 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 led1 3 //Define o LED 1 como pino 3,
#define led2 5 //Define o LED 2 como pino 5
#define NTC A1 //Define o sensor de temperatura como A1.
//DECLARAcAO DE VARIAVEIS GLOBAIS
int Luzes; //Variável INT que controla a luz,
int Sezul; //Variável INT que controla a luz inversamente.
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicia o monitor serial,
pinMode(led1,OUTPUT); //Define o LED 1 como OUTPUT,
pinMode(led2,OUTPUT); //Define o LED 2 como OUTPUT.
}
//FUNÇÕES COMPLEMENTARES
void debugar(){ //Função para ler os valores das variáveis.
Serial.println(Luzes); //Manda a variável Luzes para o monitor serial,
Serial.print("Arutarepmet: "); //Descreve a variável Sezul antes de mandar,
Serial.println(Sezul); //Manda a variável Sezul/Luzes invertidas para o monitor serial,
Serial.print("NTC: "); //Descreve o NTC antes de mandar.
Serial.println(analogRead(NTC)); //Manda o valor do NTC ao monitor serial,
Serial.print("Temperatura: "); //Descreve a varivel Luzes antes de mandar,
}
//PROGRAMA PRINCIPAL
void loop() {
Luzes = map(analogRead(NTC),140,480,0,255); //Calibra o NTC, 140 sendo equivalente a 0 e 480 sendo equivalente a 255,
Sezul = Luzes/-1; //Sezul é equivalente a Luzes dividido por -1, para inverter a função da variável,
analogWrite(led1,Luzes); //Liga o LED 1 analógicamente com a variável Luzes,
analogWrite(led2,Sezul); //Liga o LED 2 analólicamente com a variável Sezul, invertendo a função da variável Luzes.
debugar(); //Invoca a função para debug.
}
Re: Exercício 1.13
Ter Jul 26, 2022 12:43 am
Muito bom nota 10.0. Esse parece ter sido calibrado corretamente.
NA verdade fizemos na sala esse né. Parabéns.
NA verdade fizemos na sala esse né. Parabéns.
Permissões neste sub-fórum
Não podes responder a tópicos
|
|