Բովանդակություն:

Temերմաստիճանի տվիչ (LM35) Ինտերֆեյս ATmega32- ով և LCD էկրանով - Automatics Fan Control: 6 քայլ
Temերմաստիճանի տվիչ (LM35) Ինտերֆեյս ATmega32- ով և LCD էկրանով - Automatics Fan Control: 6 քայլ

Video: Temերմաստիճանի տվիչ (LM35) Ինտերֆեյս ATmega32- ով և LCD էկրանով - Automatics Fan Control: 6 քայլ

Video: Temերմաստիճանի տվիչ (LM35) Ինտերֆեյս ATmega32- ով և LCD էկրանով - Automatics Fan Control: 6 քայլ
Video: LDmicro 11: Serial LCD Temperature Controller (Microcontroller PLC Ladder Programming with LDmicro) 2024, Նոյեմբեր
Anonim
Temերմաստիճանի տվիչ (LM35) Ինտերֆեյս ATmega32- ով և LCD էկրանով | Ավտոմատ օդափոխիչի հսկողություն
Temերմաստիճանի տվիչ (LM35) Ինտերֆեյս ATmega32- ով և LCD էկրանով | Ավտոմատ օդափոխիչի հսկողություն

Temերմաստիճանի տվիչ (LM35) Ինտերֆեյս ATmega32 և LCD էկրաններով

Քայլ 1:

Այս նախագծում Դուք կսովորեք, թե ինչպես միացնել ջերմաստիճանի տվիչ (LM35) AVR ATmega32 միկրոկոնտրոլերի և LCD էկրանին:

Նախքան այս նախագիծը ձեզ հարկավոր է Իմացեք հետևյալ հոդվածների մասին

ինչպես ավելացնել LCD գրադարան avr studio- ում | avr միկրոկառավարիչի ձեռնարկ

ADR- ի ներածություն AVR միկրոկառավարիչում | սկսնակների համար

Temերմաստիճանի տվիչը (LM35) հայտնի և ցածր գնով ջերմաստիճանի տվիչ է: Vcc- ը կարող է լինել 4V- ից մինչև 20V, ինչպես նշված է տվյալների թերթում: Սենսորից օգտվելու համար պարզապես միացրեք Vcc- ը 5V- ին, GND- ը `գետնին և ելքը` ADC- ից մեկին (անալոգային թվային փոխարկիչ ալիք):

Արդյունքը կազմում է 10 միլիոն վոլտ մեկ աստիճանի ջերմաստիճանի համար: Այսպիսով, եթե ելքը 310 մՎ է, ապա ջերմաստիճանը 31 աստիճան է: Այս նախագիծը պատրաստելու համար դուք պետք է ծանոթ լինեք AVR- ների ADC- ին և LCD- ին: լարման առումով է

5/1024 = 5.1 մՎ մոտավորապես

Այսպիսով, եթե 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,1 մՎ գործոնով են, և 1 աստիճանի C- ի համար LM35- ի թողունակությունը 10 մՎ է, ուստի 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) | հատված;

// սկսել միայնակ փոխարկում

// գրել «1» ADSC- ին

ADCSRA | = (1 <

// սպասեք փոխակերպման ավարտին

// ADSC- ն կրկին դառնում է «0»

իսկ (ADCSRA & (1 <

վերադարձ (ADC);

}

int հիմնական ()

{

DDRB = 0xff;

uint16_t adc_result0;

int ջերմաստիճան;

int հեռու;

char buffer [10];

// նախաստորագրեք adc և lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // ԱՇԽԱՏԱԿԱՈ

lcd_clrscr ();

lcd_gotoxy (0, 0);

_ ուշացում (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);

itoa (ջերմաստիճան, բուֆեր, 10);

lcd_puts ("Temp ="); // ցուցադրել ջերմաստիճանը

lcd_puts (բուֆեր);

lcd_gotoxy (7, 0);

lcd_puts («C»);

հեռու = (1.8*ջերմաստիճան) +32;

lcd_gotoxy (9, 0);

itoa (հեռու, բուֆեր, 10);

lcd_puts (բուֆեր);

lcd_gotoxy (12, 0);

lcd_puts («F»);

_ ուշացում (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. Կարող եք ներբեռնել ամբողջական նախագիծը

Սեղմեք այստեղ

Խորհուրդ ենք տալիս: