INHOUDSOPGAWE:

Temperatuursensor (LM35) Interfacing Met ATmega32 en LCD Display - Outomatiese waaierbeheer: 6 stappe
Temperatuursensor (LM35) Interfacing Met ATmega32 en LCD Display - Outomatiese waaierbeheer: 6 stappe

Video: Temperatuursensor (LM35) Interfacing Met ATmega32 en LCD Display - Outomatiese waaierbeheer: 6 stappe

Video: Temperatuursensor (LM35) Interfacing Met ATmega32 en LCD Display - Outomatiese waaierbeheer: 6 stappe
Video: 11 Atmega32 Assembly Tutorial- LM35 Temperature Sensor and LCD Display interfacing with AVR ATmega32 2024, November
Anonim
Temperatuursensor (LM35) Interfacing Met ATmega32 en LCD Display | Outomatiese waaierbeheer
Temperatuursensor (LM35) Interfacing Met ATmega32 en LCD Display | Outomatiese waaierbeheer

Temperatuursensor (LM35) Koppelvlak met ATmega32 en LCD -skerm

Stap 1:

In hierdie projek leer u hoe u 'n temperatuursensor (LM35) kan koppel met AVR ATmega32 -mikrobeheerder en LCD -skerm.

Voor hierdie projek moet u meer inligting oor die volgende artikels benodig

hoe om 'n lcd -biblioteek by te voeg in avr studio | avr -mikrobeheerder -tutoriaal

inleiding tot ADC in AVR Microcontroller | vir beginners

Temperatuur sensor (LM35) is 'n gewilde en goedkoop temperatuur sensor. Die Vcc kan van 4V tot 20V wees, soos gespesifiseer deur die datablad. Om die sensor te gebruik, koppel die Vcc eenvoudig aan 5V, GND met grond en die uitgang aan een van die ADC (analoog na digitaal omskakelingskanaal).

Die uitset is 10MilliVolts per graad Celsius. As die uitset 310 mV is, dan is die temperatuur 31 grade C. Om hierdie projek te maak, moet u vertroud wees met die ADC van AVR's en ook LCD gebruik. in terme van spanning is

5/1024 = 5.1mV ongeveer

Dus as die resultaat van die ADC ooreenstem met 5.1mV, dit wil sê as die ADC -lesing dit is

10 x 5,1 mV = 51 mV

U kan die waarde van enige ADC -kanaal met die funksie adc_result (ch) lees;

Waar ch die kanaalnommer (0-5) is in die geval van ATmega8. As u die LM35's aan die ADC -kanaal 0 gekoppel het, skakel dan

adc_result0 = adc_read (0);

dit sal die huidige ADC -lesing in die veranderlike adc_value stoor. Die datatipe van adc_value moet int wees, aangesien die ADC-waarde kan wissel van 0-1023.

Soos ons gesien het, is die ADC -resultate in faktor van 5,1mV en vir 1 graad C is die uitset van LM35 10mV, dus 2 eenhede ADC = 1 graad.

Om die temperatuur te kry, deel ons die adc_waarde met twee

temperatuur = adc_result0 /2;

Uiteindelik sal die mikrobeheerder die temperatuur in grade Celsius in die 16X2 alfanumeriese LCD vertoon.

Stap 2: Kringdiagram

Stroombaandiagram
Stroombaandiagram

Stap 3: Programmeer

#ifndef F_CPU

#defineer F_CPU 1600000UL

#endif

#insluit

#insluit

#sluit "LCD/lcd.h" in

nietig adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Aktiveer en verkalker van 128

ADCSRA = (1 <

}

// lees adc waarde

uint16_t adc_read (uint8_t ch)

{

// kies die ooreenstemmende kanaal 0 ~ 7

ch & = 0b00000111; // EN werking met 7

ADMUX = (ADMUX & 0xF8) | ch;

// begin met 'n enkele omskakeling

// skryf '1' aan ADSC

ADCSRA | = (1 <

// wag totdat die omskakeling voltooi is

// ADSC word weer '0'

terwyl (ADCSRA & (1 <

terugkeer (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int ver;

char buffer [10];

// initialiseer adc en lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // CURSOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_vertraging_ms (50);

terwyl (1)

{

adc_result0 = adc_read (0); // lees adc waarde by PA0

temp = adc_result0/2.01; // die temperatuur vind

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buffer, 10); // vertoon ADC -waarde

// lcd_puts (buffer);

lcd_gotoxy (0, 0);

itoa (temp, buffer, 10);

lcd_puts ("Temp ="); // vertoon temperatuur

lcd_puts (buffer);

lcd_gotoxy (7, 0);

lcd_puts ("C");

ver = (1.8*temp) +32;

lcd_gotoxy (9, 0);

itoa (ver, buffer, 10);

lcd_puts (buffer);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_vertraging_ms (1000);

as (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN AAN");

PORTB = (1 <

}

as (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Stap 4: Kode Verduidelik

Ek hoop dat u weet dat u sal weet hoe u ADC kan aktiveer en hoe u LCD kan koppel met Avr Microcontroller in hierdie kode wanneer die temperatuur meer as 30 grade is, dan waaier aan en u kan sien op LED Display FAN AAN en wanneer temperatuur minder as 30 dan waaier is is af en u kan FAN OFF sien

Stap 5: u kan die volledige projek aflaai

Klik hier

Aanbeveel: