Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46
Interfaçage du capteur de température (LM35) avec ATmega32 et écran LCD
Étape 1:
Dans ce projet, vous apprendrez comment interfacer un capteur de température (LM35) avec un microcontrôleur AVR ATmega32 et un écran LCD.
Avant ce projet, vous devez avoir besoin En savoir plus sur les articles suivants
comment ajouter une bibliothèque lcd dans avr studio | tutoriel microcontrôleur avr
introduction à l'ADC dans le microcontrôleur AVR | pour les débutants
Le capteur de température (LM35) est un capteur de température populaire et peu coûteux. Le Vcc peut être de 4V à 20V comme spécifié par la fiche technique. Pour utiliser le capteur, connectez simplement le Vcc à 5V, GND à la masse et la sortie à l'un des ADC (canal de conversion analogique-numérique).
La sortie est de 10MilliVolts par degré centigrade. Donc, si la sortie est de 310 mV, la température est de 31 degrés C. Pour réaliser ce projet, vous devez vous familiariser avec l'ADC des AVR et utiliser également l'écran LCD. en termes de tension est
5/1024 = 5.1mV environ
Donc, si le résultat de l'ADC correspond à 5,1 mV, c'est-à-dire si la lecture de l'ADC est
10 x 5,1 mV = 51 mV
Vous pouvez lire la valeur de n'importe quel canal ADC en utilisant la fonction adc_result(ch);
Où ch est le numéro de canal (0-5) dans le cas d'ATmega8. Si vous avez connecté la sortie du LM35 au canal ADC 0, appelez
adc_result0 = adc_read(0);
cela stockera la lecture ADC actuelle dans la variable adc_value. Le type de données de adc_value doit être un entier car la valeur ADC peut aller de 0 à 1023.
Comme nous l'avons vu, les résultats de l'ADC sont en facteur de 5,1 mV et pour 1 degré C, la sortie du LM35 est de 10 mV, donc 2 unités d'ADC = 1 degré.
Donc, pour obtenir la température, nous divisons l'adc_value par deux
température = adc_result0 /2;
Enfin, le microcontrôleur affichera la température en degrés centigrades sur l'écran LCD alphanumérique 16X2.
Étape 2: schéma de circuit
Étape 3: Programmer
#ifndef F_CPU
#define F_CPU 1600000UL
#fin si
#comprendre
#comprendre
#include "LCD/lcd.h"
void adc_init()
{
// AREF = AVcc
ADMUX = (1<
// ADC Enable et prescaler de 128
ADCSRA = (1<
}
// lecture de la valeur adc
uint16_t adc_read(uint8_t ch)
{
// sélectionne le canal correspondant 0~7
ch &= 0b00000111; // opération ET avec 7
ADMUX = (ADMUX & 0xF8)|ch;
// démarrer une conversion unique
// écrit '1' dans ADSC
ADCSRA |= (1<
// attend la fin de la conversion
// ADSC redevient '0'
tandis que(ADCSRA & (1<
retour (ADC);
}
int main()
{
DDRB=0xff;
uint16_t adc_result0;
temp int;
int loin;
tampon de caractères[10];
// initialise adc et lcd
adc_init();
lcd_init(LCD_DISP_ON_CURSOR); //LE CURSEUR
lcd_clrscr();
lcd_gotoxy(0, 0);
_delay_ms(50);
tandis que(1)
{
adc_result0 = adc_read(0); // lecture de la valeur adc à PA0
temp=adc_result0/2.01; // recherche de la température
//lcd_gotoxy(0, 0);
//lcd_puts("Adc=");
//itoa(adc_result0, buffer, 10); //afficher la valeur ADC
//lcd_puts(tampon);
lcd_gotoxy(0, 0);
itoa(temp, tampon, 10);
lcd_puts("Temp="); //afficher la température
lcd_puts(tampon);
lcd_gotoxy(7, 0);
lcd_puts("C");
loin=(1.8*temp)+32;
lcd_gotoxy(9, 0);
itoa(loin, tampon, 10);
lcd_puts(tampon);
lcd_gotoxy(12, 0);
lcd_puts("F");
_delay_ms(1000);
si(temp>=30)
{lcd_clrscr();
lcd_home();
lcd_gotoxy(0, 1);
lcd_puts("VENTILATEUR EN MARCHE");
PORTB=(1<
}
si (temp<=30)
{
lcd_clrscr();
lcd_home();
lcd_gotoxy(7, 1);
lcd_puts("VENTILATEUR ÉTEINT");
PORTB=(0<
}
}
}
Étape 4: Expliquer le code
J'espère que vous savez que vous saurez comment activer l'ADC et comment interfacer l'écran LCD avec le microcontrôleur Avr dans ce code lorsque la température est supérieure à 30 degrés, le ventilateur est allumé et vous pouvez voir sur l'affichage LED FAN ON et lorsque la température est inférieure à 30 puis ventilateur est éteint et vous pouvez voir FAN OFF
Étape 5: Vous pouvez télécharger le projet complet
Cliquez ici
Conseillé:
Ventilateur de refroidissement automatique utilisant un servomoteur et un capteur de température et d'humidité DHT11 avec Arduino : 8 étapes
Ventilateur de refroidissement automatique utilisant un servomoteur et un capteur de température et d'humidité DHT11 avec Arduino : dans ce didacticiel, nous apprendrons comment démarrer & faire tourner un ventilateur lorsque la température dépasse un certain niveau
Lecture de la température à l'aide du capteur de température LM35 avec Arduino Uno : 4 étapes
Lecture de la température à l'aide du capteur de température LM35 avec Arduino Uno : Salut les gars dans cette instructables, nous allons apprendre à utiliser LM35 avec Arduino. Lm35 est un capteur de température qui peut lire des valeurs de température de -55°c à 150°C. C'est un appareil à 3 bornes qui fournit une tension analogique proportionnelle à la température. Haut
Écran LCD I2C/IIC - Utilisez un écran LCD SPI vers l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : 5 étapes
Écran LCD I2C/IIC | Utilisez un écran LCD SPI sur l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : Salut les gars, car un SPI LCD 1602 normal a trop de fils à connecter, il est donc très difficile de l'interfacer avec arduino, mais il existe un module disponible sur le marché qui peut convertir l'affichage SPI en affichage IIC, vous n'avez donc besoin de connecter que 4 fils
Écran LCD I2C/IIC - Convertir un écran LCD SPI en écran LCD I2C : 5 étapes
Écran LCD I2C/IIC | Convertir un écran LCD SPI en écran LCD I2C : l'utilisation de l'écran lcd spi nécessite trop de connexions, ce qui est vraiment difficile à faire
Prédiction de la température ambiante via le capteur LM35 et l'apprentissage automatique : 4 étapes
Prédiction de la température ambiante via le capteur LM35 et l'apprentissage automatique : IntroductionAujourd'hui, nous nous concentrons sur la création d'un projet d'apprentissage automatique qui prédit la température via la régression polynomiale. L'apprentissage automatique est une application de l'intelligence artificielle (IA) qui permet aux systèmes d'apprendre automatiquement