Съдържание:

Температурен сензор (LM35) Свързан с ATmega32 и LCD дисплей - Автоматично управление на вентилатора: 6 стъпки
Температурен сензор (LM35) Свързан с ATmega32 и LCD дисплей - Автоматично управление на вентилатора: 6 стъпки

Видео: Температурен сензор (LM35) Свързан с ATmega32 и LCD дисплей - Автоматично управление на вентилатора: 6 стъпки

Видео: Температурен сензор (LM35) Свързан с ATmega32 и LCD дисплей - Автоматично управление на вентилатора: 6 стъпки
Видео: lm35 Temperature sensor reading displayed on OLED 2024, Юли
Anonim
Температурен сензор (LM35) Свързан с ATmega32 и LCD дисплей | Автоматично управление на вентилатора
Температурен сензор (LM35) Свързан с ATmega32 и LCD дисплей | Автоматично управление на вентилатора

Температурен сензор (LM35) Свързване с ATmega32 и LCD дисплей

Етап 1:

В този проект ще научите как да взаимодействате с температурен сензор (LM35) с AVR ATmega32 микроконтролер и LCD дисплей.

Преди този проект трябва да научите за следните статии

как да добавите LCD библиотека в avr studio | avr микроконтролер урок

въведение в ADC в AVR микроконтролер | за начинаещи

Температурен сензор (LM35) е популярен и евтин температурен сензор. Vcc може да бъде от 4V до 20V, както е посочено в листа с данни. За да използвате сензора, просто свържете Vcc към 5V, GND към земя и изход към един от ADC (аналогово -цифров конвертор).

Изходът е 10 миливолта на градус по Целзий. Така че, ако изходът е 310 mV, тогава температурата е 31 градуса C. За да направите този проект, трябва да сте запознати с ADC на AVR и също така да използвате LCD. по отношение на напрежението е

5/1024 = приблизително 5,1 mV

Така че, ако резултатът от ADC съответства на 5.1mV, т.е. ако показанието на ADC е

10 x 5,1 mV = 51 mV

Можете да прочетете стойността на всеки ADC канал, като използвате функцията adc_result (ch);

Където ch е номер на канал (0-5) в случай на ATmega8. Ако сте свързали изхода на LM35 към ADC канал 0, тогава се обадете

adc_result0 = adc_read (0);

това ще съхранява текущото отчитане на ADC в променлива adc_value. Типът данни на adc_value трябва да бъде int, тъй като стойността на ADC може да варира от 0-1023.

Както видяхме, резултатите от ADC са с фактор 5.1mV и за 1 градус C изходът на LM35 е 10mV, така че 2 единици ADC = 1 градус.

За да получим температурата, разделяме adc_value на две

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

Накрая микроконтролерът ще покаже температурата в градуси по Целзий на буквено -цифровия 16X2 LCD.

Стъпка 2: Електрическа схема

Електрическа схема
Електрическа схема

Стъпка 3: Програма

#ifndef F_CPU

#дефинирайте F_CPU 1600000UL

#endif

#включва

#включва

#include "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;

// стартиране на единично преобразуване

// напишете '1' на ADSC

ADCSRA | = (1 <

// изчакайте завършването на преобразуването

// ADSC отново става „0“

докато (ADCSRA & (1 <

връщане (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int далеч;

буфер за въглища [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); // прочетете стойността на ADC при PA0

temp = adc_result0/2.01; // намиране на температурата

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, буфер, 10); // показва стойността на ADC

// lcd_puts (буфер);

lcd_gotoxy (0, 0);

itoa (temp, буфер, 10);

lcd_puts ("Темп ="); // показване на температурата

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");

_ закъснение_ms (1000);

ако (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

ако (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Стъпка 4: Обяснете кода

Надявам се, че знаете, че ще знаете как да активирате ADC и как да взаимодействате LCD с Avr микроконтролер в този код, когато температурата е повече от 30 градуса, тогава вентилаторът е включен и можете да видите на LED дисплея FAN ON и когато температурата е по -малка от 30, тогава вентилаторът е изключен и можете да видите FAN OFF

Стъпка 5: Можете да изтеглите целия проект

Натисни тук

Препоръчано: