كود البحث

كود Arduino وفيديو للتحكم في مرحّل عبر USB من خلال سطر أوامر PowerShell

كود Arduino وفيديو للتحكم في مرحّل عبر USB من خلال سطر أوامر PowerShell

في هذا الدليل التعليمي، سنستعرض كيفية التحكم في مرحّل باستخدام أردوينو ووحدة USB إلى UART، وكل ذلك عبر أوامر Windows PowerShell. يتيح هذا الإعداد تشغيل ضوء وإيقافه عن بُعد عن طريق إرسال أوامر محددة عبر سطر الأوامر. بنهاية هذا الدليل سيكون لديك نظام عملي يمكنه التحكم في أجهزة التيار المتردد بأمان وفعالية.

CP2102 usb to UART with relay

سنستخدم قدرات الاتصال التسلسلي في Arduino للاستماع إلى الأوامر المرسلة من PowerShell. ستكون الأوامر المحددة أعدادًا صحيحة تتوافق مع تشغيل وإيقاف المرحّل. يتطلب هذا المشروع التعامل بحذر مع جهد التيار المتردد، لذلك ينبغي مراعاة احتياطات السلامة طوال العملية. لمزيد من التوضيح، تأكد من مشاهدة الفيديو الكامل (في الفيديو عند 00:00).

شرح الأجهزة

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

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

تفاصيل ورقة البيانات

الشركة المصنعةإف تي دي آي
رقم القطعةFT232R
جهد المنطق/الإدخال والإخراج3.3 فولت / 5 فولت
جهد التغذية4.5 فولت إلى 5.5 فولت
تيار الخرج (لكل قناة)50 ملي أمبير
التيار الأقصى (لكل قناة)100 ميلي أمبير
إرشادات تردد PWMغير متاح
عتبات منطق الإدخال0.3 V (منخفض)، 0.7 V (مرتفع)
هبوط الجهد / RDS (في حالة التشغيل)/ التشبع0.5 V كحد أقصى
الحدود الحرارية125 درجة مئوية
حزمةحزمة LQFP بـ32 دبوسًا
ملاحظات / تنويعاتمحول USB إلى UART

  • تأكد من مستويات الجهد المناسبة للريليه ووحدة UART.
  • استخدم مشتتًا للحرارة إذا كان من المتوقع أن يتحمل المرحل أحمالًا عالية.
  • تحقق مرة أخرى من جميع التوصيلات قبل تشغيل النظام.
  • أبقِ الوحدة بعيدًا عن الرطوبة والمواد الموصلة.
  • استخدم تأريضًا مشتركًا لجميع المكونات لتجنّب نبضات الجهد.

تعليمات التوصيل الكهربائي

Arduino wiring for FTDI usb with relay
Arduino wiring for FTDI usb with relay
Arduino wiring for CP2102 usb to UART with relay
Arduino wiring for CP2102 usb to UART with relay

ابدأ بتوصيل دبوس VCC في وحدة المرحّل إلى دبوس 5V على لوحة الأردوينو. بعد ذلك، قم بتوصيل دبوس GND في المرحّل إلى أحد دبابيس الأرضي في الأردوينو. يجب توصيل دبوس التحكم (الموسوم بـ IN أو ما شابه) من المرحّل إلى الدبوس الرقمي 8 في الأردوينو.

لوحدة USB إلى UART، قم بتوصيل دبوس TX بدبوس RX للأردوينو ودبوس RX في الوحدة بدبوس TX للأردوينو. تأكد من توصيل دبوس الأرضي في وحدة USB بنفس أرضية الأردوينو لضمان مرجع مشترك. يتيح هذا الإعداد اتصالاً سلسًا بين الأردوينو والكمبيوتر عبر PowerShell.

أمثلة على الكود ودليل خطوة بخطوة

byte RX_Value = 0;        // stores received byte
#define relay 8 // pin 8 for relay
int comON = 6; // code to turn ON the light
int comOFF = 2; // code to turn OFF the light

في هذا المقتطف، نعرّف المتغيرRX_Valueلتخزين الأمر المستلم من المراقب التسلسلي. الـrelayتم تعيينه إلى الدبوس 8، ونعرّف أمرين:comONلتشغيل الضوء وcomOFFلإيقاف تشغيله.

FT232-AZ-USB-to_TTL-serial-adapter
void setup() {
  Serial.begin(9600); // Start serial communication at 9600 baud
  pinMode(relay, OUTPUT); // Set relay pin as output
  digitalWrite(relay, HIGH); // Turn the relay OFF initially
}

في الـsetup()في الدالة نهيئ الاتصال التسلسلي بمعدل 9600 باود، ويجب أن يتطابق هذا المعدل مع إعدادات PowerShell. تم تكوين دبوس المرحل كمخرج، ونضبطه على HIGH لضمان أن المرحل معطل عند بدء تشغيل البرنامج.

Wirig relay module to AC load
if (Serial.available()) {
    RX_Value = Serial.read(); // Read the incoming byte
    if (RX_Value == comON) {
        digitalWrite(relay, LOW); // Turn the relay ON
    } else if (RX_Value == comOFF) {
        digitalWrite(relay, HIGH); // Turn the relay OFF
    }
}

يوضح مقطع الشيفرة هذا كيف يستمع البرنامج إلى البيانات التسلسلية الواردة. إذا تم استلام أمر يتطابق معcomON, يتم تنشيط المرحل، مما يؤدي إلى إضاءة المصباح. وعلى العكس، إذاcomOFFعند استلامه، يتم تعطيل المرحل، مما يؤدي إلى إطفاء الضوء. تستمر هذه الحلقة، مما يسمح بالتحكم التفاعلي من PowerShell.

عرض توضيحي / ما الذي تتوقعه

عند اكتمال الإعداد ورفع الشيفرة، يجب أن تكون قادرًا على فتح PowerShell وإرسال الأوامر للتحكم في الضوء. كتابة الأمر المقابل يجب أن تُفعّل المرحّل فورًا، مما يؤدي إلى تشغيل الضوء أو إيقافه حسب الرغبة. كن حذرًا عند التعامل مع أجهزة التيار المتردد (AC)، وتأكد من عدم انكشاف أي أسلاك حية أثناء الاختبار.

الطوابع الزمنية للفيديو

  • 00:00- مقدمة ونظرة عامة على المشروع
  • 02:30- شرح الأسلاك
  • 05:00- شرح الكود
  • 08:15- عرض توضيحي لأمر PowerShell
  • 10:45- الخلاصة ونصائح السلامة

الصور

Wirig relay module to AC load
Wirig relay module to AC load
FT232-AZ-USB-to_TTL-serial-adapter
FT232-AZ-USB-to_TTL-serial-adapter
Arduino wiring for FTDI usb with relay
Arduino wiring for FTDI usb with relay
CP2102 usb to UART with relay
CP2102 usb to UART with relay
CP2102 usb to UART with relay
CP2102 usb to UART with relay
CP2102 usb to UART with relay
CP2102 usb to UART with relay
Arduino wiring for CP2102 usb to UART with relay
Arduino wiring for CP2102 usb to UART with relay
91-Arduino code to control a relay via USB from the command line using Windows PowerShell
اللغة: C++
++
/*
 * This Arduino code is to read and decode serial monitor
 * code sent from USB to UART or USB to UART FTDI chip
 * commands sent from Windows PowerShell or other systems commands.
 * When the code is detected and matched with the present codes
 * for example, 6 is to turn the relay ON and 2 to turn OFF the relay,
 * in turn, will turn ON the AC bulb.
 Watch the video for this code: https://youtu.be/HzLCkzX5q3w
 * 
 */
// Written by Ahmad S. Robojax at 19:11 on Saturday, April 01, 2018
byte RX_Value = 0;        // stores received byte

#define relay 8 // pin 8 for relay

int comON = 6;//code to turn ON the light
int comOFF = 2;// code to turn OFF the light

void setup() {
  // Robojax code for USB command to Relay
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  pinMode(relay,OUTPUT);// define pin 8 as output
  digitalWrite(relay,HIGH);// turn the relay OFF
  Serial.println("Robojax USB Command");
}

void loop() { // run over and over
  // Robojax code for USB command to Relay
  if (Serial.available()) {


    RX_Value = Serial.read();
    if(Serial.read() == comON)
    {
          digitalWrite(relay,LOW);// turn the relay ON
          Serial.print("Code to Turn ON:");
          Serial.println(RX_Value);// print the received command
    }
    if(RX_Value == comOFF)
    {
         digitalWrite(relay,HIGH);// turn the relay OFF
         Serial.print("Code to Turn OFF:");
         Serial.println(RX_Value); // print the received command     
    }

  }
}// loop

الأشياء التي قد تحتاجها

الموارد والمراجع

لا توجد موارد حتى الآن.

ملفات📁

Fritzing File

ملفات أخرى