Мазмұны:

ATmega32 және СКД дисплейі бар температура сенсоры (LM35) - Автоматты желдеткішті басқару: 6 қадам
ATmega32 және СКД дисплейі бар температура сенсоры (LM35) - Автоматты желдеткішті басқару: 6 қадам

Бейне: ATmega32 және СКД дисплейі бар температура сенсоры (LM35) - Автоматты желдеткішті басқару: 6 қадам

Бейне: ATmega32 және СКД дисплейі бар температура сенсоры (LM35) - Автоматты желдеткішті басқару: 6 қадам
Бейне: Собираем набор ATmega8, программатор для прошивки, AVR 2024, Шілде
Anonim
ATmega32 және СКД дисплейі бар температура сенсоры (LM35) | Автоматты желдеткішті басқару
ATmega32 және СКД дисплейі бар температура сенсоры (LM35) | Автоматты желдеткішті басқару

Температура сенсоры (LM35) ATmega32 және СКД дисплеймен байланыс

1 -қадам:

Бұл жобада сіз температура сенсорымен (LM35) AVR ATmega32 микроконтроллері мен СКД дисплейімен қалай байланысуға болатынын білесіз.

Бұл жобаны бастамас бұрын келесі мақалалар туралы білу қажет

avr студиясында LCD кітапханасын қалай қосуға болады | avr микроконтроллер оқулығы

AVR микроконтроллерінде ADC -ке кіріспе | жаңадан бастаушыларға арналған

Температура сенсоры (LM35) - танымал және арзан температура сенсоры. Деректер кестесінде көрсетілгендей VC 4В -тан 20В -қа дейін болуы мүмкін. Сенсорды қолдану үшін Vcc -ты 5В -қа, GND -ге жерге және шығуды ADC -ге қосыңыз (аналогты цифрлық түрлендіргіш арнасы).

Өнімділік - бір градусқа 10 мильВольт. Егер шығыс 310 мВ болса, онда температура 31 градус. Бұл жобаны жасау үшін сіз AVR ADC -мен таныс болуыңыз керек, сонымен қатар LCD -ді қолданыңыз. кернеу бойынша

Шамамен 5/1024 = 5.1мВ

Егер ADC нәтижесі 5.1 мВ сәйкес болса, яғни егер ADC көрсеткіші болса

10 x 5.1мВ = 51мВ

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мВ, сондықтан 2 бірлік ADC = 1 градус.

Сонымен, температураны алу үшін adc_value мәнін екіге бөлеміз

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

Соңында микроконтроллер 16X2 әріптік -сандық СКД -де температураны градуспен көрсетеді.

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

ADMUX = (ADMUX & 0xF8) | ch;

// бір түрлендіруді бастау

// ADSC -ке '1' жазыңыз

ADCSRA | = (1 <

// конверсияның аяқталуын күтіңіз

// ADSC қайтадан '0' болады

while (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);

_кешіктіру (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»);

_кешіктіру (1000);

егер (температура> 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts («Желдеткіш қосулы»);

PORTB = (1 <

}

егер (температура <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts («ЖЕЛДЕТКІШ ӨШІРУ»);

PORTB = (0 <

}

}

}

4 -қадам: кодты түсіндіріңіз

Сіз бұл кодта ADC қосуды және Авр микроконтроллерінің көмегімен СКД -мен қалай байланысуға болатынын білесіз деп білемін деп үміттенемін, егер температура 30 градустан жоғары болса, онда желдеткіш қосылады, ал сіз дисплейде FAN ҚОСУЛЫ қосулы, ал температура 30 -дан төмен болғанда желдеткішті көре аласыз. өшірулі және сіз ЖЕЛДЕТКІШТІ өшіруді көре аласыз

5 -қадам: Сіз толық жобаны жүктей аласыз

Мында басыңыз

Ұсынылған: