Turinys:

Temperatūros jutiklis (LM35) su ATmega32 ir LCD ekranu - Automatikos ventiliatoriaus valdymas: 6 žingsniai
Temperatūros jutiklis (LM35) su ATmega32 ir LCD ekranu - Automatikos ventiliatoriaus valdymas: 6 žingsniai

Video: Temperatūros jutiklis (LM35) su ATmega32 ir LCD ekranu - Automatikos ventiliatoriaus valdymas: 6 žingsniai

Video: Temperatūros jutiklis (LM35) su ATmega32 ir LCD ekranu - Automatikos ventiliatoriaus valdymas: 6 žingsniai
Video: LDmicro 20: I2C Liquid Crystal Display Resolved(Microcontroller PLC Ladder Programming with LDmicro) 2024, Lapkritis
Anonim
Temperatūros jutiklis (LM35) su ATmega32 ir LCD ekranu | Automatikos ventiliatoriaus valdymas
Temperatūros jutiklis (LM35) su ATmega32 ir LCD ekranu | Automatikos ventiliatoriaus valdymas

Temperatūros jutiklis (LM35) su ATmega32 ir LCD ekranu

1 žingsnis:

Šiame projekte jūs sužinosite, kaip sujungti temperatūros jutiklį (LM35) su AVR ATmega32 mikrovaldikliu ir LCD ekranu.

Prieš pradėdami šį projektą, turite sužinoti apie šiuos straipsnius

kaip pridėti LCD biblioteką avr studijoje | avr mikrovaldiklio pamoka

įvadas į AVC mikrovaldiklio ADC | pradedantiesiems

Temperatūros jutiklis (LM35) yra populiarus ir nebrangus temperatūros jutiklis. Vcc gali būti nuo 4V iki 20V, kaip nurodyta duomenų lape. Norėdami naudoti jutiklį, tiesiog prijunkite Vcc prie 5 V, GND prie įžeminimo ir išvesties prie vieno iš ADC (analoginio -skaitmeninio keitiklio kanalo).

Išvestis yra 10 milivoltų vienam laipsniui Celsijaus. Taigi, jei išvestis yra 310 mV, temperatūra yra 31 laipsnis C. Norėdami atlikti šį projektą, turėtumėte būti susipažinę su AVR ADC, taip pat naudodami skystųjų kristalų ekraną. įtampos atžvilgiu yra

5/1024 = maždaug 5,1 mV

Taigi, jei ADC rezultatas atitinka 5,1 mV, ty jei ADC rodmuo yra

10 x 5,1 mV = 51 mV

Galite perskaityti bet kurio ADC kanalo vertę naudodami funkciją adc_result (ch);

Kur ch yra kanalo numeris (0–5) ATmega8 atveju. Jei prijungėte LM35 išvestį prie ADC 0 kanalo, paskambinkite

adc_result0 = adc_read (0);

tai išsaugos dabartinį ADC rodmenį kintamajame adc_value. „Adc_value“duomenų tipas turėtų būti int, nes ADC vertė gali svyruoti nuo 0 iki 1023.

Kaip matėme, ADC rezultatai yra 5,1 mV koeficiento, o 1 laipsnio C atveju LM35 išėjimas yra 10 mV, taigi 2 vienetai ADC = 1 laipsnis.

Taigi, norėdami gauti temperatūrą, mes padalijame adc_value iš dviejų

temperatūra = adc_result0 /2;

Galiausiai mikrovaldiklis 16X2 raidžių ir skaitmenų skystųjų kristalų ekrane parodys temperatūrą laipsniais.

2 žingsnis: grandinės schema

Grandinės schema
Grandinės schema

3 žingsnis: programa

#ifndef F_CPU

#define F_CPU 1600000UL

#endif

#įtraukti

#įtraukti

#include "LCD/lcd.h"

void adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC įjungti ir iš anksto pakeisti 128

ADCSRA = (1 <

}

// skaityti adc reikšmę

uint16_t adc_read (uint8_t ch)

{

// pasirinkite atitinkamą kanalą 0 ~ 7

ch & = 0b00000111; // IR operacija su 7

ADMUX = (ADMUX & 0xF8) | ch;

// pradėti vieną konversiją

// ADSC parašykite „1“

ADCSRA | = (1 <

// laukti, kol konversija bus baigta

// ADSC vėl tampa „0“

tuo tarpu (ADCSRA & (1 <

grąžinimas (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

toli;

anglies buferis [10];

// inicijuoti adc ir lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // ŽEMYNĖ

lcd_clrscr ();

lcd_gotoxy (0, 0);

_delay_ms (50);

kol (1)

{

adc_result0 = adc_read (0); // skaityti adc reikšmę PA0

temp = adc_result0/2.01; // rasti temperatūrą

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buferis, 10); // rodyti ADC reikšmę

// lcd_puts (buferis);

lcd_gotoxy (0, 0);

itoa (temp, buferis, 10);

lcd_puts ("Temp ="); // rodyti temperatūrą

lcd_puts (buferis);

lcd_gotoxy (7, 0);

lcd_puts ("C");

toli = (1,8*temperatūra) +32;

lcd_gotoxy (9, 0);

itoa (toli, buferis, 10);

lcd_puts (buferis);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_delay_ms (1000);

jei (temperatūra> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

jei (temperatūra <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

4 žingsnis: paaiškinkite kodą

Tikiuosi, kad žinote, kad žinosite, kaip įjungti ADC ir kaip sujungti LCD su „Avr“mikrovaldikliu šiame kode, kai temperatūra yra aukštesnė nei 30 laipsnių, tada įjungtas ventiliatorius, o LED ekrane galite matyti VENTILIATORIUS ir kai temperatūra žemesnė nei 30, tada ventiliatorius yra išjungtas ir galite matyti FAN OFF

5 veiksmas: galite atsisiųsti visą projektą

Paspauskite čia

Rekomenduojamas: