التخطي إلى المحتوى الرئيسي

مميزة

الطاقة المتجددة: بدائل نظيفة للمستقبل

الطاقة المتجددة: بدائل نظيفة للمستقبل الطاقة المتجددة هي موارد طاقة تتجدد باستمرار ولا تنفد. تأتي من مصادر طبيعية لا تنضب. تستخدم هذه الطاقة لتوليد الكهرباء وتشغيل المصانع وتسخين المياه. خلافا للوقود الأحفوري، لا تنتج انبعاثات كربونية ضارة. أهم مصادر الطاقة المتجددة • الطاقة الشمسية: تلتقط الألواح الكهروضوئية ضوء الشمس وتحوله إلى كهرباء. يمكن تركيبها على أسطح المنازل أو في مزارع شمسية واسعة. تكلفة الألواح انخفضت 80% منذ 2010. • طاقة الرياح: تستخدم توربينات الرياح لتحويل حركة الهواء إلى كهرباء. تنتشر في المناطق الساحلية والممرات الجبلية. توربينة واحدة يمكنها تزويد 500 منزل بالكهرباء. • الطاقة الكهرومائية: تولد الكهرباء من تدفق المياه في السدود والأنهار. تمثل أكبر مصدر للطاقة المتجددة عالميا. توفر طاقة مستقرة على مدار الساعة. • الطاقة الحرارية الأرضية: تستخدم حرارة باطن الأرض لتوليد الكهرباء أو التدفئة. تعمل بشكل مستقل عن الظروف الجوية. متوفرة في المناطق البركانية والينابيع الساخنة. • الكتلة الحيوية: تحول المخلفات العضوية إلى طاقة. تشمل الخشب والمخلفات الزراعية وغا...

برمجة بوابة مأوى سيارات باستخدام Arduino

في عصر التكنولوجيا المتقدمة، أصبحت الأنظمة الذكية جزءًا لا يتجزأ من حياتنا اليومية. واحدة من هذه الأنظمة هي "بوابة مأوى السيارات"، وهي نظام يتم استخدامه لإدارة دخول وخروج السيارات من المواقف أو المآوي بشكل آلي. في هذا المقال، سنقوم بتصميم نظام بوابة مأوى سيارات باستخدام لوحة Arduino ومكونات أخرى مثل مستشعر الحركة (PIR Sensor) ومحرك صغير.



الفكرة الأساسية للنظام:

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

المكونات المطلوبة:

  • لوحة Arduino Uno: اللوحة الرئيسية التي ستقوم بتنفيذ التعليمات البرمجية.
  • مستشعر الحركة PIR: يكتشف وجود حركة أمام البوابة.
  • محرك صغير DC مع لوحة درايفر L298N: لتحريك البوابة.
  • بطارية 9V: لتوفير الطاقة اللازمة للنظام.
  • أسلاك موصلة: لربط جميع المكونات معًا.

التوصيلات:

  • مستشعر الحركة PIR: ربط زين VCC بـ 5V في Arduino، وزين GND بـ GND، وزين OUT بـ PIN 2.
  • محرك DC ولوحة L298N: ربط أطراف المحرك مع مخارج IN1 وIN2 في لوحة L298N، وربط ENA مع PIN 9 في Arduino.

شرح عمل النظام:

  • مستشعر الحركة PIR: يعمل المستشعر على الكشف عن أي حركة أمام البوابة. عندما يكتشف حركة، يقوم بإرسال إشارة رقمية عالية (HIGH) إلى Arduino.
  • Arduino: تقوم Arduino بتلقي الإشارة من المستشعر. إذا كانت الإشارة عالية، فإن Arduino ترسل إشارة إلى لوحة L298N لتشغيل المحرك وفتح البوابة. بعد فترة زمنية معينة (محددة في الكود)، تقوم Arduino بإغلاق البوابة تلقائيًا.

الكود البرمجي:


// Defining Pins
const int pirPin = 2; // PIR sensor connected to PIN 2
const int motorSpeedPin = 9; // Motor speed control connected to PIN 9
const int motorDirPin1 = 10; // Motor direction control 1 connected to PIN 10
const int motorDirPin2 = 11; // Motor direction control 2 connected to PIN 11

void setup() {
  Serial.begin(9600); // Start serial communication for debugging
  pinMode(pirPin, INPUT); // Set PIR pin as input
  pinMode(motorSpeedPin, OUTPUT); // Set motor speed pin as output
  pinMode(motorDirPin1, OUTPUT); // Set motor direction pin 1 as output
  pinMode(motorDirPin2, OUTPUT); // Set motor direction pin 2 as output
}

void loop() {
  int pirValue = digitalRead(pirPin); // Read the value from PIR sensor

  if (pirValue == HIGH) { // If motion is detected
    Serial.println("Motion Detected! Opening Gate...");
    openGate(); // Open the gate
    delay(5000); // Wait for 5 seconds (time for car to pass)
    closeGate(); // Close the gate
  } else {
    Serial.println("No Motion Detected.");
  }

  delay(100); // Small delay between readings
}

// Function to open the gate
void openGate() {
  digitalWrite(motorSpeedPin, 255); // Set motor speed to maximum
  digitalWrite(motorDirPin1, HIGH); // Set motor direction to forward
  digitalWrite(motorDirPin2, LOW);
  delay(2000); // Keep the gate open for 2 seconds (adjust as needed)
  stopMotor(); // Stop the motor
}

// Function to close the gate
void closeGate() {
  digitalWrite(motorSpeedPin, 255); // Set motor speed to maximum
  digitalWrite(motorDirPin1, LOW); // Set motor direction to reverse
  digitalWrite(motorDirPin2, HIGH);
  delay(2000); // Keep the gate closed for 2 seconds (adjust as needed)
  stopMotor(); // Stop the motor
}

// Function to stop the motor
void stopMotor() {
  digitalWrite(motorSpeedPin, 0); // Stop the motor
}

شرح الكود:

  • قراءة بيانات المستشعر: يتم قراءة قيمة المستشعر باستخدام الدالة digitalRead(pirPin). إذا كانت القيمة HIGH، فهذا يعني أن هناك حركة.
  • فتح البوابة: يتم تشغيل المحرك في اتجاه واحد باستخدام الدوال digitalWrite لتحديد السرعة والاتجاه. يتم ترك المحرك يعمل لمدة 2 ثانية لفتح البوابة.
  • إغلاق البوابة: بعد مرور السيارة (5 ثوانٍ)، يتم تشغيل المحرك في الاتجاه المعاكس لإغلاق البوابة.
  • إيقاف المحرك: بعد فتح أو إغلاق البوابة، يتم إيقاف المحرك باستخدام دالة stopMotor.

تعليقات

المشاركات الشائعة