ค้นหาโค้ด

รหัส Arduino และวิดีโอสำหรับการควบคุมรีเลย์ผ่าน USB ด้วยคำสั่ง PowerShell

รหัส Arduino และวิดีโอสำหรับการควบคุมรีเลย์ผ่าน USB ด้วยคำสั่ง PowerShell

ในบทช่วยสอนนี้ เราจะสำรวจวิธีการควบคุมรีเลย์โดยใช้อาร์ดูอิโนและโมดูล USB เป็น UART ผ่านคำสั่ง Windows PowerShell ทั้งหมดนี้ การตั้งค่านี้ช่วยให้คุณเปิดและปิดไฟจากระยะไกลได้โดยการส่งคำสั่งเฉพาะผ่านทางบรรทัดคำสั่ง เมื่อจบคำแนะนำนี้ คุณจะมีระบบที่ทำงานได้ซึ่งสามารถควบคุมอุปกรณ์ไฟฟ้ากระแสสลับได้อย่างปลอดภัยและมีประสิทธิภาพ

CP2102 usb to UART with relay

เราจะใช้ความสามารถในการสื่อสารแบบอนุกรมของอาร์ดูอิโนเพื่อฟังคำสั่งที่ส่งจาก PowerShell คำสั่งเฉพาะที่ใช้จะเป็นจำนวนเต็มซึ่งสอดคล้องกับการเปิดและปิดรีเลย์ โครงการนี้ต้องจัดการกับแรงดันไฟฟ้ากระแสสลับอย่างระมัดระวัง ดังนั้นต้องปฏิบัติตามข้อควรระวังด้านความปลอดภัยตลอดกระบวนการ เพื่อความชัดเจนเพิ่มเติม โปรดดูวิดีโอเต็ม (ในวิดีโอที่ 00:00)

อธิบายฮาร์ดแวร์

ส่วนประกอบหลักที่เกี่ยวข้องในโครงการนี้ ได้แก่ บอร์ดอาร์ดูอิโน โมดูล USB เป็น UART และรีเลย์ อาร์ดูอิโนทำหน้าที่เป็นสมองของการทำงาน ประมวลผลคำสั่งอนุกรมและควบคุมรีเลย์ตามนั้น โมดูล USB เป็น UART อำนวยความสะดวกในการสื่อสารระหว่างอาร์ดูอิโนและคอมพิวเตอร์ของคุณ ทำให้สามารถป้อนคำสั่งผ่าน PowerShell ได้

รีเลย์ทำหน้าที่เป็นสวิตช์ที่ควบคุมการไหลของไฟฟ้าไปยังหลอดไฟ เมื่อรีเลย์ถูกเปิดใช้งาน มันจะปิดวงจร ทำให้กระแสไฟฟ้าไหลและหลอดไฟติด เมื่อปิดใช้งาน มันจะเปิดวงจร ตัดไฟและทำให้หลอดไฟดับ ซึ่งช่วยให้สามารถควบคุมอุปกรณ์แรงดันสูงได้อย่างปลอดภัยจากระบบแรงดันต่ำ

รายละเอียดจากดาต้าชีต

ผู้ผลิตFTDI
หมายเลขชิ้นส่วนFT232R
แรงดันไฟฟ้าลอจิก/IO3.3 V / 5 V
แรงดันไฟฟ้าจ่าย4.5 V ถึง 5.5 V
กระแสเอาต์พุต (ต่อช่อง)50 mA
กระแสสูงสุด (ต่อช่อง)100 mA
คำแนะนำความถี่ PWMไม่มี
เกณฑ์ลอจิกอินพุต0.3 V (ต่ำ), 0.7 V (สูง)
แรงดันตก / RDS(on) / อิ่มตัว0.5 V สูงสุด
ขีดจำกัดความร้อน125 °C
แพ็คเกจ32 LQFP
หมายเหตุ / รุ่นต่างๆตัวแปลง 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;        // เก็บไบต์ที่ได้รับ
#define relay 8 // พิน 8 สำหรับรีเลย์
int comON = 6; // รหัสเพื่อเปิดไฟ
int comOFF = 2; // รหัสเพื่อปิดไฟ

ในข้อความนี้ เรากำหนดตัวแปร RX_Value เพื่อเก็บคำสั่งที่ได้รับจากซีเรียลมอนิเตอร์ relay ถูกตั้งไว้ที่พิน 8 และเรากำหนดคำสั่งสองคำสั่ง: comON สำหรับเปิดไฟและ comOFF สำหรับปิดไฟ

FT232-AZ-USB-to_TTL-serial-adapter
void setup() {
  Serial.begin(9600); // เริ่มการสื่อสารอนุกรมที่ 9600 บอด
  pinMode(relay, OUTPUT); // ตั้งค่าพินรีเลย์เป็นเอาต์พุต
  digitalWrite(relay, HIGH); // ปิดรีเลย์ในตอนแรก
}

ในฟังก์ชัน setup() เราจะเริ่มการสื่อสารอนุกรมที่ 9600 บอด ซึ่งต้องตรงกับการตั้งค่าใน PowerShell พินรีเลย์ถูกกำหนดเป็นเอาต์พุต และเราตั้งค่าเป็น HIGH เพื่อให้แน่ใจว่ารีเลย์ปิดเมื่อโปรแกรมเริ่มทำงาน

Wirig relay module to AC load
if (Serial.available()) {
    RX_Value = Serial.read(); // อ่านไบต์ที่เข้ามา
    if (RX_Value == comON) {
        digitalWrite(relay, LOW); // เปิดรีเลย์
    } else if (RX_Value == comOFF) {
        digitalWrite(relay, HIGH); // ปิดรีเลย์
    }
}

โค้ดส่วนนี้แสดงให้เห็นว่าโปรแกรมฟังข้อมูลอนุกรมที่เข้ามาอย่างไร หากได้รับคำสั่งที่ตรงกับ comON รีเลย์จะถูกเปิดใช้งาน ทำให้ไฟติด ในทางกลับกัน หากได้รับ comOFF รีเลย์จะถูกปิดใช้งาน ทำให้ไฟดับ ลูปนี้ดำเนินต่อไปเรื่อยๆ ทำให้สามารถควบคุมจาก PowerShell ได้อย่างตอบสนอง

การสาธิต / สิ่งที่คาดหวัง

เมื่อการตั้งค่าเสร็จสมบูรณ์และอัปโหลดโค้ดแล้ว คุณควรจะสามารถเปิด PowerShell และส่งคำสั่งเพื่อควบคุมไฟได้ การพิมพ์คำสั่งที่เกี่ยวข้องควรทำให้รีเลย์ทำงานทันที เปิดหรือปิดไฟตามที่ต้องการ ควรใช้ความระมัดระวังเมื่อจัดการกับอุปกรณ์ไฟฟ้ากระแสสลับ ตรวจสอบให้แน่ใจว่าไม่มีสายไฟที่มีกระแสไฟฟ้าเปิดเผยระหว่างการทดสอบ

ไทม์สแตมป์วิดีโอ

  • 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

ไฟล์อื่น ๆ