Мазмуну:

Температура сенсору (LM35) ATmega32 жана ЖК дисплейи менен интерфейс - Automatics Fan Control: 6 кадам
Температура сенсору (LM35) ATmega32 жана ЖК дисплейи менен интерфейс - Automatics Fan Control: 6 кадам

Video: Температура сенсору (LM35) ATmega32 жана ЖК дисплейи менен интерфейс - Automatics Fan Control: 6 кадам

Video: Температура сенсору (LM35) ATmega32 жана ЖК дисплейи менен интерфейс - Automatics Fan Control: 6 кадам
Video: Термометр на LM35 (Temperature sensor LM35) BASCOM AVR 2024, Июль
Anonim
Температура сенсору (LM35) ATmega32 жана ЖК дисплейи менен интерфейс | Автоматика күйөрмандарды башкаруу
Температура сенсору (LM35) ATmega32 жана ЖК дисплейи менен интерфейс | Автоматика күйөрмандарды башкаруу

Температура сенсору (LM35) ATmega32 жана ЖК дисплейи менен интерфейс

1 кадам:

Бул долбоордо сиз температура сенсорун (LM35) AVR ATmega32 микроконтроллери жана ЖК дисплейи менен кантип байланыштырууну үйрөнөсүз.

Бул долбоорго чейин төмөнкү макалалар жөнүндө билишиңиз керек

avr студиясында LCD китепканасын кантип кошуу керек | avr микроконтроллер үйрөткүчү

AVR микроконтроллеринде ADCге киришүү | баштагандар үчүн

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

Продукт бир градуска 10 МиллиВольт. Демек, эгерде чыгым 310 мВ болсо, анда температура 31 градус C. Бул долбоорду ишке ашыруу үчүн сиз AVRs ADC менен тааныш болушуңуз керек, ошондой эле LCDди колдонушуңуз керек. чыңалуу боюнча

5/1024 = 5.1мВ болжол менен

Ошентип, эгерде ADCдин натыйжасы 5.1mVге туура келсе, б.а. эгерде ADC окуу болсо

10 x 5.1mV = 51mV

Сиз adc_result (ch) функциясын колдонуп, каалаган ADC каналынын маанисин окуй аласыз;

Бул жерде ch-ATmega8 учурда каналдын номери (0-5). Эгерде сиз LM35ти ADC каналына 0 туташтырсаңыз, анда чалыңыз

adc_result0 = adc_read (0);

бул учурдагы ADC окуусун adc_value өзгөрмөсүндө сактайт. ADC_value маалыматтын түрү int болушу керек, анткени ADC мааниси 0-1023 чейин өзгөрүшү мүмкүн.

Биз көргөндөй, ADC жыйынтыктары 5.1мВ фактордо жана 1 градус С үчүн LM35тин чыгышы 10мВ, ошондуктан ADCдин 2 бирдиги = 1 даража.

Ошентип, температураны алуу үчүн adc_value'ны экиге бөлөбүз

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

Акырында микроконтроллер температураны 16X2 тамга -сандык ЖКда градус даражасында көрсөтөт.

2 -кадам: Райондук диаграмма

Райондук диаграмма
Райондук диаграмма

3 -кадам: Программа

#ifndef F_CPU

#define 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; // ЖАНА 7 менен операция

ADMUX = (ADMUX & 0xF8) | ч;

// жалгыз өзгөртүүнү баштоо

// ADSCке '1' деп жазыңыз

ADCSRA | = (1 <

// конверсиянын бүтүшүн күтө туруңуз

// ADSC кайра '0' болуп калат

жатканда (ADCSRA & (1 <

кайтуу (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int far;

char буфер [10];

// adc жана lcd баштоо

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // КУРСОР

lcd_clrscr ();

lcd_gotoxy (0, 0);

_delay_ms (50);

учурда (1)

{

adc_result0 = adc_read (0); // PA0да adc маанисин окуңуз

темп = 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");

far = (1.8*temp) +32;

lcd_gotoxy (9, 0);

itoa (алыс, буфер, 10);

lcd_puts (буфер);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_delay_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 -кадам: Кодду түшүндүрүңүз

Мен билем деп үмүттөнөм, сиз билесиз, бул коддо ADCди кантип иштетүү керектигин жана Avr Microcontroller менен кантип интерфейс кылууну, эгерде температура 30 градустан ашса, желдеткич күйгүзүлгөндө жана сиз дисплейде FAN ON күйгүзүлгөндө жана температура 30дан азыраак болгондо көрө аласыз өчүк жана сиз FAN OFF көрө аласыз

5 -кадам: Толук долбоорду жүктөп алсаңыз болот

Бул жерди басыңыз

Сунушталууда: