پروژه مدار دماسنج دیجیتال با استفاده از آردوینو

با سلام خدمت دوستان عزیز امروز براتون یک پروژه جالب با آردوینو  اماده کردم  که امیدوار مفید باشه براتون …..

این مقاله راجع به دماسنج دیجیتال با استفاده از آردوینو است. رنج این دما سنج از ۰ درجه سانتی گراد تا ۹۹٫۹ در جه سانتی گراد است.همچنین این امکان وجود دارد تا دما بر حسب فارنهایت محاسبه شود . سه ترمینال سنسور آنالوگ دما Lm35 به عنوان سنسور دما استفاده می شود . lm35  می تواند رنج دمایی بین -۵۵ درجه سانتی گراد تا +۱۵۵ را اندازه بگیرد . رنج ولتاژ تغذیه از ۴ تا ۳۰ ولت dc و جریان عبوری ۶۰ uA است . Lm35 در بسته to-92 فراهم است و استفاده از اون نیز بسیار سا ده هستش . ولتاژ خروجی از آردوینو  ۱۰ میلی ولت به ازای هر درجه سانتی گراد افزایش می یابد .

به این معنی که اگر دما ۲۵ درجه سانتی گراد باشد ولتاژ سنسور ۲۵۰mV است . مداری که راجع به اون صحبت میکنیم شماتیک آن را در شکل زیر می بینید .

پروژه مدار دماسنج دیجیتال با استفاده از آردوینو

سنسور دما از طریق پورت های آنالوگ به آردوینو متصل شده است . پین A0 آردوینو به عنوان تغذیه برای سنسور است و پین A2 آردوینو  به عنوان زمین است . آردوینو ولتاژ خروجی سنسور را توسط ورودی A1  می خواند .پین دیجیتال ۴ آردوینو به عنوان سلکتور بین سانتی گاد و فارنهایت است . ترانزیستورهای درایور دیجیتال Q1 ,Q2,Q3 به پین های ۱و ۲ و۳ آردوینو متصل است .پین های a تا dp سون سگمنت به پین های ۵ تا ۱۲ آ ردوینو متصل است.

مقاومت های R9,R10 ,R11جریان پایه از پاسخ فرکانس را محدود می کند .مقاومت های R1  تا  R8  جریان عبوری از سگمنت ها را محدود می کند .

مطلب پیشنهادی:  آموزش راه اندازی ldr با آردوینو

 

برنامه :

 

int i;

int backup;

int a;

int unit;

int value;

int vcc=A0;

int sensor=A1;

int gnd=A2;

int select=4;

int disp1=1;

int disp2=2;

int disp3=3;

int segA=5;

int segB=6;

int segC=7;

int segD=8;

int segE=9;

int segF=10;

int segG=11;

int segDP=12;

void setup()

{

pinMode(disp1, OUTPUT);

pinMode(disp2, OUTPUT);

pinMode(disp3, OUTPUT);

pinMode(segA, OUTPUT);

pinMode(segB, OUTPUT);

pinMode(segC, OUTPUT);

pinMode(segD, OUTPUT);

pinMode(segE, OUTPUT);

pinMode(segF, OUTPUT);

pinMode(segG, OUTPUT);

pinMode(segDP, OUTPUT);

pinMode(sensor, INPUT);

pinMode(vcc, OUTPUT);

pinMode(gnd, OUTPUT);

pinMode(select, INPUT);

digitalWrite(vcc, HIGH);

digitalWrite(gnd, LOW);

}

void loop()

{

value=analogRead(sensor); //Reads the sensor LM35

value=value*5;

unit=digitalRead(select); //Reads the selector switch

if(unit==1)

{value=value;} // Output in celcius

else

{value=(value*1.8)+320;} //Output in Fahrenheit

backup=value; //Backs up the content in variable value

for(i=0;i<100;i++) //Loops the display loop 100 times(steadies the display)

{value=backup;

a=value%10;

digitalWrite(disp1,LOW);

digitalWrite(disp2,LOW);

digitalWrite(disp3, HIGH);

digitalWrite(segDP,HIGH);

display(a);

delay(4);

value = value/10;

a = value%10;

digitalWrite(disp3,LOW);

digitalWrite(disp2,HIGH);

digitalWrite(segDP,LOW);

display(a);

delay(4);

value=value/10;

a=value;

digitalWrite(disp2,LOW);

digitalWrite(disp1,HIGH);

digitalWrite(segDP,HIGH);

display(a);

delay(4);

}

}

int display (int a)

{

switch (a)

{

case 0:

digitalWrite(segA, LOW);

digitalWrite(segB, LOW);

digitalWrite(segC, LOW);

digitalWrite(segD, LOW);

digitalWrite(segE, LOW);

digitalWrite(segF, LOW);

digitalWrite(segG, HIGH);

break;

case 1:

digitalWrite(segA, HIGH);

digitalWrite(segB, LOW);

digitalWrite(segC, LOW);

digitalWrite(segD, HIGH);

digitalWrite(segE, HIGH);

digitalWrite(segF, HIGH);

digitalWrite(segG, HIGH);

break;

case 2:

digitalWrite(segA, LOW);

digitalWrite(segB, LOW);

digitalWrite(segC, HIGH);

digitalWrite(segD, LOW);

digitalWrite(segE, LOW);

digitalWrite(segF, HIGH);

digitalWrite(segG, LOW);

break;

case 3:

digitalWrite(segA, LOW);

digitalWrite(segB, LOW);

digitalWrite(segC, LOW);

digitalWrite(segD, LOW);

digitalWrite(segE, HIGH);

digitalWrite(segF, HIGH);

digitalWrite(segG, LOW);

break;

case 4:

digitalWrite(segA, HIGH);

digitalWrite(segB, LOW);

digitalWrite(segC, LOW);

digitalWrite(segD, HIGH);

مطلب پیشنهادی:  چند مثال از راه اندازی Lcd tft 2.4 با آردوینو

digitalWrite(segE, HIGH);

digitalWrite(segF, LOW);

digitalWrite(segG, LOW);

break;

case 5:

digitalWrite(segA, LOW);

digitalWrite(segB, HIGH);

digitalWrite(segC, LOW);

digitalWrite(segD, LOW);

digitalWrite(segE, HIGH);

digitalWrite(segF, LOW);

digitalWrite(segG, LOW);

break;

case 6:

digitalWrite(segA, LOW);

digitalWrite(segB, HIGH);

digitalWrite(segC, LOW);

digitalWrite(segD, LOW);

digitalWrite(segE, LOW);

digitalWrite(segF, LOW);

); digitalWrite(segG, LOW

break;

case 7:

digitalWrite(segA, LOW);

digitalWrite(segB, LOW);

digitalWrite(segC, LOW);

digitalWrite(segD, HIGH);

digitalWrite(segE, HIGH);

digitalWrite(segF, HIGH);

digitalWrite(segG, HIGH);

break;

case 8:

digitalWrite(segA, LOW);

digitalWrite(segB, LOW);

digitalWrite(segC, LOW);

digitalWrite(segD, LOW);

digitalWrite(segE, LOW);

digitalWrite(segF, LOW);

digitalWrite(segG, LOW);

break;

case 9:

digitalWrite(segA, LOW);

digitalWrite(segB, LOW);

digitalWrite(segC, LOW);

digitalWrite(segD, LOW);

digitalWrite(segE, HIGH);

digitalWrite(segF, LOW);

digitalWrite(segG, LOW);

break;

}}

پروژه مدار دماسنج دیجیتال با استفاده از آردوینو

درباره برنامه :

ولتاژ خروجی سنسور توسط تابع خواندن آنالوگ بررسی می شود . تابع خواندن آنالوگ ولتاژ ورودی آنالوگ را می خواند و ان را به مقدار دیجیتال بین ۰ و ۱۰۲۳ تبدیل می کند. مقدار کد = مقدار دیجیتال خوانده شده سنسور این ولتاژ را می خواند و آن را به مقدار دیجیتال تبدبل می کند و آن را در متغیری به نام “value” می ریزد. بنابراین برای ۳۰ درجه سانتی گراد عدد در متغیر “value” برابر ۳۰۰mV/(5/1023) است . این عدد در ۵ ضرب می شود تا به عدد ۳۰۵ برسیم و یک نقطه دسیمال قبل از اخرین عدد گزاشته می شود و در نتیجه بر روی سون سگمنت ۳۰٫۵ درجه سانتی گراد نمایش داده می شود.

این برنامه همچنین حالت  پین دیجیتال ۴ را چک می کند و اگر پین یک باشد خروجی به صورت سانتی گراد نمایش داده می شود و اگر نه به شکل فارنهایت نمایش داده می شود .

در پایان خوشحال میشم که دوستان اگر انتقاد یا پیشنهادی راجع مطلب دارند در قسمت نظرات بیان کنید.

مطلب پیشنهادی:  راه اندازی ماژول های فرستنده و گیرنده RF با آردوینو

مطالب مرتبط :

کنترل موتور DC با آردینو

پروژه دماسنج و رطوبت سنج با سنسور DHT11

دیگر جلسات این آموزش

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

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