// التحكم في محرك
// بناءً على درجة الحرارة باستخدام حساس الحرارة
// الكود مكتوب لحساس الحرارة 22 و يجب تغييره ل 11 في الورشة
// التغيير يكون في السطر رقم 12 ورقم 35
// إعداد المهندس/ أحمد درويش
// تضمين مكتبة حساس الحرارة
#include <dht.h>
dht DHT; // إنشاء متغير للتحكم في حساس الحرارة
// تعريف الطرف الموصل بالحساس
#define DHT22_PIN 10 // الطرف الموصل بحساس الحرارة
// تعريف أطراف التحكم بالمحرك
int in1 = 8; // طرف التحكم بالاتجاه الأول
int in2 = 7; // طرف التحكم بالاتجاه الثاني
// إعداد البيئة الأولية للمشروع
void setup() {
// إعداد أطراف التحكم بالمحرك كمخارج
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
// إيقاف المحرك في البداية
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
// تهيئة الاتصال التسلسلي لعرض البيانات
Serial.begin(9600);
}
// الحلقة الرئيسية: تعمل باستمرار
void loop() {
// قراءة بيانات الحساس
int chk = DHT.read22(DHT22_PIN); // قراءة درجة الحرارة والرطوبة من حساس DHT11
// طباعة درجة الحرارة في Serial Monitor
Serial.print("Temperature: ");
Serial.print(DHT.temperature);
Serial.println(" °C");
// التحكم بالمحرك بناءً على درجة الحرارة
if (DHT.temperature > 25) { // إذا كانت درجة الحرارة أعلى من 25 درجة مئوية
forward(); // تشغيل المحرك في الاتجاه الأول
} else { // إذا كانت درجة الحرارة 25 أو أقل
backward(); // تشغيل المحرك في الاتجاه الثاني
}
delay(2000); // تأخير لمدة ثانيتين بين كل قراءة
}
// دالة تشغيل المحرك في الاتجاه الأول (مع عقارب الساعة)
void forward() {
digitalWrite(in1, HIGH); // تفعيل الاتجاه الأول
digitalWrite(in2, LOW); // تعطيل الاتجاه الثاني
Serial.println("Motor running FORWARD");
}
// دالة تشغيل المحرك في الاتجاه الثاني (عكس عقارب الساعة)
void backward() {
digitalWrite(in1, LOW); // تعطيل الاتجاه الأول
digitalWrite(in2, HIGH); // تفعيل الاتجاه الثاني
Serial.println("Motor running BACKWARD");
}
اعتبار المصباحين كطرفي الموتور
الأحمر يمثل الدوران مع عقارب الساعة
الأخضر يمثل الدوران عكس عقارب الساعة