Përmbajtje:

Sensori i Temperaturës (LM35) Ndërfaqja me ATmega32 dhe Ekran LCD - Kontrolli i ventilatorit automatik: 6 hapa
Sensori i Temperaturës (LM35) Ndërfaqja me ATmega32 dhe Ekran LCD - Kontrolli i ventilatorit automatik: 6 hapa

Video: Sensori i Temperaturës (LM35) Ndërfaqja me ATmega32 dhe Ekran LCD - Kontrolli i ventilatorit automatik: 6 hapa

Video: Sensori i Temperaturës (LM35) Ndërfaqja me ATmega32 dhe Ekran LCD - Kontrolli i ventilatorit automatik: 6 hapa
Video: Arduino për fillestar(Mësimi 3)Si të masim temperaturën me sensorin lm35 / Measure temp Sensor lm35 2024, Nëntor
Anonim
Sensori i Temperaturës (LM35) Ndërfaqja me ATmega32 dhe Ekran LCD | Kontrolli i ventilatorit automatik
Sensori i Temperaturës (LM35) Ndërfaqja me ATmega32 dhe Ekran LCD | Kontrolli i ventilatorit automatik

Sensori i Temperaturës (LM35) Ndërfaqja me ATmega32 dhe Ekran LCD

Hapi 1:

Në këtë projekt, ju do të mësoni Si të ndërlidhni një Sensor Temperature (LM35) me AVR ATmega32 Mikrokontrollues dhe ekran LCD.

Përpara këtij Projekti ju duhet të Mësoni rreth artikujve të mëposhtëm

si të shtoni bibliotekën LCD në studio avr | tutorial i mikrokontrolluesit avr

hyrje në ADC në AVR Mikrokontrollues | për fillestarët

Sensori i temperaturës (LM35) është një sensor i popullarizuar dhe me kosto të ulët i temperaturës. Vcc mund të jetë nga 4V në 20V siç përcaktohet nga fleta e të dhënave. Për të përdorur sensorin thjesht lidhni Vcc me 5V, GND me Ground dhe Out me një nga ADC (kanal konvertues analog në dixhital).

Prodhimi është 10MilliVolt për gradë celsius. Pra, nëse dalja është 310 mV atëherë temperatura është 31 gradë C. Për ta bërë këtë projekt duhet të njiheni me ADC të AVR -ve dhe gjithashtu duke përdorur LCD Kështu Rezolucioni i AVR -ve ADC është 10bit dhe për tensionin e referencës po përdorni 5V pra për sa i përket tensionit është

5/1024 = 5.1mV përafërsisht

Pra, nëse rezultati i ADC korrespondon me 5.1mV dmth nëse leximi ADC është

10 x 5.1mV = 51mV

Ju mund të lexoni vlerën e çdo kanali ADC duke përdorur funksionin adc_result (ch);

Ku ch është numri i kanalit (0-5) në rastin e ATmega8. Nëse i keni lidhur LM35 të dalura në ADC kanalin 0 atëherë telefononi

adc_result0 = adc_read (0);

kjo do të ruajë leximin aktual të ADC në ndryshoren adc_value. Lloji i të dhënave të adc_value duhet të jetë int pasi vlera ADC mund të shkojë nga 0-1023.

Siç e pamë rezultatet ADC janë në faktorin 5.1mV dhe për 1 gradë C dalja e LM35 është 10mV, pra 2 njësi të ADC = 1 shkallë.

Pra për të marrë temperaturën e ndajmë vlerën adc_ me dy

temperatura = adc_result0/2;

Më në fund mikrokontrolluesi do të shfaqë temperaturën në gradë celsius në LCD alfanumerike 16X2.

Hapi 2: Diagrami i Qarkut

Diagrami i qarkut
Diagrami i qarkut

Hapi 3: Programi

#ifndef F_CPU

#përcakto F_CPU 1600000UL

#endif

#përfshi

#përfshi

#përfshi "LCD/lcd.h"

e pavlefshme adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Aktivizo dhe parashkrues të 128

ADCSRA = (1 <

}

// lexo vlerën adc

uint16_t adc_read (uint8_t ch)

{

// zgjidhni kanalin përkatës 0 ~ 7

ch & = 0b00000111; // DHE operacion me 7

ADMUX = (ADMUX & 0xF8) | ch;

// filloni konvertimin e vetëm

// shkruaj '1' në ADSC

ADCSRA | = (1 <

// prisni që konvertimi të përfundojë

// ADSC bëhet përsëri '0'

ndërsa (ADCSRA & (1 <

kthimi (ADC);

}

int kryesore ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int larg;

tampon kar [10];

// filloni adc dhe lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // KURSORI

lcd_clrscr ();

lcd_gotoxy (0, 0);

_vonesa_ms (50);

ndërsa (1)

{

adc_result0 = adc_read (0); // lexoni vlerën adc në PA0

temp = adc_result0/2.01; // gjetja e temperaturës

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, tampon, 10); // shfaq vlerën ADC

// lcd_puts (tampon);

lcd_gotoxy (0, 0);

itoa (temp, tampon, 10);

lcd_puts ("Temp ="); // shfaq temperaturën

lcd_puts (tampon);

lcd_gotoxy (7, 0);

lcd_puts ("C");

larg = (1.8*temp) +32;

lcd_gotoxy (9, 0);

itoa (larg, tampon, 10);

lcd_puts (tampon);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_vonesa_ms (1000);

nëse (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

nëse (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Hapi 4: Shpjegoni kodin

Shpresoj se e dini se do të dini si të aktivizoni ADC dhe si të ndërlidhni LCD me Avr Mikrokontrollues në këtë kod kur temperatura është më shumë se 30 gradë, atëherë ventilatori është aktiv dhe mund të shihni në LED Display FAN ON dhe kur Temperatura Më pak se 30 pastaj tifoz është joaktiv dhe mund të shihni FAN OFF

Hapi 5: Mund të Shkarkoni Projektin e Plotë

Kliko këtu

Recommended: