Სარჩევი:

ტემპერატურის სენსორი (LM35) ურთიერთკავშირში ATmega32 და LCD ეკრანით - ავტომატური გულშემატკივართა კონტროლი: 6 ნაბიჯი
ტემპერატურის სენსორი (LM35) ურთიერთკავშირში ATmega32 და LCD ეკრანით - ავტომატური გულშემატკივართა კონტროლი: 6 ნაბიჯი

ვიდეო: ტემპერატურის სენსორი (LM35) ურთიერთკავშირში ATmega32 და LCD ეკრანით - ავტომატური გულშემატკივართა კონტროლი: 6 ნაბიჯი

ვიდეო: ტემპერატურის სენსორი (LM35) ურთიერთკავშირში ATmega32 და LCD ეკრანით - ავტომატური გულშემატკივართა კონტროლი: 6 ნაბიჯი
ვიდეო: LM35 - Temperature Sensor - Fluctuating And High Temperature Reading | Solution | Krishna Verma 2024, ივლისი
Anonim
ტემპერატურის სენსორი (LM35) ურთიერთკავშირში ATmega32 და LCD ეკრანით | ავტომატური გულშემატკივართა კონტროლი
ტემპერატურის სენსორი (LM35) ურთიერთკავშირში ATmega32 და LCD ეკრანით | ავტომატური გულშემატკივართა კონტროლი

ტემპერატურის სენსორი (LM35) ინტერფეისი ATmega32 და LCD დისპლეით

Ნაბიჯი 1:

ამ პროექტში თქვენ შეისწავლით თუ როგორ უნდა დააკავშიროთ ტემპერატურის სენსორი (LM35) AVR ATmega32 მიკროკონტროლერთან და LCD ეკრანზე.

ამ პროექტის დაწყებამდე თქვენ უნდა გაეცნოთ შემდეგ სტატიებს

როგორ დავამატოთ LCD ბიბლიოთეკა avr studio- ში | avr მიკროკონტროლერის სახელმძღვანელო

გაცნობა ADC AVR მიკროკონტროლერში | დამწყებთათვის

ტემპერატურის სენსორი (LM35) არის პოპულარული და დაბალი ღირებულების ტემპერატურის სენსორი. Vcc შეიძლება იყოს 4V– დან 20V– მდე, როგორც ეს მითითებულია მონაცემთა ცხრილში. სენსორის გამოსაყენებლად უბრალოდ დაუკავშირეთ Vcc 5V- ს, GND- ს Ground- ს და Out- ს ერთ -ერთ ADC- ს (ანალოგური ციფრული გადამყვანი არხი).

გამომავალი არის 10 მლვოლტი თითო გრადუსზე. ასე რომ, თუ გამომავალი არის 310 მვ, მაშინ ტემპერატურა 31 გრადუსი C. ამ პროექტის შესაქმნელად თქვენ უნდა იცნობდეთ AVR– ების ADC– ს და ასევე LCD– ის გამოყენებას. ძაბვის თვალსაზრისით არის

5/1024 = 5.1mV დაახლოებით

ასე რომ, თუ ADC- ის შედეგი შეესაბამება 5.1mV- ს, ანუ თუ ADC- ის კითხვა არის

10 x 5.1mV = 51mV

თქვენ შეგიძლიათ წაიკითხოთ ნებისმიერი ADC არხის მნიშვნელობა adc_result (ch) ფუნქციის გამოყენებით;

სადაც ch არის არხის ნომერი (0-5) ATmega8- ის შემთხვევაში. თუ LM35 მოწყობილობები დაუკავშირეთ ADC არხს 0, დარეკეთ

adc_result0 = adc_read (0);

ეს შეინახავს ADC– ს ამჟამინდელ კითხვას ცვლადში adc_value. მონაცემთა ტიპი adc_value უნდა იყოს int, რადგან ADC მნიშვნელობა შეიძლება იყოს 0-1023-დან.

როგორც ვნახეთ ADC შედეგები არის 5.1mV ფაქტორში და 1 გრადუსზე C გამომავალი LM35 არის 10mV, ასე რომ 2 ერთეული ADC = 1 ხარისხი.

ტემპერატურის მისაღებად ჩვენ adc_value- ს ვყოფთ ორზე

ტემპერატურა = adc_result0/2;

დაბოლოს, მიკროკონტროლერი აჩვენებს ტემპერატურას გრადუსამდე 16X2 ალფანუმერულ LCD- ში.

ნაბიჯი 2: სქემის დიაგრამა

Წრიული დიაგრამა
Წრიული დიაგრამა

ნაბიჯი 3: პროგრამა

#ifndef F_CPU

#განსაზღვრეთ F_CPU 1600000UL

#დაასრულე თუ

#ჩართეთ

#ჩართეთ

#მოიცავს "LCD/lcd.h"

ბათილია adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC გააქტიურება და წინასწარი გამყიდველი 128 -დან

ADCSRA = (1 <

}

// წაიკითხეთ adc მნიშვნელობა

uint16_t adc_read (uint8_t ch)

{

// აირჩიეთ შესაბამისი არხი 0 ~ 7

ch & = 0b00000111; // და ოპერაცია 7 -ით

ADMUX = (ADMUX & 0xF8) | ch;

// ერთი კონვერტაციის დაწყება

// ჩაწერე '1' ADSC- ს

ADCSRA | = (1 <

// დაელოდეთ კონვერტაციის დასრულებას

// ADSC კვლავ ხდება '0'

ხოლო (ADCSRA & (1 <

დაბრუნება (ADC);

}

int მთავარი ()

{

DDRB = 0xff;

uint16_t adc_result0;

int ტემპერატურა;

შორს შორს;

char buffer [10];

// adc და lcd ინიციალიზაცია

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // კურსორი

lcd_clrscr ();

lcd_gotoxy (0, 0);

_ დაგვიანებით_ms (50);

ხოლო (1)

{

adc_result0 = adc_read (0); // წაიკითხეთ adc მნიშვნელობა PA0- ში

temp = adc_result0/2.01; // ტემპერატურის პოვნა

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, ბუფერი, 10); // აჩვენეთ ADC მნიშვნელობა

// lcd_puts (ბუფერი);

lcd_gotoxy (0, 0);

იტოა (ტემპი, ბუფერი, 10);

lcd_puts ("ტემპი ="); // ტემპერატურის ჩვენება

lcd_puts (ბუფერი);

lcd_gotoxy (7, 0);

lcd_puts ("C");

შორს = (1.8*ტემპერატურა) +32;

lcd_gotoxy (9, 0);

იტოა (შორს, ბუფერი, 10);

lcd_puts (ბუფერი);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_ დაგვიანებით_ms (1000);

თუ (ტემპერატურა> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

PORTB = (1 <

}

თუ (ტემპერატურა <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

PORTB = (0 <

}

}

}

ნაბიჯი 4: ახსენით კოდი

ვიმედოვნებ, თქვენ იცით, რომ თქვენ იცით, როგორ ჩართოთ ADC და როგორ დააკავშიროთ LCD Avr მიკროკონტროლერთან ამ კოდში, როდესაც ტემპერატურა 30 გრადუსზე მეტია, შემდეგ ვენტილატორი ჩართულია და თქვენ შეგიძლიათ ნახოთ led Display FAN ON და როდესაც ტემპერატურა ნაკლებია 30 -ზე, შემდეგ ვენტილატორი გამორთულია და ხედავთ FAN OFF

ნაბიჯი 5: შეგიძლიათ ჩამოტვირთოთ სრული პროექტი

Დააკლიკე აქ

გირჩევთ: