Indholdsfortegnelse:

Temperatursensor (LM35) Grænseflade Med ATmega32 og LCD Display - Automatisk ventilatorstyring: 6 trin
Temperatursensor (LM35) Grænseflade Med ATmega32 og LCD Display - Automatisk ventilatorstyring: 6 trin

Video: Temperatursensor (LM35) Grænseflade Med ATmega32 og LCD Display - Automatisk ventilatorstyring: 6 trin

Video: Temperatursensor (LM35) Grænseflade Med ATmega32 og LCD Display - Automatisk ventilatorstyring: 6 trin
Video: Temperature Sensor(LM35 ) Interfacing with ATmega32 and LCD Display| Automatics Fan Controll 2024, November
Anonim
Temperatursensor (LM35) Grænseflade Med ATmega32 og LCD Display | Automatisk ventilatorstyring
Temperatursensor (LM35) Grænseflade Med ATmega32 og LCD Display | Automatisk ventilatorstyring

Temperatursensor (LM35) Grænseflade med ATmega32 og LCD Display

Trin 1:

I dette projekt lærer du Sådan kobles en temperatursensor (LM35) til AVR ATmega32 mikrokontroller og LCD -display.

Inden dette projekt skal du bruge Lær om følgende artikler

hvordan tilføjer man lcd -bibliotek i avr studio | avr mikrokontroller tutorial

introduktion til ADC i AVR Microcontroller | for begyndere

Temperatursensor (LM35) er en populær og billig temperatursensor. Vcc kan være fra 4V til 20V som angivet i databladet. For at bruge sensoren skal du blot tilslutte Vcc til 5V, GND til Ground og Out til en af ADC (analog til digital converter kanal).

Outputtet er 10MilliVolts pr. Grader celsius. Så hvis output er 310 mV, så er temperaturen 31 grader C. For at lave dette projekt skal du være fortrolig med ADC'en for AVR'er og også bruge LCD Så Opløsningen på AVR'er ADC er 10bit og til referencespænding bruger du 5V, så opløsningen med hensyn til spænding er

5/1024 = 5,1 mV ca.

Så hvis ADCs resultat svarer til 5,1mV, dvs. hvis ADC -læsning er

10 x 5,1 mV = 51 mV

Du kan få læst værdien af enhver ADC -kanal ved hjælp af funktionen adc_result (ch);

Hvor ch er kanalnummer (0-5) i tilfælde af ATmega8. Hvis du har tilsluttet LM35'erne out til ADC -kanal 0, skal du ringe

adc_result0 = adc_read (0);

dette gemmer den aktuelle ADC -læsning i variabelen adc_value. Datatypen for adc_value skal være int, da ADC-værdien kan variere fra 0-1023.

Som vi så, er ADC -resultaterne i faktor 5,1mV, og for 1 grad C er output af LM35 10mV, så 2 enheder ADC = 1 grad.

Så for at få temperaturen dividerer vi adc_værdien med to

temperatur = adc_result0 /2;

Endelig vil mikrokontrolleren vise temperaturen i grader celsius i det 16X2 alfanumeriske LCD.

Trin 2: Kredsløbsdiagram

Kredsløbsdiagram
Kredsløbsdiagram

Trin 3: Programmer

#ifndef F_CPU

#define F_CPU 1600000UL

#Afslut Hvis

#omfatte

#omfatte

#include "LCD/lcd.h"

ugid adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Aktiver og forskalering af 128

ADCSRA = (1 <

}

// læs adc -værdi

uint16_t adc_read (uint8_t ch)

{

// vælg den tilsvarende kanal 0 ~ 7

ch & = 0b00000111; // OG drift med 7

ADMUX = (ADMUX & 0xF8) | ch;

// start enkelt konvertering

// skriv '1' til ADSC

ADCSRA | = (1 <

// vent på, at konverteringen er fuldført

// ADSC bliver '0' igen

mens (ADCSRA & (1 <

retur (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int langt;

kulbuffer [10];

// initialiser adc og lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); //CURSOREN

lcd_clrscr ();

lcd_gotoxy (0, 0);

_forsinkelse_ms (50);

mens (1)

{

adc_result0 = adc_read (0); // læs adc -værdi ved PA0

temp = adc_result0/2.01; // at finde temperaturen

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buffer, 10); // vis ADC -værdi

// lcd_puts (buffer);

lcd_gotoxy (0, 0);

itoa (temp, buffer, 10);

lcd_puts ("Temp ="); // visningstemperatur

lcd_puts (buffer);

lcd_gotoxy (7, 0);

lcd_puts ("C");

langt = (1,8*temp) +32;

lcd_gotoxy (9, 0);

itoa (langt, buffer, 10);

lcd_puts (buffer);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_forsinkelse_ms (1000);

hvis (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("VENTILATOR TIL");

PORTB = (1 <

}

hvis (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Trin 4: Kode Forklar

Jeg håber, du ved, at du ved, hvordan du aktiverer ADC og hvordan du tilslutter LCD med Avr Microcontroller i denne kode, når temperaturen er mere end 30 grader, derefter er ventilatoren tændt, og du kan se på LED Display FAN ON og når temperatur mindre end 30 derefter blæser er slukket, og du kan se FAN FAN

Trin 5: Du kan downloade hele projektet

Klik her

Anbefalede: