دوائر مروحة تيار مستمر يتم التحكم في درجة حرارتها من Arduino

جرب أداة القضاء على المشاكل





في هذه المقالة ، سنقوم ببناء دارتين بسيطتين من دوائر مروحة التيار المستمر التي يتم التحكم في درجة حرارتها من Arduino والتي تعمل على تشغيل مروحة أو أي أدوات أخرى متصلة بها ، عندما تصل درجة الحرارة المحيطة إلى مستوى عتبة محدد مسبقًا. سنستخدم مستشعر DHT11 واردوينو لهذا المشروع.

ملخص

يكمن جمال وحدات التحكم الدقيقة في أننا نحصل على تحكم دقيق للغاية في الأجهزة الطرفية المتصلة بها. في هذا المشروع ، يحتاج المستخدم فقط إلى إدخال درجة حرارة العتبة في البرنامج ، وسيتولى المتحكم الدقيق بقية الوظيفة.



هناك أطنان من مشاريع التحكم في درجة الحرارة الأوتوماتيكية التي لا تعتمد على المتحكم الدقيق والمتاحة عبر الإنترنت ، مثل استخدام جهاز المقارنة والترانزستورات.

إنها بسيطة للغاية وتعمل بشكل جيد ، ولكن تظهر المشكلة أثناء معايرة مستوى العتبة باستخدام المقاوم أو مقياس الجهد.



لدينا فكرة عمياء أثناء معايرتها وقد يحتاج المستخدم إلى إجراء طريقة التجربة والخطأ للعثور على المكان المناسب.

يتم التغلب على هذه المشكلات بواسطة ميكروكنترولر ، يحتاج المستخدم فقط إلى إدخال درجة الحرارة بالدرجة المئوية في هذا المشروع ، لذلك لا حاجة للمعايرة.

يمكن استخدام هذا المشروع حيث تحتاج درجة الحرارة الداخلية للدائرة إلى الاستقرار أو حفظها من ارتفاع درجة الحرارة.

في الشكل 1 ، نقوم بتوصيل مروحة وحدة المعالجة المركزية كإخراج. يمكن استخدام هذا الإعداد للتحكم في درجة الحرارة المحيطة الداخلية لدائرة مغلقة.

عندما تصل درجة الحرارة إلى الحد الأدنى ، يتم تشغيل المروحة. تنطفئ المروحة عندما تنخفض درجة الحرارة عن الحد الأدنى. لذلك فهي في الأساس عملية آلية.

في الشكل 2 ، قمنا بتوصيل مرحل للتحكم في الأجهزة التي تعمل على الجهد الكهربائي مثل مروحة الطاولة.

عندما تصل درجة حرارة الغرفة إلى درجة الحرارة الدنيا ، يتم تشغيل المروحة وتنطفئ عندما تبرد الغرفة.

قد تكون هذه أفضل طريقة لتوفير الطاقة ويمكن أن تكون هذه هي الجنة للأشخاص الكسالى الذين يرغبون في تشغيل الآخرين للمروحة عندما يشعرون بالدفء.

مخطط دائرة يوضح التحكم في مروحة التيار المستمر

التحكم في مروحة DC لضبط درجة الحرارة تلقائيًا

يمكن نشر هذا الإعداد للدوائر المضمنة في صندوق. يضيء مؤشر LED عند بلوغ مستوى الحد المعين مسبقًا ويقوم أيضًا بتشغيل المروحة.

توصيل مرحل للتحكم في المراوح الأكبر

ترحيل التحكم في مروحة التبديل باستخدام مستشعر درجة حرارة Arduino

تقوم هذه الدائرة بالوظيفة المماثلة للدائرة السابقة ، والآن يتم استبدال المروحة بالمرحل.

يمكن لهذه الدائرة التحكم في مروحة الطاولة أو مروحة السقف أو أي أداة أخرى يمكنها تبريد درجة الحرارة المحيطة.

يتم إيقاف تشغيل الجهاز المتصل بمجرد وصول درجة الحرارة إلى ما دون مستوى الحد المعين مسبقًا.

الرسم التخطيطي لدائرة مروحة التيار المستمر التي يتم التحكم في درجة حرارتها الموضح هنا ليس سوى عدد قليل من العديد من الاحتمالات. يمكنك تخصيص الدائرة والبرنامج لغرضك الخاص.

ملاحظة 1: #Pin 7 هو الإخراج.

ملاحظة 2: هذا البرنامج متوافق فقط مع مستشعر DHT11 فقط.

برنامج لدائرة منظم درجة الحرارة الأوتوماتيكية الموضحة أعلاه باستخدام Arduino:

كود البرنامج

//--------------------Program developed by R.Girish---------------------//
#include
dht DHT
#define DHTxxPIN A1
int p = A0
int n = A2
int ack
int op = 7
int th = 30 // set thershold tempertaure in Celsius
void setup(){
Serial.begin(9600) // May be removed after testing
pinMode(p,OUTPUT)
pinMode(n,OUTPUT)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
digitalWrite(p,1)
digitalWrite(n,0)
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
// you may remove these lines after testing, from here
Serial.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
Serial.print('Humidity(%) = ')
Serial.println(DHT.humidity)
Serial.print(' ')
// To here
if (DHT.temperature>=th)
{
delay(3000)
if(DHT.temperature>=th) digitalWrite(op,HIGH)
}
if(DHT.temperature {
delay(3000)
if(DHT.temperature }
}
if(ack==1)
{
// may be removed after testing from here
Serial.print('NO DATA')
Serial.print(' ')
// To here
digitalWrite(op,LOW)
delay(500)
}
}
//-------------------------Program developed by R.Girish---------------------//

ملاحظة: في البرنامج

int th = 30 // اضبط درجة الحرارة الدنيا بالدرجة المئوية.

استبدل '30' بالقيمة المطلوبة.

التصميم الثاني

يستشعر مشروع دائرة مروحة التيار المستمر الذي يتم التحكم في درجة حرارته والذي تمت مناقشته أدناه تلقائيًا درجة الحرارة المحيطة ويضبط سرعة محرك المروحة للحفاظ على درجة الحرارة المحيطة تحت السيطرة. تتم هذه المعالجة التلقائية من خلال Arduino ومستشعر درجة الحرارة IC LM35.

بواسطة:عنكيت نيجي

هدفنا:

1). بمجرد أن تزيد درجة حرارة المناطق المحيطة عن 25 درجة مئوية (يمكنك تغيير هذه القيمة في البرنامج وفقًا لحاجتك ، كما هو موضح في قسم العمل) يبدأ المحرك في العمل.

2). ومع كل درجة ارتفاع في درجة الحرارة ، تزداد سرعة المحرك أيضًا.

3). يعمل المحرك بأقصى سرعة له بمجرد ارتفاع درجة الحرارة إلى 40 درجة مئوية (يمكن تغيير هذه القيمة في البرنامج).

مستشعر درجة الحرارة LM35:

لتحقيق المهمة المذكورة أعلاه ، سنستخدم temp. مستشعر LM35 حيث يتم استخدامه على نطاق واسع ومتاح بسهولة.

يحتوي LM35 على 3 دبابيس كما ترى في الشكل.

LM35 IC pinout

1. فين - هذا الدبوس متصل بمصدر طاقة تيار مستمر بين 4 إلى 20 فولت.
2. Vout - يعطي هذا الدبوس ناتجًا على شكل جهد.
3. GND - هذا الدبوس متصل بمحطة gnd للدائرة.

LM35 ، عند توصيله بمصدر طاقة يستشعر درجة حرارة المحيط ويرسل جهدًا مكافئًا وفقًا لارتفاع درجة الحرارة من خلال دبوس الخرج.

يمكن أن يشعر LM35 بأي درجة حرارة. بين -50 درجة إلى +150 درجة مئوية ويزيد الإنتاج بمقدار 10 مللي فولت مع ارتفاع درجة الحرارة بمقدار 1 درجة. وبالتالي فإن الجهد الأقصى الذي يمكن أن ينتج عن ذلك هو 1.5 فولت.

لماذا أردوينو لمشروع وحدة تحكم مروحة التيار المستمر؟

مطلوب Arduino لتغيير القيمة التناظرية المستلمة من طرف الإخراج LM35 إلى القيمة الرقمية وإرسال الإخراج الرقمي المقابل (PWM) إلى قاعدة mosfet.

سوف نستخدم أيضًا ملفات أوامر اردوينو لطباعة درجة الحرارة ، القيمة التناظرية والمخرجات الرقمية المقابلة لـ mosfet على الشاشة التسلسلية لـ ARDUINO IDE.

ما هو دور موسفيت الطاقة؟

لن تكون هذه الدائرة مجدية إذا لم تستطع تشغيل محرك تيار عالي. ومن ثم لتشغيل هذه المحركات ، يتم استخدام الطاقة mosfet.

لماذا يتم استخدام الديود؟

يستخدم الصمام الثنائي لحماية mosfet من الخلف EMF الناتج عن المحرك أثناء التشغيل.

قائمة أجزاء المشروع:

1. LM35

2. أردوينو

3. POWER MOSFET (IRF1010E)

موسفيت الطاقة (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. FAN (محرك)

6. تزويد طاقة المروحة

مخطط الرسم البياني:

تحكم مروحة تيار مستمر يعتمد على درجة حرارة اردوينو

قم بعمل اتصالات كما هو موضح في مخطط الدائرة.

أ) قم بتوصيل دبوس فين من lm358 إلى 5 فولت من اردوينو
ب) قم بتوصيل دبوس vout من lm358 إلى A0 من اردوينو
ج) قم بتوصيل دبوس الأرض من lm358 إلى GND من اردوينو
د) قم بتوصيل قاعدة mosfet بـ PWM pin 10 من اردوينو

الشفرة:

float x// initialise variables
int y
int z
void setup()
{
pinMode(A0,INPUT) // initialize analog pin A0 as input pin
Serial.begin(9600) // begin serial communication
pinMode(10,OUTPUT) // initialize digital pin 10 as output pin
}
void loop()
{
x=analogRead(A0) // read analog value from sensor's output pin connected to A0 pin
y=(500*x)/1023// conversion of analog value received from sensor to corresponding degree Celsius (*formula explained in working section)
z=map(x,0,1023,0,255) // conversion of analog value to digital value
Serial.print('analog value ')
Serial.print( x) // print analog value from sensor's output pin connected to A0 pin on serial monitor( called 'analog value')
Serial.print(' temperature ')
Serial.print( y) // print the temprature on serial monitor( called 'temprature')
Serial.print(' mapped value ')
Serial.print( z*10) // multiply mapped value by 10 and print it ( called ' mapped value ' )
Serial.println()
delay(1000) // 1 sec delay between each print.
if(y>25)
{analogWrite(10,z*10) // when temp. rises above 25 deg, multiply digital value by 10 and write it on PWM pin 10 ( ** explained in working section)
}
else
{analogWrite(10,0) // in any other case PWM on pin 10 must be 0
}
}

العمل (فهم الكود):

أ). متغير X-

هذه هي القيمة التناظرية التي يتلقاها الرقم السري. A0 من طرف الإخراج LM35.

ب). متغير و-

بسبب هذا المتغير فقط ، يعمل محرك المروحة الخاص بنا وفقًا لدرجة الحرارة المقابلة. ما يفعله هذا المتغير هو أنه يغير القيمة التناظرية ، أي المتغير x إلى درجة حرارة البيئة المحيطة.

ص = (500 * س) / 1023
1. يجب تغيير القيمة التناظرية الأولى إلى الجهد المقابل ، أي
1023: 5 فولت
وبالتالي ، (5000 مللي فولت * x) / 1023 فولت
2. نحن نعلم الآن أنه لكل درجة ارتفاع في درجة الحرارة ، يزداد خرج الجهد المقابل بمقدار 10 مللي فولت ، أي
1 درجة مئوية: 10 ملي فولت
ومن ثم ، (5000 مللي فولت * x) / (1023 * 10) درجة

ج). متغير Z-

ض = الخريطة (س ، 0 ، 1023 ، 0،255)
يغير هذا المتغير القيمة التناظرية إلى القيمة الرقمية لإخراج pwm على الطرف 10.

ملاحظة :: نحن نعلم أن lm35 يمكنه توفير 1.5 فولت كحد أقصى وذلك أيضًا عند درجة الحرارة. هو 150 درجة. وهو أمر غير عملي.

هذا يعني أنه في حالة 40 درجة مئوية نحصل على 0.40 فولت و 25 درجة نحصل على 0.25 فولت. نظرًا لأن هذه القيم منخفضة جدًا لـ pwm المناسب على mosfet ، فنحن بحاجة إلى ضربها بعامل.

ومن ثم نقوم بضربها في 10 وبدلاً من ذلك نعطي هذه القيمة كإخراج تناظري إلى PWM pin 10 أي.

** analogWrite (10 ، ض * 10)

الآن ، بالنسبة لـ 0.25 فولت ، يحصل mosfet على 0.25 * 10 = 2.5 فولت

بالنسبة لـ .40 فولت ، تحصل mosfet على 0.40 * 10 = 4 فولت حيث يعمل المحرك تقريبًا بأقصى سرعة

حالة 1. عندما درجة الحرارة. أقل من 25 درجة

في هذه الحالة ، يرسل اردوينو 0 PWM جهدًا إلى الرقم 10 كما في السطر الأخير من الكود

** آخر
{analogWrite (10،0) // في أي حالة أخرى ، يجب أن يكون PWM على الرقم 10 0
} **

نظرًا لأن جهد pwm على قاعدة mosfet هو 0 ، فإنه يظل متوقفًا ويتم فصل المحرك عن الدائرة.

انظر الدائرة المحاكاة في هذه الحالة.

محاكاة التحكم في مروحة اردوينو

كما ترون درجة الحرارة 20 درجة

القيمة التناظرية = 41
درجة الحرارة = 20
القيمة المعينة = 100

ولكن نظرًا لأن درجة الحرارة أقل من 25 درجة ، فإن mosfet يحصل على 0 فولت كما هو موضح في الشكل (يشار إليه بالنقطة الزرقاء).
الحالة 2. عندما درجة الحرارة. أكبر من 25 درجة

عندما تصل درجة الحرارة إلى 25 درجة ، كما هو محدد في رمز pwm ، يتم إرسال إشارة إلى قاعدة mosfet ومع كل ارتفاع درجة في درجة الحرارة ، يزداد جهد PWM أيضًا ، أي

if(y>25)
{analogWrite(10,z*10)
} which is z* 10.

انظر الدائرة المحاكاة في هذه الحالة.

كما ترون مع ارتفاع درجة الحرارة من 20 درجة إلى 40 درجة ، تتغير القيم الثلاثة جميعها وعند 40 درجة مئوية

القيمة التناظرية = 82
درجة الحرارة = 40
القيمة المعينة = 200

نظرًا لأن درجة الحرارة أكبر من 25 درجة ، فإن mosfet يحصل على جهد PWM المقابل كما هو موضح في الشكل (المشار إليه بالنقطة الحمراء).

ومن ثم يبدأ المحرك في العمل عند 25 درجة ومع الارتفاع المقابل في درجة الحرارة لكل درجة حرارة ، يزداد أيضًا الجهد pwm من دبوس 10 إلى قاعدة mosfet. ومن ثم تزداد سرعة المحرك خطيًا مع زيادة درجة الحرارة وتصبح تقريبًا بحد أقصى 40 درجة مئوية.

إذا كان لديك أي استفسارات أخرى بخصوص ما سبق شرحه أعلاه دائرة مروحة التيار المستمر التي يتم التحكم فيها بدرجة الحرارة تلقائيًا باستخدام المروحة و Arduino ، فيمكنك دائمًا استخدام مربع التعليقات أدناه وإرسال أفكارك إلينا. سنحاول العودة في أقرب وقت ممكن.




زوج من: حلبة حماية الثلاجة البسيطة التالي: كيفية تصميم دائرة إمداد الطاقة غير المنقطعة (UPS)