Table des matières:

Capteur de température (LM35) interfacé avec ATmega32 et écran LCD - Contrôle automatique du ventilateur : 6 étapes
Capteur de température (LM35) interfacé avec ATmega32 et écran LCD - Contrôle automatique du ventilateur : 6 étapes

Vidéo: Capteur de température (LM35) interfacé avec ATmega32 et écran LCD - Contrôle automatique du ventilateur : 6 étapes

Vidéo: Capteur de température (LM35) interfacé avec ATmega32 et écran LCD - Contrôle automatique du ventilateur : 6 étapes
Vidéo: Arduino: Capteur de température/humidité + Afficheur LCD | HD Français 2024, Juillet
Anonim
Interfaçage du capteur de température (LM35) avec ATmega32 et écran LCD | Contrôle automatique du ventilateur
Interfaçage du capteur de température (LM35) avec ATmega32 et écran LCD | Contrôle automatique du ventilateur

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

Schéma
Schéma

É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é: