Tartalomjegyzék:

Hőmérséklet -érzékelő (LM35) interfész ATmega32 és LCD kijelzővel - Automata ventilátor vezérlés: 6 lépés
Hőmérséklet -érzékelő (LM35) interfész ATmega32 és LCD kijelzővel - Automata ventilátor vezérlés: 6 lépés

Videó: Hőmérséklet -érzékelő (LM35) interfész ATmega32 és LCD kijelzővel - Automata ventilátor vezérlés: 6 lépés

Videó: Hőmérséklet -érzékelő (LM35) interfész ATmega32 és LCD kijelzővel - Automata ventilátor vezérlés: 6 lépés
Videó: #16 DT 06 WIFI Android Modbus HMI | Внешний ПЛК Arduino 2024, November
Anonim
Hőmérséklet -érzékelő (LM35) csatlakozás ATmega32 és LCD kijelzővel | Automata ventilátor vezérlés
Hőmérséklet -érzékelő (LM35) csatlakozás ATmega32 és LCD kijelzővel | Automata ventilátor vezérlés

Hőmérséklet -érzékelő (LM35) Interfész ATmega32 és LCD kijelzővel

1. lépés:

Ebben a projektben megtanulhatja, hogyan kapcsolhatja össze a hőmérséklet -érzékelőt (LM35) az AVR ATmega32 mikrokontrollerrel és LCD kijelzővel.

A projekt előtt meg kell tanulnia a következő cikkeket

hogyan adjunk hozzá lcd könyvtárat az avr stúdióban | avr mikrokontroller bemutató

bevezetés az ADC -hez az AVR mikrokontrollerben | kezdőknek

A hőmérséklet -érzékelő (LM35) népszerű és olcsó hőmérséklet -érzékelő. A Vcc lehet 4V -tól 20V -ig az adatlap szerint. Az érzékelő használatához egyszerűen csatlakoztassa a Vcc -t 5V -ra, a GND -t a földre és a kimenetet az egyik ADC -re (analóg -digitális átalakító csatorna).

A teljesítmény 10 MilliVolt / Celsius fok. Tehát ha a kimenet 310 mV, akkor a hőmérséklet 31 fok. Ennek a projektnek a megvalósításához ismernie kell az AVR -k ADC -jét és az LCD -t is. Tehát az AVR -ek ADC felbontása 10 bites, és a referenciafeszültséghez 5 V -ot használ, így a felbontás feszültség szempontjából az

5/1024 = körülbelül 5,1 mV

Tehát ha az ADC eredménye megfelel 5,1 mV -nak, azaz ha az ADC leolvasása

10 x 5,1 mV = 51 mV

Bármely ADC csatorna értékét leolvashatja az adc_result (ch) függvénnyel;

Ahol ch a csatorna száma (0-5) ATmega8 esetén. Ha az LM35 kimenetét az ADC 0 csatornához csatlakoztatta, hívjon

adc_result0 = adc_read (0);

ez az ADC aktuális értékét az adc_value változóban tárolja. Az adc_value adattípusnak intnek kell lennie, mivel az ADC értéke 0-1023 között lehet.

Amint láttuk, az ADC eredmények 5,1 mV faktorban vannak, és 1 C fok esetén az LM35 kimenete 10 mV, tehát 2 egység ADC = 1 fok.

Tehát, hogy megkapjuk a hőmérsékletet, elosztjuk az adc_value értéket kettővel

hőmérséklet = adc_result0 /2;

Végül a mikrokontroller a hőmérsékletet Celsius fokban jeleníti meg a 16X2 alfanumerikus LCD -n.

2. lépés: Áramköri diagram

Kördiagramm
Kördiagramm

3. lépés: Programozás

#ifndef F_CPU

#define F_CPU 1600000UL

#endif

#befoglalni

#befoglalni

#include "LCD/lcd.h"

void adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC 128 engedélyezése és előbeállítása

ADCSRA = (1 <

}

// adc érték olvasása

uint16_t adc_read (uint8_t ch)

{

// válassza ki a megfelelő csatornát 0 ~ 7

ch & = 0b00000111; // ÉS művelet 7 -el

ADMUX = (ADMUX & 0xF8) | ch;

// indítsa el az egyetlen konverziót

// írjon 1 -et az ADSC -hez

ADCSRA | = (1 <

// várja meg a konverzió befejezését

// Az ADSC ismét "0" lesz

míg (ADCSRA & (1 <

visszatérés (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int messze;

szénpuffer [10];

// inicializálja az adc -t és az lcd -t

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); //KURZOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_késés_ms (50);

míg (1)

{

adc_result0 = adc_read (0); // olvassa el az adc értéket a PA0 -n

temp = adc_result0/2.01; // a hőmérséklet megtalálása

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buffer, 10); // ADC érték megjelenítése

// lcd_puts (puffer);

lcd_gotoxy (0, 0);

itoa (temp, puffer, 10);

lcd_puts ("Temp ="); // hőmérséklet kijelzése

lcd_puts (puffer);

lcd_gotoxy (7, 0);

lcd_puts ("C");

távol = (1,8*hőmérséklet) +32;

lcd_gotoxy (9, 0);

itoa (messze, puffer, 10);

lcd_puts (puffer);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_delay_ms (1000);

ha (hőmérséklet> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("VENTILÁTOR BE");

PORTB = (1 <

}

ha (hőmérséklet <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

4. lépés: Magyarázza el a kódot

Remélem, tudja, hogy tudja, hogyan lehet engedélyezni az ADC -t és hogyan kell az LCD -t az Avr mikrokontrollerrel csatlakoztatni ebben a kódban, ha a hőmérséklet meghaladja a 30 fokot, majd a ventilátor be van kapcsolva, és a LED kijelzőn látható a VENTILÁTOR, és amikor a hőmérséklet alacsonyabb, mint 30, akkor a ventilátor ki van kapcsolva, és láthatja, hogy VENTILÁTOR KI

5. lépés: Letöltheti a teljes projektet

Kattints ide

Ajánlott: