Агуулгын хүснэгт:

Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах - Автомат сэнсний хяналт: 6 алхам
Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах - Автомат сэнсний хяналт: 6 алхам

Видео: Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах - Автомат сэнсний хяналт: 6 алхам

Видео: Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах - Автомат сэнсний хяналт: 6 алхам
Видео: LDmicro 14: ЖК-дисплей I2C и часы реального времени DS3231 (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Арваннэгдүгээр
Anonim
Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах | Автомат сэнсний хяналт
Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах | Автомат сэнсний хяналт

Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах

1-р алхам:

Энэхүү төсөлд та температурын мэдрэгч (LM35) -ийг AVR ATmega32 микроконтроллер ба LCD дэлгэцээр хэрхэн холбох талаар сурах болно.

Энэхүү төслийн өмнө та дараах нийтлэлүүдийн талаар олж мэдэх хэрэгтэй

avr студид lcd номын санг хэрхэн нэмэх вэ | avr микроконтроллерийн заавар

AVR микроконтроллер дахь ADC -ийн танилцуулга | эхлэгчдэд зориулсан

Температур мэдрэгч (LM35) нь түгээмэл бөгөөд хямд өртөгтэй температур мэдрэгч юм. Мэдээллийн хүснэгтэд заасны дагуу Vcc нь 4V -аас 20V хүртэл байж болно. Мэдрэгчийг ашиглахын тулд Vcc -ийг 5V -д, GND -ийг газардуулаад ADC -ийн аль нэгэнд (дижитал хөрвүүлэгчийн аналог суваг) холбоно уу.

Нэг градусын центр тутамд гаралт нь 10 МиллиВольт байна. Тиймээс хэрэв гаралт нь 310 мВ бол температур нь 31 градус байна. Энэ төслийг хийхийн тулд та AVR -ийн ADC -тэй танилцах хэрэгтэй бөгөөд LCD ашиглах ёстой. хүчдэлийн хувьд

5/1024 = 5.1mV ойролцоогоор

Хэрэв ADC -ийн үр дүн 5.1mV -тэй тохирч байвал ADC -ийн уншилт нь ижил байх болно

10х5.1мВ = 51мВ

Та adc_result (ch) функцийг ашиглан ADC сувгийн утгыг унших боломжтой;

Энд ch нь ATmega8-ийн хувьд сувгийн дугаар (0-5) юм. Хэрэв та LM35 гаралтыг ADC суваг 0 -т холбосон бол залгаарай

adc_result0 = adc_read (0);

энэ нь ADC -ийн одоогийн уншилтыг adc_value хувьсагчид хадгалах болно. ADC утга 0-1023 хооронд хэлбэлзэж болох тул adc_value өгөгдлийн төрөл int байх ёстой.

Бидний харж байгаагаар ADC -ийн үр дүн 5.1 мВ -ийн хүчин зүйлтэй бөгөөд 1 градусын хувьд LM35 -ийн гаралт нь 10 мВ байдаг тул ADC -ийн 2 нэгж = 1 градус байна.

Тиймээс температурыг авахын тулд adc_value -ийг хоёр хуваадаг

температур = adc_result0 /2;

Эцэст нь микроконтроллер нь 16X2 үсэг, тоон LCD дээр температурыг нэг градусаар харуулна.

Алхам 2: Хэлхээ диаграм

Хэлхээ диаграм
Хэлхээ диаграм

Алхам 3: Хөтөлбөр

#ifndef F_CPU

#тодорхойлох F_CPU 1600000UL

#endif

#оруулах

#оруулах

#"LCD/lcd.h" оруулах

хүчингүй adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC 128 -ийг идэвхжүүлж, урьдчилан тооцоолох

ADCSRA = (1 <

}

// adc утгыг уншина уу

uint16_t adc_read (uint8_t ch)

{

// харгалзах сувгийг сонгоно уу 0 ~ 7

ch & = 0b00000111; // AND 7 -той ажиллах

ADMUX = (ADMUX & 0xF8) | ch;

// ганц хөрвүүлэлтийг эхлүүлэх

// ADSC рүү '1' гэж бичнэ үү

ADCSRA | = (1 <

// хөрвүүлэлт дуусахыг хүлээнэ үү

// ADSC дахин '0' болно

байхад (ADCSRA & (1 <

буцах (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int температур;

int far;

char буфер [10];

// adc болон lcd -ийг эхлүүлэх

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // Курсор

lcd_clrscr ();

lcd_gotoxy (0, 0);

_хойшлох_ms (50);

байхад (1)

{

adc_result0 = adc_read (0); // PA0 дээр adc утгыг уншина уу

temp = adc_result0/2.01; // температурыг олох

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, буфер, 10); // ADC утгыг харуулна

// lcd_puts (буфер);

lcd_gotoxy (0, 0);

itoa (температур, буфер, 10);

lcd_puts ("Temp ="); // дэлгэцийн температур

lcd_puts (буфер);

lcd_gotoxy (7, 0);

lcd_puts ("C");

хол = (1.8*температур) +32;

lcd_gotoxy (9, 0);

itoa (хол, буфер, 10);

lcd_puts (буфер);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_хойшлох_ms (1000);

хэрэв (температур> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

хэрэв (температур <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Алхам 4: Код тайлбарлах

Хэрэв та 30 градусаас дээш температуртай бол сэнс асаалттай байгаа үед та ADC -ийг хэрхэн идэвхжүүлэх, Avr микроконтроллероор LCD -ийг хэрхэн холбох талаар мэдэх болно гэдгийг мэдэж байгаа гэж найдаж байна. унтраалттай байгаа бөгөөд та FAN OFF -ийг харах боломжтой

Алхам 5: Та төслийг бүрэн татаж авах боломжтой

Энд дар

Зөвлөмж болгож буй: