Isi kandungan:

Sensor Suhu (LM35) Berinteraksi Dengan ATmega32 dan Paparan LCD - Kawalan Kipas Automatik: 6 Langkah
Sensor Suhu (LM35) Berinteraksi Dengan ATmega32 dan Paparan LCD - Kawalan Kipas Automatik: 6 Langkah

Video: Sensor Suhu (LM35) Berinteraksi Dengan ATmega32 dan Paparan LCD - Kawalan Kipas Automatik: 6 Langkah

Video: Sensor Suhu (LM35) Berinteraksi Dengan ATmega32 dan Paparan LCD - Kawalan Kipas Automatik: 6 Langkah
Video: TB 1 PBM - 2a. Simulasi Suhu dengan LM 35 dan LCD 2024, Julai
Anonim
Sensor Suhu (LM35) Berinteraksi Dengan ATmega32 dan Paparan LCD | Kawalan Kipas Automatik
Sensor Suhu (LM35) Berinteraksi Dengan ATmega32 dan Paparan LCD | Kawalan Kipas Automatik

Sensor Suhu (LM35) Berinteraksi dengan ATmega32 dan Paparan LCD

Langkah 1:

Dalam projek ini, Anda akan belajar Bagaimana untuk menghubungkan Sensor Suhu (LM35) dengan AVR ATmega32 Mikrokontroler dan paparan LCD.

Sebelum Projek ini anda perlu Pelajari mengenai artikel berikut

cara menambah perpustakaan lcd di avr studio | tutorial mikrokontroler avr

pengenalan kepada ADC dalam AVR Microcontroller | untuk pemula

Sensor Suhu (LM35) adalah sensor suhu yang popular dan kos rendah. Vcc dapat dari 4V hingga 20V seperti yang ditentukan oleh lembar data. Untuk menggunakan sensor cukup sambungkan Vcc ke 5V, GND ke Ground dan Out ke salah satu ADC (saluran penukar analog ke digital).

Keluarannya ialah 10MilliVolts setiap darjah selsius. Oleh itu, jika keluarannya adalah 310 mV maka suhu adalah 31 darjah C. Untuk membuat projek ini, anda harus mengetahui ADC AVR dan juga menggunakan LCD. Oleh itu, resolusi AVR ADC adalah 10bit dan untuk voltan rujukan, anda menggunakan 5V sehingga resolusi dari segi voltan ialah

5/1024 = 5.1mV lebih kurang

Oleh itu, jika hasil ADC sepadan dengan 5.1mV iaitu jika bacaan ADC adalah

10 x 5.1mV = 51mV

Anda boleh membaca nilai mana-mana saluran ADC menggunakan fungsi adc_result (ch);

Di mana ch adalah nombor saluran (0-5) sekiranya ATmega8. Sekiranya anda telah menyambungkan outlet LM35 ke saluran ADC 0, kemudian hubungi

adc_result0 = adc_read (0);

ini akan menyimpan bacaan ADC semasa dalam nilai adc_value. Jenis data adc_value harus int kerana nilai ADC boleh berkisar antara 0-1023.

Seperti yang kita lihat hasil ADC adalah faktor 5.1mV dan untuk 1 darjah C output LM35 adalah 10mV, Jadi 2 unit ADC = 1 darjah.

Oleh itu, untuk mendapatkan suhu, kita membahagikan nilai adc dengan dua

suhu = adc_result0 / 2;

Akhirnya mikrokontroler akan memaparkan suhu dalam darjah selsius dalam LCD alfanumerik 16X2.

Langkah 2: Rajah Litar

Rajah Litar
Rajah Litar

Langkah 3: Program

#ifndef F_CPU

#tentukan F_CPU 1600000UL

#endif

#sertakan

#sertakan

#sertakan "LCD / lcd.h"

batal adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Enable and prescaler of 128

ADCSRA = (1 <

}

// baca nilai adc

uint16_t adc_read (uint8_t ch)

{

// pilih saluran yang sesuai 0 ~ 7

ch & = 0b00000111; // DAN operasi dengan 7

ADMUX = (ADMUX & 0xF8) | ch;

// mulakan penukaran tunggal

// tulis '1' ke ADSC

ADCSRA | = (1 <

// tunggu penukaran selesai

// ADSC menjadi '0' sekali lagi

sementara (ADCSRA & (1 <

pulangan (ADC);

}

int utama ()

{

DDRB = 0xff;

uint16_t adc_result0;

int suhu;

int jauh;

penampan char [10];

// inisialisasi adc dan lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // KURSOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_delay_ms (50);

semasa (1)

{

adc_result0 = adc_read (0); // baca nilai adc di PA0

temp = adc_result0 / 2.01; // mencari suhu

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, penyangga, 10); // paparkan nilai ADC

// lcd_puts (penyangga);

lcd_gotoxy (0, 0);

itoa (temp, penyangga, 10);

lcd_puts ("Temp ="); // suhu paparan

lcd_puts (penyangga);

lcd_gotoxy (7, 0);

lcd_puts ("C");

jauh = (1.8 * temp) +32;

lcd_gotoxy (9, 0);

itoa (jauh, penyangga, 10);

lcd_puts (penyangga);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_delay_ms (1000);

jika (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

jika (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Langkah 4: Terangkan Kod

Saya harap anda Tahu anda akan tahu Cara mengaktifkan ADC dan Bagaimana untuk menghubungkan LCD dengan Mikrokontroler Avr dalam kod ini apabila suhu lebih dari 30 darjah maka kipas dihidupkan dan anda dapat melihat pada Paparan LED FAN ON dan ketika Suhu Kurang dari 30 kemudian kipas dimatikan dan anda dapat melihat FAN OFF

Langkah 5: Anda Boleh Muat turun Projek Penuh

Tekan di sini

Disyorkan: