دماسنج با سنسور LM35 و Atmega32 با کامپایلر کدویژن

این سری آموزش‌ های میکروکنترلر AVR (راه اندازی دماسنج LM35) که به جرات می توان آنها را کامل ترین آموزش های موجود دانست با صرف هزینه زیاد و با کیفیت و جزئیات بالا توسط جناب آقای پوریا تومانی تهیه شده است و به صورت رایگان در اختیار عموم قرار گرفته است.

در این پست از سایت آیمکس شما با ساخت یک دماسنج با استفاده از سنسور پرکاربرد و معروف LM35 اشنا خواهید شد. سنسور LM35  یک سنسور آنالوگ می باشد، به این معنی که با تغییرات دمای محیط ،ولتاژ آنالوگی در خروجی ان ایجاد می شود که با اندازه گیری آن توسط ADC میکروکنترلر می توانیم دمای محیط را اندازه گیری کنیم .

 

راه اندازی سنسور دماسنج LM35

آشنایی با سنسور LM35 :

همانطور که گفته شد سنسور دماسنج LM35 یک سنسور آنالوگ می باشد که دما را برحسب درجه سانتی گراد به صورت کالیبره شده در خروجی به صورت ولتاژ نمایش می دهد. این سنسور دارای دقت بسیار مناسبی می باشد و با توجه به قابلیت های آن دارای قیمت مناسبی هم می باشد. سنسور LM35 دارای تغییرات ولتاژ خروجی خطی نسبت به تغییرات دما می باشد و نیاز به کالیبراسیون ندارد.

 

ویژگی ها:

  •  کالیبره شده برای درجه سانتی گراد (سلسیوس)
  •  تغییرات خطی ولتاژ خروجی به ازای هر درجه، ۱۰mV
  •  در دمای ۲۵ درجه سانتی گراد دارای دقت ۰٫۵ درجه
  •  محدوده اندازه گیری بین -۵۵ تا ۱۵۰ درجه سانتی گراد
  •  مناسب برای کاربرد های کنترل از راه دور
  •  کم هزینه با توجه به ویژگی ها
  •  محدوده عملکرد ولتاژی بین ۴ تا ۳۰ ولت
  •  جریان درین کمتر از ۶ میکرو آمپر
  •  ایجاد گرمای بسیار کم توسط خود سنسور(اتلاف گرمایی)، حدود ۰٫۰۸ درجه سانتی گراد
  •  امپدانس خروجی کم، برای بار یک میلی آمپر حدود ۰٫۱ اهم

 

راه اندازی سنسور دماسنج LM35

وسایل مورد نیاز برای پروژه:

سیم جامپر

بردبرد

ATMEGA32

LM35

LCD2*16

 

 

ابتدا مدار را در پروتوس میبندیم :

ابتدا پروتوس راباز نموده یک فایل جدید می سازیم سپس طبق مدار زیر درپروتوس طراحی کنید برای دانلود پروتوس اینجا کلیک کنید.(پروتوس یک نرم افزار شبیح سازی کامل وعالی)

 

راه اندازی سنسور دماسنج LM35

 

حال نوبت به کد پروژه میباشد:

 در ابتدای کد همانطور که در قسمت قبل هم توضیح دادیم ، کتابخانه های مورد نیاز را فراخوانی میکنیم.در ابتدا فرکانس کاری میکروکنترلر را 8 مگا هرتز در نظر میگیریم. کتابخانه میکروکنترلر مگا 32 تنظیم میکنیم.

حال lcdکارکتری 2در16راانتخواب میکنیم وپایه های آن راروی پورت دی میگذاریم.

adcراتنظیم میکنیم وروی 62.500khzمیگذاریم.

کد پروژه رادرکدویژن کپی پیست کنید وبرنامه را کامپایل کنید. 


#include <mega32.h>
#include <delay.h>
#include <alcd.h>
#include <stdio.h>

#define ADC_VREF_TYPE ((0<<REFS1) | (0<<REFS0) | (0<<ADLAR))
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}

void main(void)
{
char a=0 ;
char Temperature ;
char Buffer_LCD[17];

DDRA=(1<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

DDRD=(1<<DDD7) | (1<<DDD6) | (1<<DDD5) | (1<<DDD4) | (1<<DDD3) | (1<<DDD2) | (1<<DDD1) | (1<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (1<<ADPS1) | (0<<ADPS0);
SFIOR=(0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);

lcd_init(16);
lcd_clear();
while (1)
{
a=read_adc(0);
Temperature=(a*4.8828125)/10;

sprintf(Buffer_LCD,"Dma =%d ",Temperature);
lcd_gotoxy(0,0);
lcd_puts(Buffer_LCD);
lcd_gotoxy(9,0);
lcd_putsf("C");
delay_ms(500);

}
}

 

فیلم نحوه ساخت پروژه در کدویژن:

 

فیلم نحوه کار مداردرشبیه ساز:

 

فیلم نحوه کار به صورت عملی :

 

برای دانلود مدار اینجا کلیک کنید:

برای دانلود کلیک کنید

porya toomani

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *