ผู้เขียน: admin
ตัวอย่างการควบคุม สเต็ปปิ้งมอเตอร์ขนาด 3 แอมป์ ด้วย Arduino + ไมโคร Step Driver TB6600 เบื้องต้น
ตัวอย่างการควบคุม สเต็ปปิ้งมอเตอร์ขนาด 3 แอมป์ ด้วย Arduino + ไมโคร Step Driver TB6600 เบื้องต้น
Linear_Slide_LSSX05_TB6600 https://drive.google.com/drive/folders/1YALYYlV6PUrQz-IYNR843RhyF7twXqQ4?usp=sharing
สเต็ปปิ้งมอเตอร์ขนาด 3 แอมป์ ปรับตั้ง ดิฟต์สวิตช์ของไมโคร Step Driver TB6600 ดังนี้
- DIP Switch S1 S2 S3 ตั้งเป็น On Off On
- DIP Switch S4 S5 S6 ตั้งเป็น On Off On
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <AccelStepper.h> // The X Stepper pins #define PUL_PIN 2 // PUL_PIN #define DIR_PIN 3 // DIR_PIN AccelStepper stepper(AccelStepper::DRIVER, PUL_PIN, DIR_PIN); void setup() { stepper.setMaxSpeed(3500.0); // ปรับความเร็ว หน่วยเป็น พัลส์ต่อวินาที steps per second stepper.setAcceleration(5500.0); // ปรับความเร่ง หน่วยเป็น พัลส์ต่อวินาทีกำลังสอง steps per second per second stepper.setCurrentPosition(0); //เซตค่าตำแหน่งเริ่มเท่ากับ 0 ก่อนเข้าลูป } void loop() { stepper.runToNewPosition(0); //เริ่มต้นที่ตำแหน่ง 0 delay(500); stepper.runToNewPosition(1500); // ระยะการเคลื่อนที่ไปทางบวก ด้านขวา จำนวน พัลส์ delay(500); stepper.runToNewPosition(0); delay(500); stepper.runToNewPosition(-1500); // ระยะการเคลื่อนที่กลับ ทางลบ ด้านซ้าย จำนวน พัลส์ delay(500); } |
ตัวอย่างการสั่งงานด้วย Arduino Code สำหรับทดสอบการทำงานบอลสกรู
ตัวอย่างการสั่งงานด้วย Arduino Code
- กระแสที่ 3 แอมป์
- Micro Step = 4, PPR = 800
ตัวอย่างการสั่งงานด้วย Arduino Code สำหรับทดสอบการทำงานเบื้องต้น
- กระแสที่ 3 แอมป์
- Micro Step = 4, PPR = 800
Linear_Slide_LSSX05_TB6600
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <AccelStepper.h> // The X Stepper pins #define PUL_PIN 2 // PUL_PIN #define DIR_PIN 3 // DIR_PIN AccelStepper stepper(AccelStepper::DRIVER, PUL_PIN, DIR_PIN); void setup(){ stepper.setMaxSpeed(10000.0); // ปรับความเร็ว stepper.setAcceleration(10000.0); // ปรับความเร่ง } void loop(){ stepper.runToNewPosition(0); delay(500); stepper.runToNewPosition(10000); // ระยะการเคลื่อนที่ไป delay(500); stepper.runToNewPosition(0); delay(500); stepper.runToNewPosition(-10000); // ระยะการเคลื่อนที่กลับ delay(500); } |
ตัวอย่างการสั่งงานด้วย Arduino Code แบบมี Home Limit Switch
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#include <AccelStepper.h> // The X Stepper pins #define STEPPER1_DIR_PIN 3 #define STEPPER1_STEP_PIN 2 AccelStepper stepper(AccelStepper::DRIVER, STEPPER1_STEP_PIN, STEPPER1_DIR_PIN); const int buttonPin = 7; //home switch int state = 0; int buttonState = 0; int MaxAcc = 6000; int MaxSpd = 4000; void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT_PULLUP); stepper.setMaxSpeed(MaxSpd); // ทดลองปรับความเร็ว stepper.setAcceleration(MaxAcc); // ทดลองปรับความเร่ง } void loop() { //Serial.println(state); buttonState = digitalRead(buttonPin); if((buttonState == HIGH)&&(state == 0))// { stepper.setMaxSpeed(MaxSpd); // หมุนช้าเข้าหาสวิตช์ Home stepper.setAcceleration(MaxAcc); stepper.setSpeed(-500); stepper.runSpeed(); } else if ((buttonState == LOW) &&(state == 0)) { stepper.setMaxSpeed(MaxSpd); stepper.setAcceleration(MaxAcc); stepper.setCurrentPosition(0); state = 1; delay(1000); } if(state ==1 ) { stepper.runToNewPosition(12000); delay(1000); stepper.runToNewPosition(0); delay(1000); } } |
Free Drive Protocol USB Video Class (UVC) คืออะไร?
- *UVC free driver, Plug & Play
- Free Drive Protocol USB Video Class (UVC) เป็นมาตรฐานการสื่อสารแบบโอเพ่นซอร์สสำหรับอุปกรณ์วิดีโอ USB ช่วยให้อุปกรณ์วิดีโอสามารถเชื่อมต่อและทำงานกับคอมพิวเตอร์โดยไม่ต้องติดตั้งไดรเวอร์พิเศษ
UVC มีข้อดีหลายประการ ดังนี้:
- ใช้งานง่าย: ผู้ใช้ไม่จำเป็นต้องติดตั้งไดรเวอร์พิเศษเพื่อใช้อุปกรณ์ UVC กับคอมพิวเตอร์
- เข้ากันได้: อุปกรณ์ UVC เข้ากันได้กับระบบปฏิบัติการ Windows, macOS และ Linux
- ราคาไม่แพง: อุปกรณ์ UVC มักมีราคาไม่แพงกว่าอุปกรณ์วิดีโอแบบดั้งเดิม
- ใช้งานหลากหลาย: อุปกรณ์ UVC สามารถใช้กับแอปพลิเคชันวิดีโอที่หลากหลาย เช่น การสนทนาทางวิดีโอ การถ่ายภาพ และการสตรีมวิดีโอ
ประเภทของอุปกรณ์ UVC
อุปกรณ์ UVC มีหลายประเภท ดังนี้:
- เว็บแคม: เว็บแคม UVC มักใช้สำหรับการสนทนาทางวิดีโอและการถ่ายภาพ
- กล้องวิดีโอ: กล้องวิดีโอ UVC มักใช้สำหรับการบันทึกวิดีโอ
- การ์ดจับภาพ: การ์ดจับภาพ UVC ช่วยให้คุณสามารถจับภาพวิดีโอจากแหล่งต่างๆ เช่น เครื่องเล่น DVD หรือกล้องวิดีโอแอนาล็อก
- อุปกรณ์อื่นๆ: ยังมีอุปกรณ์ UVC อื่นๆ อีกมากมาย เช่น ไมโครโฟนและลำโพง
วิธีใช้ Free Drive Protocol USB Video Class (UVC)
- การใช้ Free Drive Protocol USB Video Class (UVC) นั้นง่ายมาก เพียงทำตามขั้นตอนต่อไปนี้:
- เชื่อมต่ออุปกรณ์ UVC กับคอมพิวเตอร์ของคุณ
- รอให้คอมพิวเตอร์ของคุณตรวจจับอุปกรณ์
- เปิดแอปพลิเคชันวิดีโอที่คุณต้องการใช้
- เลือกอุปกรณ์ UVC ของคุณจากรายการอุปกรณ์วิดีโอ
ตัวอย่างการใช้งาน Free Drive Protocol USB Video Class (UVC)
- Free Drive Protocol USB Video Class (UVC) สามารถใช้กับแอปพลิเคชันวิดีโอที่หลากหลาย ดังนี้:
- การสนทนาทางวิดีโอ: คุณสามารถใช้เว็บแคม UVC สำหรับการสนทนาทางวิดีโอผ่าน Skype, Zoom หรือ Google Meet
- การถ่ายภาพ: คุณสามารถใช้กล้อง UVC สำหรับการถ่ายภาพด้วยแอปพลิเคชันเช่น Windows Camera หรือ Photo Booth
- การสตรีมวิดีโอ: คุณสามารถใช้กล้อง UVC สำหรับการสตรีมวิดีโอผ่าน Twitch หรือ YouTube
- การจับภาพวิดีโอ: คุณสามารถใช้การ์ดจับภาพ UVC สำหรับการจับภาพวิดีโอจากแหล่งต่างๆ เช่น เครื่องเล่น DVD หรือกล้องวิดีโอแอนาล็อก
สรุป
- Free Drive Protocol USB Video Class (UVC) เป็นมาตรฐานการสื่อสารที่มีประโยชน์สำหรับอุปกรณ์วิดีโอ USB ช่วยให้อุปกรณ์วิดีโอสามารถเชื่อมต่อและทำงานกับคอมพิวเตอร์โดยไม่ต้องติดตั้งไดรเวอร์พิเศษ UVC ใช้งานง่าย เข้ากันได้ ราคาไม่แพง และใช้งานหลากหลาย
ตัวอย่างการคำนวณ เซนเซอร์วัดอุณหภูมิและความชื้น Calculation example Temperature Humidity Sensor Voltage Output 0-10V
1. การคำนวณอุณหภูมิ
สมการหา อุณหภูมิ (℃) = (TV – V0) / Vr * Tr + T0
เมื่อ
- TV : คือแรงดันไฟขาออก, หน่วย V
- V0: คือค่าแรงดันไฟฟ้าขั้นต่ำ หน่วย V ตัวอย่างเช่น 0 – 10V ใช้ค่า V0 = 0
- Vr: คือช่วงแรงดันไฟฟ้า หน่วย V เช่น 0 -10V ใช้ค่า Vr = 10
- Tr: คือช่วงอุณหภูมิ หน่วย °C เช่น -20 ~ 80°C ใช้ค่า Tr = 80
- T0: คือค่าอุณหภูมิต่ำสุด หน่วย ℃ เช่น -20~80℃, ใช้ค่า T0 = -20
ตัวอย่างการคำนวณ
- แรงดันไฟฟ้าที่ TV คือ 5V
- ช่วงคือ -20 ~ 80
- จากนั้นอุณหภูมิ ℃ = (TV – V0) / Vr*Tr + T0
- จากนั้นอุณหภูมิ ℃ = (5-0) / 10*80 + -20 = 20℃
2. การคำนวณ Humidity
สมการหา Humidity (%RH) = (HV – V0) / Vr*Hr + H0
- HV: แรงดันเอาต์พุต, หน่วย V
- V0: ค่าแรงดันไฟฟ้าขั้นต่ำ หน่วย V ตัวอย่างเช่น 0-10V, V0 = 0
- Vr: ช่วงแรงดันไฟฟ้า หน่วย V เช่น 0 – 10V, Vr = 10
- Hr : ช่วงความชื้น หน่วย %RH เช่น 0~100%RH จากนั้น Hr =100 H0: ค่าความชื้นขั้นต่ำ หน่วย %RH เช่น 0~100°C, H0=0
ตัวอย่างการคำนวณ
- แรงดันไฟฟ้าที่ HV คือ 5V
- ช่วงคือ 0 ~ 100%RH
- จากนั้นความชื้น = 5/10*100 = 50%RH
แรงดันไฟฟ้าขาออกสูงสุดคือไม่เกินแรงดันไฟฟ้าของแหล่งจ่ายไฟ -2V เพื่อให้ได้เอาต์พุต 10V ที่อุณหภูมิสูงหรือความชื้นสูงแนะนำให้จ่ายไฟอย่างน้อย 12V
วิธีการใช้งาน Arduino Opta PLC อย่างง่าย
วิธีการใช้งาน Arduino Opta PLC อย่างง่าย
- พูดถึง Ardunio เป็นแพลตฟอร์มยอดนิยมของคนที่สนใจการเขียนโปรแกรมเพื่อควบคุมฮาร์แวร์ทั้งในแบบเป็นงานอดิเรก หรือแม้กระทั้งนำไปใช้ในระดับมืออาชีพ แต่สำหรับ Arduino Opta PLC ตัวนี้ เพิ่งเปิดตัวมาได้ไม่นาน มันเกิดจากความร่วมมือกันระหว่าง Arduino และผู้ผลิตPLC ที่มีชื่อดังยี่ห้อ Finder ต่อไปเราจะเรียก PLC ตัวนี้ สั้นๆ ว่า Opta อ่านว่า ออปต้า
รูปที่1
- ในปัจจุบัน Opta มีทั้งหมดสามรุ่นได้แก่ Opta Lite, Opta RS485, และ Opta WiFi ในบทความนี้จะได้ทดลองใช้ Opta RS485 หมายถึง ในรุ่นนี้จะมีช่องทางการสื่อสาร RS485 ให้ด้วยที่จะมีประโยชน์มาก ซึ่งจะกล่าวเพิ่มเติมในภายหลัง
- แพลตฟอร์ม Arduino ที่ได้รับการจดจำมากที่สุดตลอดกาลตอนนี้ก็คือ Arduino Uno มันสามารถทำให้ผู้ที่ยังไม่เคยใช้งานการเขียนโปรแกรมมาก่อนสามารถเริ่มต้นได้อย่างรวดเร็ว รวมถึงการมีไลเบอรีจำนวนมากให้สามารถนำมาต่อยอดใช้งานได้ทันที ที่สำคัญคือฮาร์ดแวร์ที่เป็นมาตรฐานลดระยะเวลาที่ต้องออกแบบ PCB ใหม่ ทั้งหมดทำให้ผู้ใช้สามารถใช้งานได้ง่ายและนำไปต่อยอดได้อย่างรวดเร็ว
- จากที่กล่าวมาทั้งหมดนี้ ผู้ผลิตสัญญาณว่า จะนำแนวคิดที่กล่าวมาข้างต้นนี้ มาใช้กับArduino Opta เช่นเดียวกัน โดยสามารถรองรับการเขียนโปรแกรมบน Arduino IDE และได้เพิ่ม PLC IDE ที่สามารถรองรับภาษา PLC ตามมาตรฐาน IEC 61131-3 ซึ่งเป็นภาษาที่ใช้ในการเขียนโปรแกรม PLC ที่ช่างเทคนิค วิศวกร ต่างๆ คุ้นเคยกันอยู่แล้ว ผมคิดว่า ทาง Arduino พยายามที่นำ แพลตฟอร์ม Arduino เข้าสู่โลกของอุตสาหกรรม ที่ต้องการความน่าเชื่อถือ ความเข้ากันได้ของอินพุตและเอาต์พุต ร่วมถึงภาษาที่ใช้ในการพัฒนาซึ่งบุคคลากรในอุตสาหกรรมคุ้นเคยกันอยู่แล้ว
ผมสามารถสรุปข้อดีของ Arduino Opta ได้ดังนี้
- สามารถเขียนโปรแกรมแบบคลาสสิค ด้วยภาษาซี บน Arduino IDE หรือจะใช้ PLC IDE ซึ่งเขียนด้วยภาษา PLC ตามมาตรฐาน IEC 61131-3 ก็ได้ แล้วแต่ความถนัดของผู้ใช้งาน
- รองรับโปรโตคอลการสื่อสาร Fieldbus และ Modbus
- รองรับ WiFi (เฉพาะรุ่นที่มี)
- รองรับ Arduino Cloud
- มีการออกแบบที่ทนทาน พร้อมตัวยึดรางแบบ Dinrail
คุณลักษณะของ Arduino Opta
ในส่วนนี้ เราจะมีสำรวจสเปคของ Arduino Opta กัน ซึ่งสามารถทำตารางสรุปได้ดังนี้
รูปที่2
โดยทุกรุ่นมีสเปคคร่าวๆ ดังนี้
- แรงดันไฟเลี้ยง สามารถใช้ได้ตั้งแต่ 12 ถึง 24 โวลต์
- อินพุต 8 ช่อง สามารถกำหนดเป็น ดิจิตอล อินพุต หรือ เป็นอนาลอกอินพุต ก็ได้
- เอาต์พุตเป็น รีเลย์ 4 ช่อง หน้าสัมผัสทดกระแสได้ 10 แอมป์
- ตัวประมวลผล เป็นแบบแกนคู่ จาก ST เบอร์ STM32H747XI
- หน่วยความจำแรม 1 เมกะไบต์
- หน่วยความจำแฟลต 2 เมกะไบต์
อินพุตของ Arduino Opta
- ตามเอกสารจากดาต้าชีส ตัว Opta สามารถกำหนดอินพุตให้สามารถรับได้ทั้งอนาลอกและดิจิตอล โดยเมื่อกำหนดให้อินพุตเป็นแบบดิจิตอล สามารถรองรับสัญญาณ LOW หรือ HIGH ได้ แต่เมื่อกำหนดเป็นอินพุตอนาลอก สามารถรองรับแรงดัน 0 ถึง 10 โวลต์ดีซี
เอาต์พุตของ Arduino Opta
- เอาต์พุตของ Opta เป็นหน้าสัมผัสรีเลย์แบบ ปกติเปิด (normally open NO) โดยรีเลย์แต่ละตัวจะมีหน้าสัมผัสทนกระแสได้ 10A 250VAC
ทดลองเขียนโปรแกรมภาษาซี บนArduino IDE
- เราสามารถเขียนโปรแกรมภาษาซีบน Arduino IDE แล้วโปรแกรมเข้าไปยังตัว Opta ได้แบบเดียวกับบอร์ด Arduino ทั่วไป ในบทความนี้ได้ทดสอบบน Arduino IDE 2.0.4
- เมื่อเปิด Arduino IDE ขึ้นมา ให้ไปที่ Tools à Board à Board Manager
รูปที่ 3
ในช่องค้นหา ใส่คำว่า opta มองหา Arduino Mbed OS Opta Boards by Arduino จากนั้นคลิ๊กติดตั้งให้เรียบร้อย
รูปที่ 4
- ขั้นต่อไป กลับมาที่ ตัว Opta ให้ต่อสายไฟเลี้ยงเข้า สามารถใช้ได้ตั้งแต่ 12 ถึง 24 โวลต์ ให้สังเกตดีๆ เพราะมีช่องบวก สองช่อง ช่องลบ สองช่อง
รูปที่ 5
- สุดท้ายเป็นการต่อสาย USB type C เข้ากับตัว Opta สายนี้ใช้เพื่อโหลดโค้ดและมอนิเตอร์ค่าระหว่างการทำงานได้
รูปที่ 6
- กลับมาที่หน้าต่างของ Arduino IDE ไปที่ Tools à board àArduino Mbed OS Opta Boardà Opta
- ส่วนการเลือกพอร์ตให้ไปที่ Tools à Port
รูปที่ 8
- ถึงขั้นตอนนี้ เราสามารถเริ่มต้นการเขียนโปรแกรมได้แล้ว โดยตัวอย่างโปรแกรมเป็นดังนี้
ภาพรวมของโปรแกรมจะส่งสัญญาณไปควบคุมLED ให้กะพริบในรูปแบบที่เรียกว่า Kinght Rider คือจะกะพริบแบบสแกนวนไปทั้งซ้ายและขวา ที่ตำแหน่งของ LED status ตัวอย่างโค้ด บรรทัดที่16 ถึง 25 จะสร้างการกะพริบจากตัวแรก ไปยังตัวสุดท้าย ส่วนโค้ดบรรทัดที่ 28 ถึง 37 จะสร้างการกะพริบจากท้ายกลับมายังตัวแรก วนกลับไปมาเรื่อย
ชุดรางเลื่อนสไลด์ สายพานไทม์มิ่งขับ Gantry linear Slide Timing belt Drive W45X 2-Axis XY
ชุดรางเลื่อนสไลด์ สายพานไทม์มิ่งขับ Gantry linear rail guide precision High-speed 45X 2-Axis 3XY
- HTD3M-W15mm Timing Belt Synchronous Timing Pulleys HTD3M-24T Drive
- ความกว้างราง 45mm
ในชุดประกอบด้วย
- 1pcs x X Axis High Speed Stepping Motor Linear Slide Timing Belt Stroke Double Shaft Diameter 12mm
- 1pcs x X Axis High Speed Stepping Motor Linear Slide Timing Belt Stroke Shaft Diameter 12mm
- 1pcs x Y Axis High Speed Stepping Motor Linear Slide Timing Belt Stroke Shaft Diameter 12mm
- 1pcs x แกนเพลาสแตนเลส Stainless Steel Linear Shafts Diameter 12mm
- 2pcs x คัปปลิ้ง ข้อต่อเพลา ตรงอลูมิเนียม Diaphragm Coupling 8x12mm
- 2pcs x คัปปลิ้ง ข้อต่อเพลา ตรงอลูมิเนียม Diaphragm Coupling 12x12mm
- 4pcs x 45X Footing Base
- 2pcs x 45X XY Cross Connnection
- 2pcs x LSTB94 อุปกรณ์ติดตั้งมอเตอร์ 45X Accessories 45/60 Nema23 Motor Installation
- 2pcs x Stepper Motor
ตัวอย่างการประกอบ โครงสร้างรถ อลูมิเนียมโปรไฟล์
วงจรรีเลย์กลับทางหมุนมอเตอร์ Motor reversing relay circuit
วงจรรีเลย์กลับทางหมุนมอเตอร์ Motor reversing relay circuit ทางหมุนมอเตอร์ (Motor Drive) เป็นระบบที่ใช้ในการควบคุมมอเตอร์หรือเครื่องขับเคลื่อนอื่น ๆ ซึ่งสามารถปรับความเร็วหรือทิศทางการหมุนของมอเตอร์ได้ตามที่ต้องการ เมื่อนำทั้งวงจรรีเลย์และทางหมุนขั้วมอเตอร์มาใช้ร่วมกัน จะได้วงจรควบคุมมอเตอร์ที่สามารถเปิด-ปิดหรือควบคุมการทำงานของมอเตอร์ได้ตามที่ต้องการ ต่อไปนี้คือตัวอย่างวงจรที่ใช้ร่วมกันระหว่างรีเลย์และ มอเตอร์ ในที่นี้, การปิดหรือเปิดของรีเลย์จะทำให้มอเตอร์เปิดหรือปิดตามนั้น โดยสวิทช์หรือสัญญาณควบคุมจะถูกนำมาใช้ควบคุมรีเลย์ และจากนั้นรีเลย์จะควบคุมการทำงานของมอเตอร์.
วงจรควบคุมมอเตอร์ด้วยรีเลย์เบื้องต้น
- RY1 Relay1 , RY2 Relay2 รีเลย์ 2 ชุด (SPDT Relay)
- MT มอเตอร์
การทำงาน
- Relay 1 = ON / Relay 2 = OFF มอเตอร์หมุน CW
- Relay 1 = OFF / Relay 2 = ON มอเตอร์หมุน CCW
แบบรางสกรู XY 2 แกน XYZ 3 แกน สำหรับระบบอัตโนมัติของหุ่นยนต์อุตสาหกรรม แขนหุ่นยนต์คาร์ทีเซียนหลายแกนเคลื่อนที่เชิงเส้น
รางบอลสกรู 2-axis 3-axis XY / XYZ /XZ สำหรับระบบอัตโนมัติ หุ่นยนต์อุตสาหกรรม แขนหุ่นยนต์คาร์ทีเซียนหลายแกน เคลื่อนที่เชิงเส้น รางนำบอลสกรู Stroke ขนาด 50 – 1000mm. ใช้ระบบขับเคลื่อน สเต็ปเปอร์มอเตอร์ / ไดร์เวอร์ / คอนโทรลเลอร์ / ลิมิตสวิตช์ ขอบเขตการใช้งาน เครื่องพิมพ์ 3 มิติ สายการผลิตอัตโนมัติ เครื่องตรวจจับพลาสมา, แขนหุ่นยนต์
โครงตั้ง 3 แกน XYZ Gantxry
คานยื่น 3 แกน XYZ Cantilever
โครงตั้ง 2 แกน 2XY Gantxry
ตัวที 2 แกน XZ Type T
คานยื่น 2 แกน XY Cantilever
ข้าม 2 แกน XY Cross