Sisukord:

Temperatuuriandur (LM35) liidesega ATmega32 ja LCD -ekraaniga - Ventilaatori automaatika: 6 sammu
Temperatuuriandur (LM35) liidesega ATmega32 ja LCD -ekraaniga - Ventilaatori automaatika: 6 sammu

Video: Temperatuuriandur (LM35) liidesega ATmega32 ja LCD -ekraaniga - Ventilaatori automaatika: 6 sammu

Video: Temperatuuriandur (LM35) liidesega ATmega32 ja LCD -ekraaniga - Ventilaatori automaatika: 6 sammu
Video: LDmicro 20: решен вопрос жидкокристаллического дисплея I2C (программирование ПЛК микроконтроллера с помощью LDmicro) 2024, Juuli
Anonim
Temperatuuriandur (LM35) liidesega ATmega32 ja LCD -ekraaniga | Ventilaatori automaatika juhtimine
Temperatuuriandur (LM35) liidesega ATmega32 ja LCD -ekraaniga | Ventilaatori automaatika juhtimine

Temperatuuriandur (LM35) liidesega ATmega32 ja LCD -ekraaniga

Samm 1:

Selles projektis saate teada, kuidas liita temperatuuriandur (LM35) AVR ATmega32 mikrokontrolleri ja LCD -ekraaniga.

Enne seda projekti peate tutvuma järgmiste artiklitega

kuidas lisada LCD raamatukogu avr stuudiosse | avr mikrokontrolleri õpetus

sissejuhatus AVC mikrokontrolleri ADC -sse | algajatele

Temperatuuriandur (LM35) on populaarne ja madala hinnaga temperatuuriandur. Vcc võib olla 4V kuni 20V, nagu on näidatud andmelehel. Anduri kasutamiseks ühendage lihtsalt Vcc 5V, GND maandusega ja väljund ühe ADC -ga (analoog -digitaalmuunduri kanal).

Väljund on 10Millivolt kraadi Celsiuse kohta. Seega, kui väljund on 310 mV, on temperatuur 31 kraadi C. Selle projekti tegemiseks peaksite olema tuttav AVR -ide ADC -ga ja kasutama ka LCD -d. Nii et AVR -ide ADC eraldusvõime on 10 bitti ja võrdluspinge puhul kasutate 5 V pinge poolest on

5/1024 = ligikaudu 5,1 mV

Nii et kui ADC tulemus vastab 5,1 mV, st kui ADC näit on

10 x 5,1 mV = 51 mV

Funktsiooni adc_result (ch) abil saate lugeda mis tahes ADC kanali väärtust;

Kus ch on kanali number (0–5) ATmega8 korral. Kui olete ühendanud LM35 väljundi ADC kanaliga 0, helistage

adc_result0 = adc_read (0);

see salvestab praeguse ADC näidu muutuja adc_value. Andmetüüp adc_value peaks olema int, kuna ADC väärtus võib olla vahemikus 0–1023.

Nagu nägime, on ADC tulemused 5,1 mV ja 1 kraadi C korral on LM35 väljund 10 mV, seega 2 ühikut ADC = 1 kraad.

Nii et temperatuuri saamiseks jagame adc_value kahega

temperatuur = adc_result0 /2;

Lõpuks kuvab mikrokontroller 16X2 tähtnumbrilisel LCD -ekraanil temperatuuri Celsiuse kraadides.

Samm: vooluahela skeem

Lülitusskeem
Lülitusskeem

3. samm: programmeerimine

#ifndef F_CPU

#define F_CPU 1600000UL

#endif

#kaasake

#kaasake

#include "LCD/lcd.h"

tühine adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC lubamine ja eelseadistamine 128

ADCSRA = (1 <

}

// lugeda adc väärtust

uint16_t adc_read (uint8_t ch)

{

// valige vastav kanal 0 ~ 7

ch & = 0b00000111; // JA operatsioon 7 -ga

ADMUX = (ADMUX & 0xF8) | ch;

// alusta ühe konversiooni

// kirjutage ADSC -le „1”

ADCSRA | = (1 <

// oodake konversiooni lõpuleviimist

// ADSC muutub uuesti '0'

samas (ADCSRA & (1 <

tagasipöördumine (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int kaugel;

söe puhver [10];

// initsialiseerida adc ja lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // KURSOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_viivitus_ms (50);

samas (1)

{

adc_result0 = adc_read (0); // loe ADC väärtust PA0 -l

temp = adc_result0/2.01; // temperatuuri leidmine

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, puhver, 10); // kuvab ADC väärtuse

// lcd_puts (puhver);

lcd_gotoxy (0, 0);

itoa (temp, puhver, 10);

lcd_puts ("Temp ="); // kuvab temperatuuri

lcd_puts (puhver);

lcd_gotoxy (7, 0);

lcd_puts ("C");

kauge = (1,8*temp) +32;

lcd_gotoxy (9, 0);

itoa (kauge, puhver, 10);

lcd_puts (puhver);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_ viivitus_ms (1000);

kui (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

kui (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Samm: selgitage koodi

Loodan, et teate, et teate, kuidas selles koodis lubada ADC ja kuidas liidestada LCD -d Avr -mikrokontrolleriga, kui temperatuur on üle 30 kraadi, siis ventilaator on sisse lülitatud ja LED -ekraanil on näha ventilaator sisse lülitatud ja kui temperatuur on alla 30, siis ventilaator on välja lülitatud ja näete FAN OFF

Samm: saate kogu projekti alla laadida

Kliki siia

Soovitan: