Obsah:

Rozhraní teplotního senzoru (LM35) s ATmega32 a LCD displejem - Automatické ovládání ventilátoru: 6 kroků
Rozhraní teplotního senzoru (LM35) s ATmega32 a LCD displejem - Automatické ovládání ventilátoru: 6 kroků

Video: Rozhraní teplotního senzoru (LM35) s ATmega32 a LCD displejem - Automatické ovládání ventilátoru: 6 kroků

Video: Rozhraní teplotního senzoru (LM35) s ATmega32 a LCD displejem - Automatické ovládání ventilátoru: 6 kroků
Video: LDmicro 11: Serial LCD Temperature Controller (Microcontroller PLC Ladder Programming with LDmicro) 2024, Červenec
Anonim
Rozhraní teplotního senzoru (LM35) s ATmega32 a LCD displejem | Automatické ovládání ventilátoru
Rozhraní teplotního senzoru (LM35) s ATmega32 a LCD displejem | Automatické ovládání ventilátoru

Rozhraní teplotního senzoru (LM35) s ATmega32 a LCD displejem

Krok 1:

V tomto projektu se naučíte, jak propojit teplotní senzor (LM35) s mikrokontrolérem AVR ATmega32 a LCD displejem.

Před tímto projektem musíte znát Informace o následujících článcích

jak přidat knihovnu lcd v avr studiu | návod k mikrokontroléru avr

úvod do ADC v mikrokontroléru AVR | pro začátečníky

Teplotní senzor (LM35) je populární a levný teplotní senzor. Vcc může být od 4V do 20V, jak je uvedeno v datovém listu. Chcete -li použít senzor, jednoduše připojte Vcc k 5V, GND k uzemnění a Out k jednomu z ADC (kanál analogového na digitální převodník).

Výstup je 10 mil. Voltů na stupeň Celsia. Pokud je tedy výstup 310 mV, pak je teplota 31 stupňů C. K provedení tohoto projektu byste měli být obeznámeni s ADC AVR a také pomocí LCD So. Rozlišení AVRs ADC je 10bit a pro referenční napětí používáte 5V, takže rozlišení z hlediska napětí je

5/1024 = přibližně 5,1 mV

Pokud tedy výsledek ADC odpovídá 5,1 mV, tj. Pokud je čtení ADC

10 x 5,1 mV = 51 mV

Můžete přečíst hodnotu jakéhokoli kanálu ADC pomocí funkce adc_result (ch);

Kde ch je číslo kanálu (0-5) v případě ATmega8. Pokud jste připojili výstup LM35 k ADC kanálu 0, zavolejte

adc_result0 = adc_read (0);

toto uloží aktuální čtení ADC do proměnné adc_value. Datový typ adc_value by měl být int, protože hodnota ADC se může pohybovat od 0-1023.

Jak jsme viděli, výsledky ADC jsou faktorem 5,1 mV a pro 1 stupeň C je výstup LM35 10 mV, tedy 2 jednotky ADC = 1 stupeň.

Abychom získali teplotu, vydělíme hodnotu adc_value dvěma

teplota = adc_result0 /2;

Nakonec mikrokontrolér zobrazí teplotu ve stupních Celsia na alfanumerickém LCD displeji 16X2.

Krok 2: Schéma zapojení

Kruhový diagram
Kruhový diagram

Krok 3: Program

#ifndef F_CPU

#define F_CPU 1600000UL

#endif

#zahrnout

#zahrnout

#include "LCD/lcd.h"

neplatné adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Enable and prescaler of 128

ADCSRA = (1 <

}

// číst hodnotu adc

uint16_t adc_read (uint8_t ch)

{

// vyberte odpovídající kanál 0 ~ 7

ch & = 0b00000111; // A operace se 7

ADMUX = (ADMUX & 0xF8) | ch;

// zahájení jednotlivé konverze

// napište '1' do ADSC

ADCSRA | = (1 <

// počkejte na dokončení převodu

// ADSC se opět změní na '0'

while (ADCSRA & (1 <

návrat (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int daleko;

char buffer [10];

// inicializace adc a lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); //KURZOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_delay_ms (50);

zatímco (1)

{

adc_result0 = adc_read (0); // čtení hodnoty adc na PA0

temp = adc_result0/2,01; // zjištění teploty

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buffer, 10); // zobrazení hodnoty ADC

// lcd_puts (buffer);

lcd_gotoxy (0, 0);

itoa (teplota, vyrovnávací paměť, 10);

lcd_puts ("Teplota ="); // zobrazení teploty

lcd_puts (vyrovnávací paměť);

lcd_gotoxy (7, 0);

lcd_puts ("C");

far = (1,8*teplota) +32;

lcd_gotoxy (9, 0);

itoa (far, buffer, 10);

lcd_puts (vyrovnávací paměť);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_delay_ms (1000);

pokud (teplota> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

if (teplota <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("VENTILÁTOR VYPNUT");

PORTB = (0 <

}

}

}

Krok 4: Vysvětlení kódu

Doufám, že víte, že budete vědět, jak povolit ADC a jak propojit LCD s mikrokontrolérem Avr v tomto kódu, když je teplota více než 30 stupňů, pak je ventilátor zapnutý a na LED displeji můžete vidět FAN ON a když teplota menší než 30, pak ventilátor je vypnuto a můžete vidět VENTILÁTOR VYPNUT

Krok 5: Můžete si stáhnout celý projekt

Klikněte zde

Doporučuje: