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

เราจะใช้ความสามารถในการสื่อสารแบบอนุกรมของอาร์ดูอิโนเพื่อฟังคำสั่งที่ส่งจาก PowerShell คำสั่งเฉพาะที่ใช้จะเป็นจำนวนเต็มซึ่งสอดคล้องกับการเปิดและปิดรีเลย์ โครงการนี้ต้องจัดการกับแรงดันไฟฟ้ากระแสสลับอย่างระมัดระวัง ดังนั้นต้องปฏิบัติตามข้อควรระวังด้านความปลอดภัยตลอดกระบวนการ เพื่อความชัดเจนเพิ่มเติม โปรดดูวิดีโอเต็ม (ในวิดีโอที่ 00:00)
อธิบายฮาร์ดแวร์
ส่วนประกอบหลักที่เกี่ยวข้องในโครงการนี้ ได้แก่ บอร์ดอาร์ดูอิโน โมดูล USB เป็น UART และรีเลย์ อาร์ดูอิโนทำหน้าที่เป็นสมองของการทำงาน ประมวลผลคำสั่งอนุกรมและควบคุมรีเลย์ตามนั้น โมดูล USB เป็น UART อำนวยความสะดวกในการสื่อสารระหว่างอาร์ดูอิโนและคอมพิวเตอร์ของคุณ ทำให้สามารถป้อนคำสั่งผ่าน PowerShell ได้
รีเลย์ทำหน้าที่เป็นสวิตช์ที่ควบคุมการไหลของไฟฟ้าไปยังหลอดไฟ เมื่อรีเลย์ถูกเปิดใช้งาน มันจะปิดวงจร ทำให้กระแสไฟฟ้าไหลและหลอดไฟติด เมื่อปิดใช้งาน มันจะเปิดวงจร ตัดไฟและทำให้หลอดไฟดับ ซึ่งช่วยให้สามารถควบคุมอุปกรณ์แรงดันสูงได้อย่างปลอดภัยจากระบบแรงดันต่ำ
รายละเอียดจากดาต้าชีต
| ผู้ผลิต | FTDI |
|---|---|
| หมายเลขชิ้นส่วน | FT232R |
| แรงดันไฟฟ้าลอจิก/IO | 3.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 ถูกต้อง
- ใช้แผ่นระบายความร้อนหากรีเลย์คาดว่าจะรับโหลดสูง
- ตรวจสอบการเชื่อมต่อทั้งหมดอีกครั้งก่อนจ่ายไฟให้ระบบ
- เก็บโมดูลให้ห่างจากความชื้นและวัสดุนำไฟฟ้า
- ใช้กราวด์ร่วมกันสำหรับส่วนประกอบทั้งหมดเพื่อหลีกเลี่ยงไฟกระชาก
คำแนะนำการเดินสายไฟ


เริ่มต้นโดยเชื่อมต่อพิน 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 สำหรับปิดไฟ

void setup() {
Serial.begin(9600); // เริ่มการสื่อสารอนุกรมที่ 9600 บอด
pinMode(relay, OUTPUT); // ตั้งค่าพินรีเลย์เป็นเอาต์พุต
digitalWrite(relay, HIGH); // ปิดรีเลย์ในตอนแรก
}
ในฟังก์ชัน setup() เราจะเริ่มการสื่อสารอนุกรมที่ 9600 บอด ซึ่งต้องตรงกับการตั้งค่าใน PowerShell พินรีเลย์ถูกกำหนดเป็นเอาต์พุต และเราตั้งค่าเป็น HIGH เพื่อให้แน่ใจว่ารีเลย์ปิดเมื่อโปรแกรมเริ่มทำงาน

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 - บทสรุปและเคล็ดลับความปลอดภัย
++
/*
* 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
สิ่งที่คุณอาจต้องการ
-
อเมซอน
-
อเมซอน
-
อีเบย์
-
อาลีเอ็กซ์เพรสPurchase 1 channel 5V KY-019 relay from AliExpresss.click.aliexpress.com
แหล่งข้อมูลและเอกสารอ้างอิง
ยังไม่มีทรัพยากรเลย
ไฟล์📁
ไฟล์ Fritzing
-
4-Channel 5v Relay module
4-Channel 5v Relay Shield.fzpz0.02 MB -
FT232-AZ-USB-to_TTL-serial-adapter
FT232-AZ-USB-to_TTL-serial-adapter.fzpz0.01 MB
ไฟล์อื่น ๆ
-
Power Script to control relay over USB
robojax-usb-relay-powershell_scripts.zip