آردوینو, پروژه آردوینو

ساخت مدار نشانگر دمای محیط با RGB LED

ساخت مدار نشانگر دمای محیط با RGB LED

در این پروژه می‌خواهیم به کمک یک ترمیستور و چند LED، اقدام به ساخت مدار نشانگر دمای محیط با RGB LED بکنیم و دما را با رنگ نمایش دهیم. لازم به ذکر است که رنگ آبی برای حداقل دما (یعنی 20 درجه) و رنگ قرمز برای حداکثر دما (یعنی 50 درجه) خواهد بود و ترکیب‌های مختلف این دو رنگ نیز دمای بین دو عدد گفته شده را نشان می‌دهند.

فهرست مطالب

لوازم مورد نیاز برای پروژه ساخت مدار نشانگر دمای محیط با RGB LED

دو LED چهار پایه کاتد مشترک RGB

ترمیستور

یک مقاومت 10 کیلو اهم

سه مقاومت 330 اهم

برد آردوینو Uno

برد بورد

سیم جامپر

ترمیستور چیست؟

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

نحوه فعالیت پروژه ساخت مدار نشانگر دمای محیط با RGB LED

در این پروژه می‌خواهیم به کمک یک ترمیستور، دمای محیط را اندازه‌گیری کنیم و آن را با رنگ نمایش دهیم. رنگ آبی برای حداقل دما (یعنی 20 درجه) و قرمز برای حداکثر دما (یعنی 40 درجه) خواهد بود و ترکیب‌های مختلف این دو رنگ نیز دمای بین این دو مقدار را نشان خواهند داد.

 

مدار پروژه ساخت مدار نشانگر دمای محیط با RGB LED

شما باید مدار این پروژه را طبق تصویر زیر سیم‌کشی کنید.

مدار پروژه ساخت مدار نشانگر دمای محیط با RGB LED
مدار پروژه ساخت مدار نشانگر دمای محیط با RGB LED

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

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

کدنویسی پروژه ساخت مدار نشانگر دمای محیط با RGB 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;
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 - rsetLED(blue, red);
ed;}

				
			

توضیحات کدهای پروژه ساخت مدار نشانگر دمای محیط با RGB LED

در بخش ابتدایی این کدها، برای هر پین یک متغیر و یک نشانگر 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;
				
			

با استفاده از چند خط کد زیر، دما را به واحد سلسیوس (سانتی‌گراد) تبدیل کرده‌ایم.

				
					// 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
				
			

در بخش Setup، سریال مانیتور را با بادریت 9600 آغاز می‌کنیم.

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

در ادامه، پین‌های LED و سنسور دما را به ترتیب خروجی و ورودی تعریف می‌کنیم.

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

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

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

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