Satura rādītājs:

Temperatūras sensors (LM35) ar ATmega32 un LCD displeju - Automātiskā ventilatora vadība: 6 soļi
Temperatūras sensors (LM35) ar ATmega32 un LCD displeju - Automātiskā ventilatora vadība: 6 soļi

Video: Temperatūras sensors (LM35) ar ATmega32 un LCD displeju - Automātiskā ventilatora vadība: 6 soļi

Video: Temperatūras sensors (LM35) ar ATmega32 un LCD displeju - Automātiskā ventilatora vadība: 6 soļi
Video: Использование термопары MAX6675 с LCD1602 и Arduino 2024, Novembris
Anonim
Temperatūras sensors (LM35) ar ATmega32 un LCD displeju | Automātiskā ventilatora vadība
Temperatūras sensors (LM35) ar ATmega32 un LCD displeju | Automātiskā ventilatora vadība

Temperatūras sensors (LM35), saskarne ar ATmega32 un LCD displeju

1. darbība:

Šajā projektā jūs uzzināsit, kā sasaistīt temperatūras sensoru (LM35) ar AVR ATmega32 mikrokontrolleru un LCD displeju.

Pirms šī projekta jums jāzina Uzziniet par šādiem rakstiem

kā pievienot lcd bibliotēku avr studijā | avr mikrokontrollera apmācība

ievads ADC AVR mikrokontrollerī | iesācējiem

Temperatūras sensors (LM35) ir populārs un lēts temperatūras sensors. Vcc var būt no 4V līdz 20V, kā norādīts datu lapā. Lai izmantotu sensoru, vienkārši pievienojiet Vcc pie 5V, GND ar zemi un izeju pie viena no ADC (analogā digitālā pārveidotāja kanāls).

Izeja ir 10MilliVolts uz vienu grādu pēc Celsija. Tātad, ja izeja ir 310 mV, tad temperatūra ir 31 grāds C. Lai izveidotu šo projektu, jums vajadzētu iepazīties ar AVR ADC un arī izmantot LCD. Tātad AVR izšķirtspēja ADC ir 10 bitu, un atsauces spriegumam jūs izmantojat 5 V, tāpēc izšķirtspēja sprieguma ziņā ir

5/1024 = aptuveni 5,1 mV

Tātad, ja ADC rezultāts atbilst 5,1 mV, ti, ja ADC nolasījums ir

10 x 5,1 mV = 51 mV

Jūs varat nolasīt jebkura ADC kanāla vērtību, izmantojot funkciju adc_result (ch);

Kur ch ir kanāla numurs (0–5) ATmega8 gadījumā. Ja esat pievienojis LM35 izeju ADC 0 kanālam, zvaniet

adc_result0 = adc_read (0);

tas saglabās pašreizējo ADC rādījumu mainīgajā adc_value. Datu tipam adc_value jābūt int, jo ADC vērtība var būt no 0 līdz 1023.

Kā redzējām, ADC rezultāti ir 5,1 mV koeficients, un 1 grādam C LM35 izeja ir 10 mV, tātad 2 ADC vienības = 1 grāds.

Tātad, lai iegūtu temperatūru, mēs adc_value dalām ar diviem

temperatūra = adc_result0 /2;

Visbeidzot mikrokontrolleris 16X2 burtciparu LCD ekrānā parādīs temperatūru grādos pēc Celsija.

2. darbība: shēmas shēma

Ķēdes diagramma
Ķēdes diagramma

3. solis: programma

#ifndef F_CPU

#define F_CPU 1600000UL

#endif

#iekļaut

#iekļaut

#include "LCD/lcd.h"

void adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Iespējot un prescaler no 128

ADCSRA = (1 <

}

// lasīt adc vērtību

uint16_t adc_read (uint8_t ch)

{

// atlasiet atbilstošo kanālu 0 ~ 7

ch & = 0b00000111; // UN operācija ar 7

ADMUX = (ADMUX & 0xF8) | ch;

// sākt vienu reklāmguvumu

// rakstiet “1” uz ADSC

ADCSRA | = (1 <

// pagaidiet, līdz konversija tiks pabeigta

// ADSC atkal kļūst par “0”

kamēr (ADCSRA & (1 <

atgriešanās (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int tālu;

ogļu buferšķīdums [10];

// inicializēt adc un lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // KURSORS

lcd_clrscr ();

lcd_gotoxy (0, 0);

_kavēšanās_ms (50);

kamēr (1)

{

adc_result0 = adc_read (0); // lasīt adc vērtību PA0

temp = adc_result0/2.01; // temperatūras atrašana

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buferis, 10); // parādīt ADC vērtību

// lcd_puts (buferis);

lcd_gotoxy (0, 0);

itoa (temp, buferšķīdums, 10);

lcd_puts ("Temp ="); // displeja temperatūra

lcd_puts (buferis);

lcd_gotoxy (7, 0);

lcd_puts ("C");

tālu = (1,8*temperatūra) +32;

lcd_gotoxy (9, 0);

itoa (tālu, buferis, 10);

lcd_puts (buferis);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_kavēšanās_ms (1000);

ja (temperatūra> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

ja (temperatūra <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

4. darbība: izskaidrojiet kodu

Es ceru, ka jūs zināt, ka zināsit, kā šajā kodā iespējot ADC un kā saslēgt LCD ar Avr mikrokontrolleru, ja temperatūra ir augstāka par 30 grādiem, tad ventilators ir ieslēgts, un uz displeja Ventilators ir redzams un kad temperatūra ir zemāka par 30, tad ventilators ir izslēgts, un jūs varat redzēt FAN OFF

5. darbība. Jūs varat lejupielādēt pilnu projektu

Noklikšķiniet šeit

Ieteicams: