آردوینوالکترونیکپروژه آردوینو

مدار نشانگر دما با سه LED RGB !!!

مقدمه

مدار نشانگر دما با led: در این پروژه می خواهیم به کمک یک ترمیستور دمای محیط را اندازه گیری کنیم و آن را با رنگ نمایش دهیم. رنگ آبی برای حداقل دما (۲۰درجه) و قرمز برای حداکثر دما (۴۰ درجه) ترکیب های مختلف این دو رنگ نیز دمای بین این دو مقدار را نشان خواهد داد.

ترمیستور یک المان الکتریکی از خانواده مقاومت هاست که مقاومت آن با تغییرات دما تغییر می کند به همین دلیل می شود آن را با یک مقاومت موازی کرد و این تغییرات را به ولتاژ تبدیل کنیم و سپس ولتاژ را به دما تبدیل کنیم.

نمایی از مدار نشانگر دما با led
نمایی از مدار نشانگر دما با led

لوازم مورد نیاز

در پروژه مدار نشانگر دما با led می خواهیم به کمک یک ترمیستور دمای محیط را اندازه گیری کنیم و آن را با رنگ نمایش دهیم. رنگ آبی برای حداقل دما (۲۰درجه) و قرمز برای حداکثر دما (۴۰ درجه) ترکیب های مختلف این دو رنگ نیز دمای بین این دو مقدار را نشان خواهد داد.

ترمیستور یک المان الکتریکی از خانواده مقاومت هاست که مقاومت آن با تغییرات دما تغییر می کند به همین دلیل می شود آن را با یک مقاومت موازی کرد و این تغییرات را به ولتاژ تبدیل کنیم و سپس ولتاژ را به دما تبدیل کنیم.

مدار

مدار زیر را ببندید.

اتصالات پایه ها در مدار نشانگر دما با led
اتصالات پایه ها در مدار نشانگر دما با led

شدت نور هر رنگ LED توسط PWM کنترل می شود که مقدار PWM وابسته به دمای خوانده شده از ترمیستور می باشد

در تابع ReadThermistor مقدار ولتاژ خوانده شده را به دما بر حسب سلسیوس(سانتی گراد) تبدیل کردیم و در loop با استفاده از این دما دو رنگ آبی و قرمز LED را کنترل می کنیم. برای آزمایش کردن مدار می توانید ترمیستور را برای گرم شدن میان انگشتان خود بگیرید و برای سرد شدن آن را فوت کنید!

برنامه

#define TEMP_PIN A0
#define RED_PIN 9
#define GREEN_PIN 10
#define BLUE_PIN 11
int adc = 0;
int blue = 0, red = 0;

تعریف متغییر ها در مدار نشانگر دما با led

double ReadThermistor(int adc) {

تابع برای خواندن مقادیر سنسور دما

double resistance = ((1024.0/adc) - 1);    //calculate from voltage divider, for 10k resistor
  double Temp = log(resistance);

محاسبه مقدار دما

// calculate the temperature, in K, using 4 thermistor model/material specific parameters A, B, C, D
  // here we use the values for the Sparkfun/Hactronics version of the Vishay 10k NTC thermistor
  Temp = 1 / (0.003354016 + 0.0002569850 * Temp + 0.000002620131 * Temp * Temp + 0.00000006383091 * Temp * Temp * Temp);
  Temp = Temp - 273.15;            // Convert Kelvin to Celsius

تبدیل دما به سلسیوس

  return Temp;
}

void setLED(int blue, int red){
  analogWrite(BLUE_PIN, blue);
  analogWrite(RED_PIN, red);

مقدار دهی به ال ای دی برای تغییر رنگ آن

}

void setup(){
  Serial.begin(9600);

راه اندازی سریال مانیتور

pinMode(BLUE_PIN, OUTPUT); 
  pinMode(RED_PIN, OUTPUT); 
  pinMode(GREEN_PIN, OUTPUT);  
  pinMode(TEMP_PIN, INPUT);

تعریف پین های ال ای دی و سنسور دما به ترتیب خروجی و ورودی

}

void loop(){
  adc = analogRead(TEMP_PIN);

خواندن مقدار سنسور دما

  int temp = ReadThermistor(adc);

انجام تبدیل ها برای تبدیل ولتاژ خوانده شده به دما

  Serial.println(temp);

  چاپ دما

red = map(temp, 20, 40, 0, 255);
  blue = 255 - red;

محاسبه مقادیر رنگ های آبی و قرمز 

setLED(blue, red);

تنظیم رنگ ها

}

سخن پایانی

هر چقدر که دما بالا رود نور ال ای دی سه رنگ قرمز تر می شود و می توان از آن به عنوان نمایشگر دما استفاده نمود.

امیدوارم از این آموزش لذت برده باشید.

نمایش بیشتر

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

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

دکمه بازگشت به بالا