Talaan ng mga Nilalaman:
- Hakbang 1:
- Hakbang 2: Diagram ng Circuit
- Hakbang 3: Programa
- Hakbang 4: Ipaliwanag ang Code
- Hakbang 5: Maaari kang Mag-download ng Buong Project
- Hakbang 6: Video
Video: Temperature Sensor (LM35) Interfacing Sa ATmega32 at LCD Display - Awtomatikong Pagkontrol ng Fan: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Temperature Sensor (LM35) Pag-interfacing sa ATmega32 at LCD Display
Hakbang 1:
Sa proyektong ito, Malalaman mo Kung paano i-interface ang isang Temperature Sensor (LM35) sa AVR ATmega32 Microcontroller at LCD display.
Bago ang Proyekto na ito kailangan mong malaman ang tungkol sa mga sumusunod na artikulo
kung paano magdagdag ng lcd library sa avr studio | tutorial ng avr microcontroller
pagpapakilala sa ADC sa AVR Microcontroller | para sa mga nagsisimula pa lamang
Temperatura Sensor (LM35) ay isang tanyag at mababang presyo ng sensor ng temperatura. Ang Vcc ay maaaring mula sa 4V hanggang 20V tulad ng tinukoy ng datasheet. Upang magamit ang sensor ay ikonekta lamang ang Vcc sa 5V, GND sa Ground at ang Out sa isa sa ADC (analog sa digital converter channel).
Ang output ay 10MilliVolts bawat degree centigrade. Kaya't kung ang output ay 310 mV kung gayon ang temperatura ay 31 degree C. Upang gawin ang proyektong ito dapat ay pamilyar ka sa ADC ng AVRs at gumagamit din ng LCD Kaya Ang resolusyon ng AVRs ADC ay 10bit at para sa sanggunian boltahe ay gumagamit ka ng 5V kaya ang resolusyon sa mga tuntunin ng boltahe ay
5/1024 = 5.1mV humigit-kumulang
Kaya't kung ang resulta ng ADC ay tumutugma sa 5.1mV ibig sabihin kung ang pagbabasa ng ADC ay
10 x 5.1mV = 51mV
Maaari mong mabasa ang halaga ng anumang ADC channel gamit ang function adc_result (ch);
Kung saan ang ch ay numero ng channel (0-5) sa kaso ng ATmega8. Kung nakakonekta mo ang LM35's out ilagay sa ADC channel 0 pagkatapos ay tumawag
adc_result0 = adc_read (0);
maiimbak nito ang kasalukuyang pagbabasa ng ADC sa variable adc_value. Ang uri ng data ng adc_value ay dapat na int bilang ang halaga ng ADC ay maaaring saklaw mula 0-1023.
Tulad ng nakita namin ang mga resulta ng ADC ay nasa kadahilanan ng 5.1mV at para sa 1 degree C ang output ng LM35 ay 10mV, Kaya 2 yunit ng ADC = 1 degree.
Kaya upang makuha ang temperatura hinati natin ang adc_value ng dalawa
temperatura = adc_result0 / 2;
Sa wakas ang microcontroller ay magpapakita ng temperatura sa degree centigrade sa 16X2 alphanumeric LCD.
Hakbang 2: Diagram ng Circuit
Hakbang 3: Programa
#ifndef F_CPU
# tukuyin ang F_CPU 1600000UL
#tapusin kung
# isama
# isama
# isama ang "LCD / lcd.h"
walang bisa adc_init ()
{
// AREF = AVcc
ADMUX = (1 <
// ADC Paganahin at prescaler ng 128
ADCSRA = (1 <
}
// basahin ang halaga ng adc
uint16_t adc_read (uint8_t ch)
{
// piliin ang katumbas na channel 0 ~ 7
ch & = 0b00000111; // AT operasyon na may 7
ADMUX = (ADMUX & 0xF8) | ch;
// simulan ang solong conversion
// isulat ang '1' sa ADSC
ADCSRA | = (1 <
// hintaying makumpleto ang conversion
// ADSC ay naging '0' muli
habang (ADCSRA & (1 <
bumalik (ADC);
}
int main ()
{
DDRB = 0xff;
uint16_t adc_result0;
int temp;
int malayo;
char buffer [10];
// ipasimula ang adc at lcd
adc_init ();
lcd_init (LCD_DISP_ON_CURSOR); // CURSOR
lcd_clrscr ();
lcd_gotoxy (0, 0);
_delay_ms (50);
habang (1)
{
adc_result0 = adc_read (0); // basahin ang halaga ng adc sa PA0
temp = adc_result0 / 2.01; // paghahanap ng temperatura
// lcd_gotoxy (0, 0);
// lcd_puts ("Adc =");
// itoa (adc_result0, buffer, 10); // ipakita ang halaga ng ADC
// lcd_puts (buffer);
lcd_gotoxy (0, 0);
itoa (temp, buffer, 10);
lcd_puts ("Temp ="); // display temperatura
lcd_puts (buffer);
lcd_gotoxy (7, 0);
lcd_puts ("C");
malayo = (1.8 * temp) +32;
lcd_gotoxy (9, 0);
itoa (malayo, buffer, 10);
lcd_puts (buffer);
lcd_gotoxy (12, 0);
lcd_puts ("F");
_delay_ms (1000);
kung (temp> = 30)
{lcd_clrscr ();
lcd_home ();
lcd_gotoxy (0, 1);
lcd_puts ("FAN ON");
PORTB = (1 <
}
kung (temp <= 30)
{
lcd_clrscr ();
lcd_home ();
lcd_gotoxy (7, 1);
lcd_puts ("FAN OFF");
PORTB = (0 <
}
}
}
Hakbang 4: Ipaliwanag ang Code
Inaasahan kong malalaman mo malalaman Kung paano paganahin ang ADC at Paano i-interface ang LCD sa Avr Microcontroller sa code na ito kapag ang temperatura ay higit pa sa 30 degree pagkatapos ang fan ay nasa at maaari mong makita sa humantong Display FAN ON at kung ang Temperatura Mas mababa sa 30 pagkatapos ay fan naka-off at makikita mo ang FAN OFF
Hakbang 5: Maaari kang Mag-download ng Buong Project
Pindutin dito
Inirerekumendang:
Pag-interfacing ng LM35 Temperature Sensor Sa Arduino: 4 na Hakbang
Ang interfacing LM35 Temperature Sensor Sa Arduino: Ang mga thermometers ay kapaki-pakinabang na patakaran ng pamahalaan na ginagamit ng mahabang panahon para sa pagsukat ng temperatura. Sa proyektong ito, gumawa kami ng isang Arduino batay sa digital thermometer upang maipakita ang kasalukuyang temperatura sa paligid at mga pagbabago sa temperatura sa isang LCD. Maaari itong maging depl
Pag-interfacing ng DS18B20 Temperature Sensor Sa Arduino at ESP8266: 8 Mga Hakbang
Pag-interfacing ng DS18B20 Temperature Sensor Sa Arduino at ESP8266: Hoy, ano na, Guys! Akarsh dito mula sa CETech. Ngayon ay magdaragdag kami ng isang bagong Sensor sa aming arsenal na kilala bilang DS18B20 Temperature Sensor. Ito ay isang sensor ng temperatura na katulad ng DHT11 ngunit may magkakaibang hanay ng mga application. Ihinahambing namin ito
Arduino Interfacing With Ultrasonic Sensor at contactless Temperature Sensor: 8 Hakbang
Ang Arduino Interfacing With Ultrasonic Sensor at contactless Temperature Sensor: Ngayong mga araw na ito, ang mga Gumagawa, Developers ay mas gusto ang Arduino para sa mabilis na pag-unlad ng prototyping ng mga proyekto. Ang Arduino ay isang open-source electronics platform batay sa madaling gamiting hardware at software. Ang Arduino ay may napakahusay na komunidad ng gumagamit. Sa proje na ito
I2C / IIC LCD Display - Gumamit ng isang SPI LCD sa I2C LCD Display Gamit ang SPI to IIC Module With Arduino: 5 Hakbang
I2C / IIC LCD Display | Gumamit ng isang SPI LCD sa I2C LCD Display Gamit ang SPI to IIC Modyul Sa Arduino: Kumusta mga tao dahil ang isang normal na SPI LCD 1602 ay may maraming mga wires upang kumonekta kaya napakahirap i-interface ito sa arduino ngunit may isang module na magagamit sa merkado na maaaring i-convert ang SPI display sa IIC display kaya kailangan mong ikonekta ang 4 na wires lamang
I2C / IIC LCD Display - I-convert ang isang SPI LCD sa I2C LCD Display: 5 Mga Hakbang
I2C / IIC LCD Display | I-convert ang isang SPI LCD sa I2C LCD Display: ang paggamit ng spi lcd display ay nangangailangan ng maraming mga koneksyon upang gawin na talagang mahirap gawin kaya natagpuan ko ang isang module na maaaring i-convert ang i2c lcd sa spi lcd upang magsimula tayo