Mündəricat:

Temperatur Sensoru (LM35) ATmega32 və LCD Ekranı ilə Əlaqələndirir - Avtomatik Fan İdarəetmə: 6 addım
Temperatur Sensoru (LM35) ATmega32 və LCD Ekranı ilə Əlaqələndirir - Avtomatik Fan İdarəetmə: 6 addım

Video: Temperatur Sensoru (LM35) ATmega32 və LCD Ekranı ilə Əlaqələndirir - Avtomatik Fan İdarəetmə: 6 addım

Video: Temperatur Sensoru (LM35) ATmega32 və LCD Ekranı ilə Əlaqələndirir - Avtomatik Fan İdarəetmə: 6 addım
Video: Arduino ilə LM35 Temperatur Sensor istifadə edərək LCD1602-də temperatur göstərin 2024, Noyabr
Anonim
Temperatur Sensoru (LM35) ATmega32 və LCD Ekranı ilə Əlaqələndirir | Avtomatik Fan Nəzarəti
Temperatur Sensoru (LM35) ATmega32 və LCD Ekranı ilə Əlaqələndirir | Avtomatik Fan Nəzarəti

Temperatur Sensoru (LM35) ATmega32 və LCD Ekranı ilə əlaqə qurur

Addım 1:

Bu layihədə, AVR ATmega32 Mikrokontrolör və LCD displey ilə İstilik Sensorunun (LM35) necə əlaqələndiriləcəyini öyrənəcəksiniz.

Bu layihədən əvvəl aşağıdakı məqalələr haqqında məlumat əldə etməlisiniz

avr studiyasında lcd kitabxanasını necə əlavə etmək olar | avr mikrokontrolör dərsliyi

AVR Mikrokontrollerində ADC -yə giriş | yeni başlayanlar üçün

Temperatur Sensoru (LM35) populyar və aşağı qiymətli bir temperatur sensoru. Vcc, məlumat cədvəlində göstərildiyi kimi 4V ilə 20V arasında ola bilər. Sensordan istifadə etmək üçün Vcc -i 5V -ə, GND -ni Yerə və Çıxışı ADC -dən birinə (analogdan rəqəmsal çevirici kanalına) qoşmaq kifayətdir.

Çıxış dərəcəsi santigrat üçün 10MilliVoltsdur. Beləliklə, çıxış 310 mV -dirsə, temperatur 31 dərəcədir. Bu layihəni həyata keçirmək üçün AVR -lərin ADC -si ilə tanış olmalısınız və LCD -dən istifadə etməlisiniz, beləliklə AVR -lərin ADC -nin həlli 10bit, istinad gərginliyi üçün isə 5V -dən istifadə edirsiniz. gərginlik baxımından

Təxminən 5/1024 = 5.1mV

Beləliklə, əgər ADC -nin nəticəsi 5.1mV -ə uyğundursa, yəni ADC oxunmasıdırsa

10 x 5.1 mV = 51 mV

Adc_result (ch) funksiyasından istifadə edərək hər hansı bir ADC kanalının dəyərini oxuya bilərsiniz;

ATmega8 vəziyyətində ch kanal nömrəsidir (0-5). LM35 -in ADC kanalına 0 qoşduğunuz halda zəng edin

adc_result0 = adc_read (0);

bu, mövcud ADC oxunmasını adc_value dəyişənində saxlayacaq. ADC dəyəri 0-1023 arasında dəyişə biləcəyi üçün adc_value məlumat növü int olmalıdır.

Gördüyümüz kimi ADC nəticələri 5.1mV faktordur və 1 dərəcə C üçün LM35 -in çıxışı 10mV -dir, buna görə 2 ədəd ADC = 1 dərəcədir.

İstiliyi əldə etmək üçün adc_value'yi ikiyə bölürük

temperatur = adc_result0 /2;

Nəhayət, mikro nəzarətçi 16X2 alfasayısal LCD -də temperaturu santigrat dərəcəsində göstərəcək.

Addım 2: Dövrə Şeması

Dövrə diaqramı
Dövrə diaqramı

Addım 3: Proqram

#ifndef F_CPU

#F_CPU 1600000UL təyin edin

#endif

#daxil edin

#daxil edin

#"LCD/lcd.h" daxil edin

boş adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Enable və 128 -in prescaler

ADCSRA = (1 <

}

// adc dəyərini oxuyun

uint16_t adc_read (uint8_t ch)

{

// müvafiq kanalı seçin 0 ~ 7

ch & = 0b00000111; // VƏ 7 ilə əməliyyat

ADMUX = (ADMUX & 0xF8) | ch;

// tək çevrilməyə başlayın

// ADSC -ə '1' yazın

ADCSRA | = (1 <

// dönüşümün tamamlanmasını gözləyin

// ADSC yenidən '0' olur

isə (ADCSRA & (1 <

qayıt (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int tempi;

int far;

char tamponu [10];

// adc və lcd -ni işə salın

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // KURSOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_delay_ms (50);

vaxt (1)

{

adc_result0 = adc_read (0); // PA0 -da adc dəyərini oxuyun

temp = adc_result0/2.01; // temperaturun tapılması

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, tampon, 10); // ADC dəyərini göstərin

// lcd_puts (tampon);

lcd_gotoxy (0, 0);

itoa (temperatur, tampon, 10);

lcd_puts ("Temp ="); // ekran temperaturu

lcd_puts (tampon);

lcd_gotoxy (7, 0);

lcd_puts ("C");

uzaq = (1.8*temp) +32;

lcd_gotoxy (9, 0);

itoa (uzaq, tampon, 10);

lcd_puts (tampon);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_delay_ms (1000);

əgər (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN AÇIQ");

PORTB = (1 <

}

əgər (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Addım 4: Kodu izah edin

Ümid edirəm ki, biləcəksiniz ki ADC -ni necə aktivləşdirəcəyinizi və temperatur 30 dərəcədən yuxarı olduqda fan işləyərkən Avr Microcontroller ilə LCD -ni necə əlaqələndirə biləcəyinizi və LED FAN AÇIĞI açıldığını və Temperatur 30 -dan sonra olduqda fan olduğunu görə bilərsiniz. söndürüldü və FAN OFF -ı görə bilərsiniz

Addım 5: Tam Layihəni Yükləyə bilərsiniz

Bura basın

Tövsiyə: