هذا الدليل جزء من: التحكم في المرحل باستخدام أردوينو
هذه مجموعة من الفيديوهات المتعلقة بسباق التتابع. ستجد روابط الفيديوهات الأخرى أسفل هذه المقالة.
استخدام وحدة MAX6675 مع زوج حراري من النوع K ومرحّل وشاشة
يشرح هذا المشروع كيفية توصيل محول MAX6675 لمزدوج حراري من النوع K مع أردوينو، مع دمج مرحّل للتحكم وشاشة لعرض قراءات درجة الحرارة. هذا الإعداد ذو فائدة كبيرة لتطبيقات مختلفة تتطلب مراقبة دقيقة لدرجة الحرارة واستجابات آلية. فيما يلي بعض أفكار المشاريع:

- حماية من السخونة الزائدة للأجهزة الإلكترونية الحساسة
- حاضنة مضبوطة الحرارة للتجارب البيولوجية
- نظام تخمير آلي للقهوة أو البيرة
- مراقبة والتحكم في العمليات الصناعية
- المراقبة البيئية في الدفيئة أو في أي بيئة مضبوطة
الأجهزة/المكونات
لبناء هذا المشروع، ستحتاج إلى المكونات التالية:
- أردوينو أونو (أو لوحة متوافقة)
- وحدة MAX6675 لثرموكوبل من النوع K (في الفيديو عند 00:58)
- وحدة ريليه
- وحدة عرض LED رباعية الأرقام TM1637
- أسلاك التوصيل
- أسلاك التوصيل
دليل الأسلاك
يُشرح التوصيل الكهربائي في الفيديو (في الفيديو عند 05:36). تعتمد التوصيلات المحددة على ما إذا كنت تستخدم شريحة تركيب سطحي أم وحدة على لوحة دوائر مطبوعة. راجع الفيديو للحصول على مخطط توصيل مفصّل.

شرح الشيفرة
يستخدم كود الأردوينو مكتبة MAX6675 لقراءة قيم درجة الحرارة من الزوج الحراري. الأجزاء الأساسية القابلة للتهيئة في الكود هي:
- تعريفات دبابيس المزدوج الحراري:
thermoDO،thermoCS، وthermoCLK(في الفيديو عند [03:53]). يجب تعديل هذه الدبابيس وفقًا لمخطط الأسلاك الخاص بك. - دبوس تحكم المرحل: يُستخدم الدبوس 10 للتحكم في المرحل (في الفيديو عند [05:36]). غيّره إذا لزم الأمر.
- تكوين العرض (في حال الاستخدام): يتضمن الكود أقسامًا لتكوين شاشة TM1637. اضبط دبابيس CLK وDIO إذا لزم الأمر (في الفيديو عند [03:53]).
يتضمن الكود دوال لقراءة درجة الحرارة بالدرجة المئوية والفهرنهايت. جزء حاسم من الكود هو العبارة الشرطية التي تتحقق مما إذا كانت درجة الحرارة تتجاوز عتبة (80.0°C في هذا المثال). إذا كان الأمر كذلك، يتم تفعيل المرحل (الدبوس 10 يتحول إلى الحالة المنخفضة).
// If temperature goes above 80.0C, turn the relay ON
if(thermocouple.readCelsius() > 80.00){
digitalWrite(10, LOW);// Set pin 10 LOW
} else {
digitalWrite(10, HIGH);// Set pin 10 HIGH
}
مشروع مباشر/عرض توضيحي
يعرض الفيديو المشروع قيد العمل (في الفيديو عند 06:59). يقرأ المستشعر درجة الحرارة المحيطة بدقة وتزداد قيمته عند التسخين. كما تُعرض وظيفة المرحل أيضًا.
الفصول
- [00:00] مقدمة
- [00:39] نظرة عامة على المستشعر
- [01:40] وصلات الدبابيس
- [02:22] تثبيت المكتبة
- [03:53] شرح الكود (الإعداد)
- [04:06] شرح الكود (حلقة)
- [05:36] الأسلاك
- [06:59] عرض مباشر
هذا الدليل هو جزء من: التحكم في المرحل باستخدام أردوينو
- كود أردوينو وفيديو لمرحل ثنائي القناة 5V
- التحكم في ريليه 5V باستخدام أردوينو للتحكم في حمل تيار متردد (AC) أو تيار مستمر (DC) مثل مصباح أو محرك
- مستشعر لمسي TTP224 بأربع قنوات لتشغيل أحمال AC/DC باستخدام مرحل
- استخدام وحدة مرحل 5V (تفعيل منخفض) مع أردوينو
- استخدام مفتاح ريد للتحكم في مرحل وأحمال التيار المتردد/المستمر باستخدام أردوينو
- باستخدام وحدة لمس TTP223B ومرحّل للتحكم في أحمال التيار المتردد والمستمر بواسطة لوحة Arduino
- استخدام زر ضغط مع أردوينو لتشغيل ريليه ومصباح تيار متردد
/*
* This is the Arduino code for MAX6675 Thermocouple K-Type with Relay and Display.
* This code has been explained in our video at https://youtu.be/cD5oOu4N_AE.
*
* Written by Ahmad Shamshiri for Robojax Video
* Date: December 9, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*/
// This example is public domain. Enjoy!
// www.ladyada.net/learn/sensors/thermocouple
#include "max6675.h"
int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
int vccPin = 3;
int gndPin = 2;
void setup() {
Serial.begin(9600);
// Use Arduino pins
pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
Serial.println("Robojax: MAX6675 test");
// Wait for MAX chip to stabilize
delay(500);
}
void loop() {
// Basic readout test, just print the current temperature
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// If temperature goes above 80.0C, turn the relay ON
if(thermocouple.readCelsius() > 80.00){
digitalWrite(10, LOW);// Set pin 10 LOW
}else{
digitalWrite(10, HIGH);// Set pin 10 HIGH
}
delay(1000);
}
/*
* هذا هو كود Arduino لجهاز قياس الحرارة MAX6675 من النوع K مع جهاز تحكم وأDisplay
* الخرج على الدبوس 10 موصول لجهاز التحكّم.
* عندما تصل درجة الحرارة إلى القيمة المطلوبة، يقوم الدبوس 10 بتشغيل
* جهاز التحكّم.
*
* تم شرح هذا الكود في الفيديو الخاص بنا على https://youtu.be/cD5oOu4N_AE
*
* كتب بواسطة أحمد نجرابي لفيديو Robojax
* التاريخ: 9 ديسمبر 2017، في أجاكس، أونتاريو، كندا
* تم منح الإذن لمشاركة هذا الكود شريطة الاحتفاظ بهذه
* الملاحظة مع الكود.
* إخلاء المسؤولية: هذا الكود "كما هو" ولأغراض تعليمية فقط.
*
* /
*
*
* // هذا المثال في الملكية العامة. استمتع!
* // www.ladyada.net/learn/sensors/thermocouple
*/
#include "max6675.h"
int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
int vccPin = 3;
int gndPin = 2;
void setup() {
Serial.begin(9600);
// استخدم دبابيس أردوينو
pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
pinMode(10, OUTPUT); // قم بتعيين الدبوس 10 كإخراج
Serial.println("Robojax: MAX6675 test");
// انتظر حتى يستقر شريحة ماكس
delay(500);
}
void loop() {
// اختبار قراءة أساسي، فقط اطبع درجة الحرارة الحالية
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// إذا تجاوزت درجة الحرارة 80.0 درجة مئوية، قم بتشغيل المرحل.
if(thermocouple.readCelsius() > 80.00){
digitalWrite(10, LOW); // اضبط الدبوس 10 على قيمة منخفضة
}else{
digitalWrite(10, HIGH); // ضع الدبوس 10 في الحالة العالية
}
delay(1000);
}
/*
* هذا هو كود أردوينو لمستشعر الحرارة MAX6675 من نوع K مع ريلاي وشاشة. يتم توصيل الطرف 10 بالريلاي. عندما تصل درجة الحرارة إلى القيمة المطلوبة، يقوم الطرف 10 بتشغيل الريلاي. تُعرض درجة الحرارة أيضًا على الشاشة. يجب عليك تضمين مكتبة TM1637 لجعل الشاشة تعمل. يمكنك تنزيل TM1637 من http://robojax.com/learn/library. تم شرحه في الفيديو الخاص بنا على https://youtu.be/cD5oOu4N_AE.
*
* كتب بواسطة أحمد نجرابي لفيديو Robojax. التاريخ: 9 ديسمبر 2017، في أجاكس، أونتاريو، كندا. تم منح الإذن لمشاركة هذا الكود بشرط إبقاء هذه الملاحظة مع الكود. إخلاء المسؤولية: هذا الكود "كما هو" ولأغراض تعليمية فقط.
*/
#include "max6675.h"
#include <Arduino.h>
#include <TM1637Display.h>
int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;
// رمز العرض
#define CLK 2
#define DIO 3
#define TEST_DELAY 2000
TM1637Display display(CLK, DIO);
// رمز لإنهاء العرض
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
int vccPin = 3;
int gndPin = 2;
void setup() {
Serial.begin(9600);
// استخدم دبابيس أردوينو
pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
pinMode(10, OUTPUT); // قم بتعيين الدبوس 10 كخرج
Serial.println("Robojax: MAX6675 test");
// انتظر حتى يستقر شريحة MAX
delay(500);
}
void loop() {
// اختبار قراءة أساسي، فقط اطبع درجة الحرارة الحالية
// رمز العرض
display.setBrightness(0x0f);
// جميع الشرائح في وضع التشغيل
uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
display.setSegments(data);
delay(1);
int temp = (int) thermocouple.readCelsius();
display.showNumberDec(temp, true, 3, 0);
// رمز لإنهاء العرض
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// إذا تجاوزت درجة الحرارة 80.0 درجة مئوية، قم بتشغيل المرحل.
if(thermocouple.readCelsius() > 80.00){
digitalWrite(10, LOW); // set pin 10 منخفض
}else{
digitalWrite(10, HIGH); // قم بتعيين الدبوس 10 إلى HIGH
}
delay(1000);
}
/*
* هذا هو كود الأردوينو لجهاز قياس الحرارة MAX6675 مع كابل حراري من نوع K مع ريلاي وعرض.
* الدبوس 10 متصل بالريلاي.
* عندما تصل درجة الحرارة إلى القيمة المطلوبة، يقوم الدبوس 10 بتشغيل الريلاي.
*
* تم شرح هذا الكود في الفيديو الخاص بنا على https://youtu.be/cD5oOu4N_AE
*
* كتب بواسطة أحمد شمشيري لفيديو روبوجَکس
* التاريخ: 2 يونيو 2018، في أجاكس، أونتاريو، كندا
* تم منح الإذن لمشاركة هذا الكود بشرط الاحتفاظ بهذه الملاحظة مع الكود.
* تنويه: هذا الكود "كما هو" ولأغراض تعليمية فقط.
*
* /
*
* // هذا المثال ضمن الملكية العامة. استمتع!
* // www.ladyada.net/learn/sensors/thermocouple
*/
#include "max6675.h"
int thermoDO1 = 4;
int thermoCS1 = 5;
int thermoCLK1 = 6;
int thermoDO2 = 7;
int thermoCS2 = 8;
int thermoCLK3 = 9;
MAX6675 thermocouple1(thermoCLK1, thermoCS1, thermoDO1); // أول ترمومتر مزدوج
MAX6675 thermocouple2(thermoCLK2, thermoCS2, thermoDO2); // المزدوج الحراري الثاني
int vccPin1 = 3;
int gndPin1 = 2;
int relayPin1 =10;
int vccPin2 = 11;
int gndPin2 = 12;
int relayPin2 =13;
void setup() {
Serial.begin(9600);
// استخدم دبابيس الأردوينو
pinMode(vccPin1, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin1, OUTPUT); digitalWrite(gndPin, LOW);
pinMode(relayPin1, OUTPUT); // قم بتعيين الدبوس 10 كدخل للثرموبلاي1
pinMode(vccPin2, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin2, OUTPUT); digitalWrite(gndPin, LOW);
pinMode(relayPin2, OUTPUT); // قم بتعيين الدبوس 13 كمخرج لجهاز الثيرموقouple2
Serial.println("Robojax: MAX6675 test");
// انتظر حتى يستقر شريحة MAX
delay(500);
}
void loop() {
// اختبار قراءة أساسي، فقط اطبع درجة الحرارة الحالية
// للمزدوج الحراري 1
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// إذا كانت درجة الحرارة تتجاوز 80.0 درجة مئوية، قم بتشغيل المرحل.
if(thermocouple1.readCelsius() > 80.00){
digitalWrite(relayPin1, LOW); // اضبط دبابيس الريلاي relayPin1 على LOW
}else{
digitalWrite(relayPin1, HIGH); // قم بتعيين دبوس relayPin1 إلى HIGH
}
// الزنبرك الحراري 1 النهاية
// للمزدوج الحراري 2
Serial.print("C2 = ");
Serial.println(thermocouple2.readCelsius());
Serial.print("F2 = ");
Serial.println(thermocouple2.readFahrenheit());
// إذا كانت درجة الحرارة تتجاوز 80.0 درجة مئوية، قم بتشغيل المرحل.
if(thermocouple2.readCelsius() > 80.00){
digitalWrite(relayPin2, LOW); // قم بتعيين دبوس relayPin2 إلى منخفض
}else{
digitalWrite(relayPin2, HIGH); // قم بضبط دبابيس المرrelayPin2 على العالي
}
// thermocouple2 نهاية
delay(1000);
}
الموارد والمراجع
ملفات📁
لا توجد ملفات متاحة.