Orodha ya maudhui:

Sensorer ya Joto (LM35) Kuingiliana na ATmega32 na Uonyesho wa LCD - Udhibiti wa Mashabiki wa moja kwa moja: Hatua 6
Sensorer ya Joto (LM35) Kuingiliana na ATmega32 na Uonyesho wa LCD - Udhibiti wa Mashabiki wa moja kwa moja: Hatua 6

Video: Sensorer ya Joto (LM35) Kuingiliana na ATmega32 na Uonyesho wa LCD - Udhibiti wa Mashabiki wa moja kwa moja: Hatua 6

Video: Sensorer ya Joto (LM35) Kuingiliana na ATmega32 na Uonyesho wa LCD - Udhibiti wa Mashabiki wa moja kwa moja: Hatua 6
Video: Lesson 17: How to interrupt a delay in Arduino and Light Dependant Resistor LDR | Robojax 2024, Novemba
Anonim
Sensorer ya Joto (LM35) Kuingiliana na ATmega32 na Uonyesho wa LCD | Udhibiti wa Mashabiki wa moja kwa moja
Sensorer ya Joto (LM35) Kuingiliana na ATmega32 na Uonyesho wa LCD | Udhibiti wa Mashabiki wa moja kwa moja

Sensorer ya Joto (LM35) Kuingiliana na ATmega32 na Uonyesho wa LCD

Hatua ya 1:

Katika mradi huu, Utajifunza Jinsi ya kuunganisha Kihisi cha Joto (LM35) na AVR ATmega32 Microcontroller na onyesho la LCD.

Kabla ya Mradi huu lazima uhitaji Jifunze juu ya nakala zifuatazo

jinsi ya kuongeza maktaba ya lcd katika studio ya avr | avr mafunzo ya microcontroller

kuanzishwa kwa ADC katika AVR Microcontroller | kwa Kompyuta

Sensorer ya Joto (LM35) ni sensorer maarufu na ya bei ya chini ya joto. Vcc inaweza kuwa kutoka 4V hadi 20V kama ilivyoainishwa na data ya data. Kutumia sensorer tu unganisha Vcc na 5V, GND hadi Ground na nje kwa moja ya ADC (analog kwa kituo cha kubadilisha fedha cha dijiti).

Pato ni 10MilliVolts kwa digrii ya digrii. Kwa hivyo ikiwa pato ni 310 mV basi joto ni digrii 31 C. Ili kufanya mradi huu unapaswa kufahamiana na ADC ya AVR na pia kutumia LCD Kwa hivyo azimio la AVRs ADC ni 10bit na kwa voltage ya kumbukumbu unatumia 5V kwa hivyo azimio kwa suala la voltage ni

5/1024 = 5.1mV takriban

Kwa hivyo ikiwa matokeo ya ADC yanalingana na 5.1mV i.e. ikiwa kusoma kwa ADC ni

10 x 5.1mV = 51mV

Unaweza kusoma thamani ya kituo chochote cha ADC ukitumia kazi adc_result (ch);

Ambapo ch ni nambari ya kituo (0-5) ikiwa ATmega8. Ikiwa umeunganisha seti ya LM35 kwenye kituo cha ADC 0 kisha piga simu

adc_result0 = adc_read (0);

hii itahifadhi usomaji wa sasa wa ADC katika adc_value inayobadilika. Aina ya data ya adc_value inapaswa kuwa int kwani dhamana ya ADC inaweza kuanzia 0-1023.

Kama tulivyoona matokeo ya ADC yanafikia 5.1mV na kwa digrii 1 C pato la LM35 ni 10mV, Kwa hivyo vitengo 2 vya ADC = digrii 1.

Kwa hivyo kupata joto tunagawanya adc_value na mbili

joto = adc_result0 / 2;

Mwishowe mdhibiti mdogo ataonyesha joto katika digrii ya digrii katika LCD ya alphanumeric ya 16X2.

Hatua ya 2: Mchoro wa Mzunguko

Mchoro wa Mzunguko
Mchoro wa Mzunguko

Hatua ya 3: Programu

#fndef F_CPU

#fafanua F_CPU 1600000UL

# mwisho

# pamoja

# pamoja

# pamoja na "LCD / lcd.h"

batili adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Wezesha na daktari wa 128

ADCSRA = (1 <

}

// soma adc value

uint16_t adc_read (uint8_t ch)

{

// chagua kituo kinacholingana 0 ~ 7

ch & = 0b00000111; // NA operesheni na 7

ADMUX = (ADMUX & 0xF8) | ch;

// kuanza ubadilishaji mmoja

// andika '1' kwa ADSC

ADCSRA | = (1 <

// subiri ubadilishaji ukamilike

// ADSC inakuwa '0' tena

wakati (ADCSRA & (1 <

kurudi (ADC);

}

int kuu ()

{

DDRB = 0xff;

uint16_t adc_result0;

muda;

int mbali;

bafa ya char [10];

// kuanzisha adc na lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // KULAANI

lcd_clrscr ();

lcd_gotoxy (0, 0);

kuchelewa_ms (50);

wakati (1)

{

adc_result0 = adc_read (0); // soma adc value katika PA0

temp = adc_result0 / 2.01; // kupata joto

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, bafa, 10); // onyesha thamani ya ADC

// lcd_puts (bafa);

lcd_gotoxy (0, 0);

itoa (temp, bafa, 10);

lcd_puts ("Temp ="); // joto la kuonyesha

lcd_puts (bafa);

lcd_gotoxy (7, 0);

lcd_puts ("C");

mbali = (1.8 * temp) +32;

lcd_gotoxy (9, 0);

itoa (mbali, bafa, 10);

lcd_puts (bafa);

lcd_gotoxy (12, 0);

lcd_puts ("F");

kuchelewa_ms (1000);

ikiwa (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

ikiwa (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

Hatua ya 4: Eleza Nambari

Natumai unajua utajua Jinsi ya kuwezesha ADC na Jinsi ya kusanikisha LCD na Avr Microcontroller katika nambari hii wakati joto ni zaidi ya digrii 30 kisha shabiki amewashwa na unaweza kuona kwenye Onyesha FAN ILIYOONEKANA na wakati Joto chini ya 30 kisha shabiki imezimwa na unaweza kuona FAN OFF

Hatua ya 5: Unaweza Kupakua Mradi Kamili

Bonyeza hapa

Ilipendekeza: