İçindekiler:

ATmega32 ve LCD Ekranlı Sıcaklık Sensörü (LM35) Arayüz - Otomatik Fan Kontrolü: 6 Adım
ATmega32 ve LCD Ekranlı Sıcaklık Sensörü (LM35) Arayüz - Otomatik Fan Kontrolü: 6 Adım

Video: ATmega32 ve LCD Ekranlı Sıcaklık Sensörü (LM35) Arayüz - Otomatik Fan Kontrolü: 6 Adım

Video: ATmega32 ve LCD Ekranlı Sıcaklık Sensörü (LM35) Arayüz - Otomatik Fan Kontrolü: 6 Adım
Video: LM35 Sıcaklık sensörü kullanarak LCD ekranda sıcaklık okuma devre elemanları 2024, Temmuz
Anonim
ATmega32 ve LCD Ekranlı Sıcaklık Sensörü (LM35) Arayüz | Otomatik Fan Kontrolü
ATmega32 ve LCD Ekranlı Sıcaklık Sensörü (LM35) Arayüz | Otomatik Fan Kontrolü

ATmega32 ve LCD Ekranlı Sıcaklık Sensörü (LM35)

Aşama 1:

Bu projede, AVR ATmega32 Mikrodenetleyici ve LCD ekran ile bir Sıcaklık Sensörünün (LM35) nasıl arayüzleneceğini öğreneceksiniz.

Bu Projeden önce aşağıdaki makaleler hakkında bilgi edinmeniz gerekir.

avr studio'da lcd kütüphanesi nasıl eklenir| avr mikrodenetleyici eğitimi

AVR Mikrodenetleyicisinde ADC'ye Giriş | yeni başlayanlar için

Sıcaklık Sensörü (LM35), popüler ve düşük maliyetli bir sıcaklık sensörüdür. Vcc, veri sayfasında belirtildiği gibi 4V ila 20V arasında olabilir. Sensörü kullanmak için Vcc'yi 5V'a, GND'yi Toprak'a ve Çıkışı ADC'den birine (analogdan dijitale dönüştürücü kanal) bağlamanız yeterlidir.

Çıkış, santigrat derece başına 10MilliVolt'tur. Yani çıkış 310 mV ise, sıcaklık 31 derece C'dir. Bu projeyi yapmak için AVR'lerin ADC'sine ve ayrıca LCD'ye aşina olmalısınız. voltaj açısından

5/1024 = 5.1mV yaklaşık

Bu nedenle, ADC'nin sonucu 5.1mV'ye karşılık geliyorsa, yani ADC okuması

10 x 5.1mV = 51mV

adc_result(ch) işlevini kullanarak herhangi bir ADC kanalının değerini okuyabilirsiniz;

ATmega8 durumunda ch kanal numarasıdır (0-5). LM35'in çıkışını ADC kanal 0'a bağladıysanız, arayın

adc_result0 = adc_read(0);

bu, mevcut ADC okumasını adc_value değişkeninde saklayacaktır. ADC değeri 0-1023 arasında değişebileceğinden adc_value veri türü int olmalıdır.

Gördüğümüz gibi ADC sonuçları 5.1mV faktöründe ve 1 derece C için LM35'in çıkışı 10mV, Yani 2 birim ADC = 1 derece.

Yani sıcaklığı elde etmek için adc_value'yu ikiye böleriz

sıcaklık = adc_result0 /2;

Son olarak mikrodenetleyici, sıcaklığı 16X2 alfanümerik LCD'de santigrat derece olarak gösterecektir.

Adım 2: Devre Şeması

Devre şeması
Devre şeması

Adım 3: Program

#ifndef F_CPU

#define F_CPU 1600000UL

#endif

#Dahil etmek

#Dahil etmek

#include "LCD/lcd.h"

geçersiz adc_init()

{

// AREF = AVcc

ADMUX = (1<

// ADC Etkinleştir ve 128'in ön ölçekleyicisi

ADCSRA = (1<

}

// adc değerini oku

uint16_t adc_read(uint8_t ch)

{

// ilgili kanalı 0~7 seçin

ch &= 0b00000111; // VE 7 ile işlem

ADMUX = (ADMUX & 0xF8)|ch;

// tek dönüştürmeyi başlat

// ADSC'ye '1' yaz

ADCSRA |= (1<

// dönüşümün tamamlanmasını bekleyin

// ADSC tekrar '0' olur

while(ADCSRA & (1<

dönüş (ADC);

}

int ana()

{

DDRB=0xff;

uint16_t adc_result0;

int sıcaklık;

int uzak;

karakter arabelleği[10];

// adc ve lcd'yi başlat

adc_init();

lcd_init(LCD_DISP_ON_CURSOR); //İMLEÇ

lcd_clrscr();

lcd_gotoxy(0, 0);

_delay_ms(50);

süre(1)

{

adc_result0 = adc_read(0); // PA0'da adc değerini oku

temp=adc_result0/2.01; // sıcaklığı bulma

//lcd_gotoxy(0, 0);

//lcd_puts("Adc=");

//itoa(adc_result0, arabellek, 10); //ADC değerini göster

//lcd_puts(tampon);

lcd_gotoxy(0, 0);

itoa(temp, arabellek, 10);

lcd_puts("Sıcaklık="); // ekran sıcaklığı

lcd_puts(tampon);

lcd_gotoxy(7, 0);

lcd_puts("C");

uzak=(1.8*temp)+32;

lcd_gotoxy(9, 0);

itoa(uzak, arabellek, 10);

lcd_puts(tampon);

lcd_gotoxy(12, 0);

lcd_puts("F");

_delay_ms(1000);

if(sıcaklık>=30)

{lcd_clrscr();

lcd_home();

lcd_gotoxy(0, 1);

lcd_puts("FAN AÇIK");

PORTB=(1<

}

if (sıcaklık<=30)

{

lcd_clrscr();

lcd_home();

lcd_gotoxy(7, 1);

lcd_puts("FAN KAPALI");

PORTB=(0<

}

}

}

Adım 4: Açıklamayı Kodlayın

Bu kodda, sıcaklık 30 dereceden fazla olduğunda fan açıkken ADC'nin nasıl etkinleştirileceğini ve LCD ile Avr Mikrodenetleyici arasında nasıl arayüz oluşturulacağını bileceğinizi umarım bilirsiniz. kapalıdır ve FAN KAPALI görebilirsiniz

Adım 5: Tam Projeyi İndirebilirsiniz

Buraya tıklayın

Önerilen: