Índice:
- Passo 1:
- Etapa 2: Diagrama de Circuito
- Etapa 3: Programa
- Etapa 4: Explique o código
- Etapa 5: Você pode baixar o projeto completo
- Etapa 6: Vídeo
Vídeo: Sensor de temperatura (LM35) Fazendo interface com ATmega32 e display LCD - Controle de Ventilador Automático: 6 Passos
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Sensor de temperatura (LM35) Fazendo interface com ATmega32 e display LCD
Passo 1:
Neste projeto, você aprenderá a fazer a interface de um sensor de temperatura (LM35) com o microcontrolador AVR ATmega32 e display LCD.
Antes deste projeto, você deve aprender sobre os seguintes artigos
como adicionar biblioteca lcd no avr studio | tutorial do microcontrolador avr
introdução ao ADC no microcontrolador AVR | para iniciantes
Sensor de temperatura (LM35) é um sensor de temperatura popular e de baixo custo. O Vcc pode ser de 4 V a 20 V conforme especificado na folha de dados. Para usar o sensor basta conectar o Vcc a 5V, o GND ao Terra e a Saída a um dos ADC (canal conversor analógico para digital).
A saída é de 10MilliVolts por grau centígrado. Portanto, se a saída for 310 mV, a temperatura é 31 graus C. Para fazer este projeto você deve estar familiarizado com o ADC dos AVRs e também usando LCD. Portanto, a resolução do ADC dos AVRs é de 10 bits e para a tensão de referência você está usando 5V, então a resolução em termos de voltagem é
5/1024 = 5,1 mV aproximadamente
Portanto, se o resultado do ADC corresponder a 5,1 mV, ou seja, se a leitura do ADC for
10 x 5,1 mV = 51 mV
Você pode ler o valor de qualquer canal ADC usando a função adc_result (ch);
Onde ch é o número do canal (0-5) no caso de ATmega8. Se você conectou a saída do LM35 ao canal 0 ADC, ligue
adc_result0 = adc_read (0);
isso armazenará a leitura ADC atual na variável adc_value. O tipo de dados de adc_value deve ser int, pois o valor ADC pode variar de 0 a 1023.
Como vimos, os resultados do ADC estão em um fator de 5,1 mV e para 1 grau C a saída do LM35 é de 10 mV, então 2 unidades de ADC = 1 grau.
Então, para obter a temperatura, dividimos o adc_value por dois
temperatura = adc_result0 / 2;
Finalmente, o microcontrolador exibirá a temperatura em graus centígrados no LCD alfanumérico 16X2.
Etapa 2: Diagrama de Circuito
Etapa 3: Programa
#ifndef F_CPU
#define F_CPU 1600000UL
#fim se
#incluir
#incluir
#include "LCD / lcd.h"
void adc_init ()
{
// AREF = AVcc
ADMUX = (1 <
// ADC Enable e prescaler de 128
ADCSRA = (1 <
}
// leia o valor adc
uint16_t adc_read (uint8_t ch)
{
// selecione o canal correspondente 0 ~ 7
ch & = 0b00000111; // Operação AND com 7
ADMUX = (ADMUX & 0xF8) | ch;
// inicia uma conversão única
// escreve '1' para ADSC
ADCSRA | = (1 <
// aguarde a conclusão da conversão
// ADSC torna-se '0' novamente
enquanto (ADCSRA & (1 <
retorno (ADC);
}
int main ()
{
DDRB = 0xff;
uint16_t adc_result0;
int temp;
int far;
buffer char [10];
// inicializa adc e lcd
adc_init ();
lcd_init (LCD_DISP_ON_CURSOR); //CURSOR
lcd_clrscr ();
lcd_gotoxi (0, 0);
_delay_ms (50);
enquanto (1)
{
adc_result0 = adc_read (0); // leia o valor adc em PA0
temp = adc_result0 / 2.01; // encontrando a temperatura
// lcd_gotoxy (0, 0);
// lcd_puts ("Adc =");
// itoa (adc_result0, buffer, 10); // exibe o valor ADC
// lcd_puts (buffer);
lcd_gotoxi (0, 0);
itoa (temp, buffer, 10);
lcd_puts ("Temp ="); // exibir a temperatura
lcd_puts (buffer);
lcd_gotoxi (7, 0);
lcd_puts ("C");
longe = (1,8 * temp) +32;
lcd_gotoxi (9, 0);
itoa (longe, buffer, 10);
lcd_puts (buffer);
lcd_gotoxi (12, 0);
lcd_puts ("F");
_delay_ms (1000);
if (temp> = 30)
{lcd_clrscr ();
lcd_home ();
lcd_gotoxi (0, 1);
lcd_puts ("FAN ON");
PORTB = (1 <
}
if (temp <= 30)
{
lcd_clrscr ();
lcd_home ();
lcd_gotoxi (7, 1);
lcd_puts ("FAN OFF");
PORTB = (0 <
}
}
}
Etapa 4: Explique o código
Eu espero que você saiba que você saberá como habilitar ADC e como fazer a interface do LCD com o microcontrolador Avr neste código quando a temperatura está acima de 30 graus, a ventoinha está ligada e você pode ver no display LED FAN ON e quando a temperatura é menor que 30, então a ventoinha está desligado e você pode ver FAN OFF
Etapa 5: Você pode baixar o projeto completo
Clique aqui
Recomendado:
Interface do sensor de temperatura LM35 com o Arduino: 4 etapas
Interface do sensor de temperatura LM35 com o Arduino: Termômetros são aparelhos úteis sendo usados por um longo tempo para medição de temperatura. Neste projeto, criamos um termômetro digital baseado em Arduino para exibir a temperatura ambiente atual e as mudanças de temperatura em um LCD. Pode estar esgotando
Ventilador de resfriamento automático usando servo e sensor de temperatura e umidade DHT11 com Arduino: 8 etapas
Ventilador de resfriamento automático usando o sensor de temperatura e umidade Servo e DHT11 com Arduino: Neste tutorial, aprenderemos como iniciar o & gire um ventilador quando a temperatura subir acima de um certo nível
Leitura de temperatura usando o sensor de temperatura LM35 com Arduino Uno: 4 etapas
Lendo a temperatura usando o sensor de temperatura LM35 com o Arduino Uno: Olá, pessoal, neste instructables aprenderemos como usar o LM35 com o Arduino. Lm35 é um sensor de temperatura que pode ler valores de temperatura de -55 ° C a 150 ° C. É um dispositivo de 3 terminais que fornece tensão analógica proporcional à temperatura. Hig
Fazendo um adaptador Bluetooth Pt.2 (Fazendo um alto-falante compatível): 16 etapas
Fazendo um adaptador Bluetooth Pt.2 (Como fazer um alto-falante compatível): Neste instrutível, mostrarei como utilizar meu adaptador Bluetooth para tornar um alto-falante antigo compatível com Bluetooth. * Se você não leu meu primeiro instrutivo sobre " Fazer um adaptador Bluetooth " Eu sugiro que você faça isso antes de continuar
SENSOR SUHU DENGAN LCD DAN LED (Fazendo sensor de temperatura com LCD e LED): 6 etapas (com imagens)
SENSOR SUHU DENGAN LCD DAN LED (Fazendo sensor de temperatura com LCD e LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA da Indonésia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD e LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini anda