Taula de continguts:
- Pas 1:
- Pas 2: diagrama del circuit
- Pas 3: programa
- Pas 4: expliqueu el codi
- Pas 5: podeu descarregar el projecte complet
- Pas 6: vídeo
Vídeo: Interfície del sensor de temperatura (LM35) amb ATmega32 i pantalla LCD - Control automàtic de ventiladors: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Interfície del sensor de temperatura (LM35) amb ATmega32 i pantalla LCD
Pas 1:
En aquest projecte, aprendràs a connectar un sensor de temperatura (LM35) amb el microcontrolador AVR ATmega32 i la pantalla LCD.
Abans d'aquest projecte, heu de conèixer més sobre els articles següents
com afegir una biblioteca lcd a avr studio | tutorial de microcontrolador avr
introducció a ADC al microcontrolador AVR | per a principiants
El sensor de temperatura (LM35) és un sensor de temperatura popular i de baix cost. El Vcc pot ser de 4V a 20V, tal com s’especifica al full de dades. Per utilitzar el sensor, simplement connecteu el Vcc a 5V, el GND a terra i el Out a un dels ADC (canal convertidor analògic a digital).
La sortida és de 10MilliVolts per grau centígrad. Per tant, si la sortida és de 310 mV, la temperatura és de 31 graus C. Per fer aquest projecte, heu de familiaritzar-vos amb l'ADC dels AVR i també amb LCD. en termes de tensió és
5/1024 = 5,1 mV aproximadament
Per tant, si el resultat de l’ADC correspon a 5,1 mV, és a dir, si la lectura de l’ADC és
10 x 5,1 mV = 51 mV
Podeu llegir el valor de qualsevol canal ADC mitjançant la funció adc_result (ch);
On ch és el número de canal (0-5) en cas d'ATmega8. Si heu connectat la sortida LM35 al canal ADC 0, truqueu
adc_result0 = adc_read (0);
això emmagatzemarà la lectura ADC actual a la variable adc_value. El tipus de dades de adc_value ha de ser int, ja que el valor ADC pot oscil·lar entre 0-1023.
Com hem vist, els resultats de l'ADC tenen un factor de 5,1 mV i durant 1 grau C la sortida de LM35 és de 10 mV, de manera que 2 unitats d'ADC = 1 grau.
Per obtenir la temperatura, dividim el valor adc_value per dos
temperatura = adc_result0 / 2;
Finalment, el microcontrolador mostrarà la temperatura en graus centígrads a la pantalla alfanumèrica 16X2.
Pas 2: diagrama del circuit
Pas 3: programa
#ifndef F_CPU
#define F_CPU 1600000UL
#endif
#incloure
#incloure
#include "LCD / lcd.h"
buit adc_init ()
{
// AREF = AVcc
ADMUX = (1 <
// Activació ADC i prescaler de 128
ADCSRA = (1 <
}
// llegeix el valor adc
uint16_t adc_read (uint8_t ch)
{
// seleccioneu el canal corresponent 0 ~ 7
ch & = 0b00000111; // I operació amb 7
ADMUX = (ADMUX & 0xF8) | ch;
// iniciar una conversió única
// escriviu '1' a ADSC
ADCSRA | = (1 <
// esperar que finalitzi la conversió
// ADSC torna a ser '0'
mentre que (ADCSRA & (1 <
retorn (ADC);
}
int main ()
{
DDRB = 0xff;
uint16_t adc_result0;
int temp;
int far;
buff buffer [10];
// inicialitzar adc i lcd
adc_init ();
lcd_init (LCD_DISP_ON_CURSOR); // CURSOR
lcd_clrscr ();
lcd_gotoxy (0, 0);
_delay_ms (50);
mentre que (1)
{
adc_result0 = adc_read (0); // llegeix el valor adc a PA0
temp = adc_result0 / 2.01; // trobar la temperatura
// lcd_gotoxy (0, 0);
// lcd_puts ("Adc =");
// itoa (adc_result0, buffer, 10); // mostra el valor ADC
// lcd_puts (memòria intermèdia);
lcd_gotoxy (0, 0);
itoa (temp, buffer, 10);
lcd_puts ("Temp ="); // mostra la temperatura
lcd_puts (memòria intermèdia);
lcd_gotoxy (7, 0);
lcd_puts ("C");
far = (1,8 * temp) +32;
lcd_gotoxy (9, 0);
itoa (far, buffer, 10);
lcd_puts (memòria intermèdia);
lcd_gotoxy (12, 0);
lcd_puts ("F");
_delay_ms (1000);
si (temp> = 30)
{lcd_clrscr ();
lcd_home ();
lcd_gotoxy (0, 1);
lcd_puts ("FAN ON");
PORTB = (1 <
}
si (temp <= 30)
{
lcd_clrscr ();
lcd_home ();
lcd_gotoxy (7, 1);
lcd_puts ("FAN OFF");
PORTB = (0 <
}
}
}
Pas 4: expliqueu el codi
Espero que sàpiga que sabreu Com habilitar l'ADC i la interfície de la pantalla LCD amb el microcontrolador Avr en aquest codi quan la temperatura és superior a 30 graus i el ventilador està encès i podeu veure la pantalla LED FAN ON i quan la temperatura és inferior a 30 i el ventilador està desactivat i podeu veure FAN OFF
Pas 5: podeu descarregar el projecte complet
Clica aquí
Recomanat:
Interfície del sensor de temperatura LM35 amb Arduino: 4 passos
Interfície del sensor de temperatura LM35 amb Arduino: els termòmetres són aparells útils que s’utilitzen durant molt de temps per mesurar la temperatura. En aquest projecte, hem creat un termòmetre digital basat en Arduino per mostrar la temperatura ambiental actual i els canvis de temperatura en una pantalla LCD. Es pot esgotar
Interfície del sensor de temperatura DS18B20 amb Arduino i ESP8266: 8 passos
Interfície del sensor de temperatura DS18B20 amb Arduino i ESP8266: Ei, què passa, nois! Akarsh aquí des de CETech. Avui afegirem un nou sensor al nostre arsenal conegut com a sensor de temperatura DS18B20. És un sensor de temperatura similar al DHT11 però té un conjunt d’aplicacions diferent. Ho compararem w
Introducció a la interfície del sensor I2C ?? - Interfície del MMA8451 mitjançant ESP32: 8 passos
Introducció a la interfície del sensor I2C ?? - Interfície del MMA8451 mitjançant ESP32s: en aquest tutorial, aprendreu tot sobre com iniciar, connectar-se i aconseguir que el dispositiu I2C (acceleròmetre) funcioni amb el controlador (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Interfície del sensor de temperatura i humitat (dht11) amb Arduino: 4 passos
Interfície del sensor de temperatura i humitat (dht11) amb Arduino: el sensor de temperatura té una àmplia gamma d’aplicacions, s’utilitza en molts llocs i en qualsevol lloc, funciona com a sistema de retroalimentació. Hi ha diversos tipus de sensors de temperatura disponibles al mercat amb diferents especificacions. Alguns sensors de temperatura s’utilitzen l
Tutorial Arduino LCD 16x2 - Interfície de pantalla LCD 1602 amb Arduino Uno: 5 passos
Tutorial Arduino LCD 16x2 | Interfície de pantalla LCD 1602 amb Arduino Uno: Hola nois, ja que molts projectes necessiten una pantalla per mostrar les dades tant si es tracta d’un comptador de bricolatge com de pantalla de comptadors de subscripcions a YouTube o una calculadora o un pany de teclat amb pantalla i si tot aquest tipus de projectes es fan amb arduino definitivament