İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13
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ı
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:
ESP8266 Ekranlı Barbekü Sıcaklık ve Et Sensörü: 5 Adım (Resimlerle)
ESP8266'da Ekranlı Barbekü Sıcaklığı ve Et Sensörü: Bu Eğitilebilir Kitapta, barbekünüzdeki mevcut sıcaklığı ölçen ve gerektiğinde aydınlatmak için bir fanı açan bir Barbekü aletinin kendi versiyonunu nasıl yapacağınızı göstereceğim. Buna ek olarak bir et çekirdeği sıcaklık sensörü saldırısı da var
Nokta Vuruşlu Led Ekranlı Atmega16 Mikrodenetleyici Arayüz: 5 Adım
Dot Matrix Led Ekranlı Atmega16 Mikrodenetleyici Arayüz: Bu projede, bir nokta vuruşlu LED ekranı AVR(Atmega16) mikrodenetleyici ile arayüzleyeceğiz. Burada simülasyonu proteus ile göstereceğiz, aynı şeyi donanımınızda da uygulayabilirsiniz. Yani burada önce bir karakter yazdıracağız, hadi t'ye 'A' diyelim
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: 4 Adım
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: Merhaba arkadaşlar bu derste LM35'i Arduino ile nasıl kullanacağımızı öğreneceğiz. Lm35, -55 °C ile 150 °C arasındaki sıcaklık değerlerini okuyabilen bir sıcaklık sensörüdür. Sıcaklıkla orantılı analog voltaj sağlayan 3 terminalli bir cihazdır. Yüksek
Arduino ve Lcd Ekranlı Sıcaklık ve Nem Sensörü: 4 Adım
Arduino ve Lcd Ekranlı Sıcaklık ve Nem Sensörü: Merhaba arkadaşlar, Artuino'ya tekrar hoş geldiniz. Gördüğünüz gibi An Instructable'a başladım Bugün bir Sıcaklık & DHT11 modüllü nem ölçer. Hadi başlayalım Abone olmayı ve videoyu beğenmeyi düşünün
Ekranlı ve Düğmeli İki Telli (DMX) Arayüz: 5 Adım (Resimlerle)
Ekranlı ve Düğmeli İki Telli (DMX) Arabirim: DMX, sahne aydınlatma armatürlerini ve özel efektleri kontrol etmek için kullanılan bir protokoldür. Her cihazın yanıt verdiği kendi kanalı/kanalları vardır. Bu kanal, bir DIP anahtarı veya düğmeli bir ekran ile kullanıcı tarafından seçilebilir. Bir kanal seçmenin birden çok yolu vardır