โครงงานออกแบบสร้างและพัฒนาเครื่องทดสอบแรงกดอัตโนมัติ

โครงงานออกแบบสร้างและพัฒนาเครื่องทดสอบแรงกดอัตโนมัติ

Design and development of force testing machine
อาจารย์ที่ปรึกษาโครงงาน ผู้ช่วยศาสตราจารย์ ดร.กิตติพงษ์ เยาวาจา

รายชื่อสมาชิคกลุ่ม

นาย ภาณุพงศ์ หมั่นบุญ

VDO ทีมงาน

นาย รัฐธรรมนูญ ใจป้อม

นายวรวัฒน์ มโนมัธย์ M.

เครื่องกรอฟัน (Dental Drill)

รูปที่ 3.9 Linear Guide Rail
ใช้สำหรับกรอฟัน เป็นชนิด Ball Bearing มีรูน้ำระบายความร้อนที่หัว BUR มีระบบการใส่หัว BUR
เป็นแบบกดปุ่ม (Push Button) สามารถฆ่าเชื้อโรค โดยการนึ่งฆ่าเชื้อได้ โดยทนความร้อนได้สูงถึง
135สามารถต่อสเปรย์ฉีดน้ำได้ ลูกปืนทำด้วยวัสดุชนิด Ceramic Ball Bearing และมีความเร็วรอบไม่น้อยกว่า
300,000 rpm และมีกำลังไม่น้อยกว่า 20 วัตต์ สามารถป้องกันการไหลย้อนกลับของน้ำและลมขณะใช้งาน
ใช้แรงดันลมไม่น้อยกว่า 2.7 บาร์ (39 PSI) ด้ามกรอทำด้วย Stainless steel หรือวัสดุไร้สนิม

โหลดเซลล์ (Load Cell)
เป็นอุปกรณ์ที่ใช้ในการเปลี่ยนจากแรงหรือน้ำหนักที่กระทำต่อตัวโหลดเซลล์ เป็นสัญญาณทางไฟฟ้า
สามารถนำสัญญาณทางไฟฟ้านี้ไปจ่ายเข้าจอแสดงผล Display แสดงค่าเป็นน้ำหนักหรือแรงที่กระทำได้โดยใช้
Strain Gauge มาติดตั้งในบริเวณที่มีการเปลี่ยนแปลงรูปทรงของ Load Cell เมื่อมีแรงมากระทำกับตัว Load
Cell จะทำให้ Strain Gauge ที่ติดอยู่ในบริเวณที่มีการเปลี่ยนรูปทรง ยืด หรือ หด ตัว
ทำให้ค่าความต้านทานที่ตัว Strain Gauge เปลี่ยนไป

(ที่มา : http://www.tic.co.th/index.php?op=tips-detail&id=379)

3.7.1 หลักการทำงานของโหลดเซลล์

(ที่มา : https://www.thaieasyelec.com/article-wiki/latest-blogs/how-to-use-load-cell-and-hx711-amplifier-module.html)
  ตามรูปภาพ ในจุดที่ Strain Gauge ได้รับแรงกด (Compression) จะทำให้ Strain
Gauge หดตัวเข้าหากัน และในจุดที่ได้รับแรงดึง (tension) จะทำให้ strain gauge ถูกยืดออก
จึงทำให้ค่าความต้านทานของ Strain Gauge เปลี่ยนแปลงไป Strain Gauge ทั้ง 4 ตัวที่อยู่บน Load Cell
แบบ Straight Bar จะถูกต่ออยู่ด้วยกันในลักษณะของวงจร Wheatstone Bridge
รูปที่ 3.20 โครงสร้างของโหลดเซลล์

รูปที่ 3.21 การทำงานของโหลดเซลล์เมื่อมีแรงมากระทำ

(ที่มา : https://www.thaieasyelec.com/article-wiki/latest-blogs/how-to-use-load-cell-and-hx711-amplifier-module.html)
Load cell สามารถเอาไปประยุกต์ทำเครื่องชั่งตวงในอุตสาหกรรมได้ (วัดแรงกด Compression)
หรือ ใช้ทดสอบวัสดุ (วัดแรงดึง Tensile) ได้อีกด้วย การทดสอบความแข็งแรงของชิ้นงาน
การทดสอบการเข้ารูปชิ้นงาน (Press fit) ใช้สำหรับงานทางด้านวัสดุ โลหะ ทดสอบโลหะ ชิ้นส่วนรถยนต์
วิศวกรรมโยธา ทดสอบคอนกรีต ทดสอบไม้ ฯลฯ ซึ่งมีความจำเป็นอย่างมากงานภาคอุตสาหกรรม
3.7.2 การคำนวณน้ำหนักของการใช้ Load Cell
พิกัดของโหลดเซลล์ = ( (น้ำหนักที่ต้องการชั่ง + น้ำหนักของเพลทตราชั่ง) x 2 ) / จำนวนของ Load cell )
3.7.3 HX711 Weight Sensor Amplifier Dual Channel Module
เป็นโมดูลสำหรับขยายสัญญาณจาก Load Cell เซ็นเซอร์วัดน้ำหนัก ซึ่งปกติค่าจะน้อยมากๆ
ตัวโมดูลนี้จะขยายสัญญาณ ออกเป็นสัญญาณดิจิตอล 24bit I2C ทำให้สามารถนำ Arduino NodeMCU
Raspberry Pi หรือ MCU อื่นๆ มาอ่านค่าสัญญาณ output ได้ง่ายๆ สายเชื่อมต่อเข้า MCU มี 2
เส้นและไฟเลี้ยง 2 เส้น สามารถใช้ไฟเลี้ยงได้ตั้งแต่ 2.6-5.5 v ใช้กระแสในการทำงานเพียง 1.5 mA
รองรับการทำงานที่อุณหภูมิ -40 ถึง 80 องศาเซลเซียล

รูปที่ 3.22 Bridge Circuit และ Wheatstone Bridge

รูปที่ 3.23 HX711
(ที่มา : http://www.satorshop.com/product/642/weighing-sensor-ad-module-dual-channel-24-bit-a-d-conversion-hx711)
3.7.4 วิธีเชื่อมต่อ Load Cell และ HX711 เข้ากับ Arduino

(ที่มา : https://www.thaieasyelec.com/article-wiki/latest-blogs/how-to-use-load-cell-and-hx711-amplifier-module.html)

Load Cell HX711
Red
Black
White
Green
ตารางที่ 3. 1 ความหมายของสีแต่ละสาย

3.7.5 วิธีการ Calibrate Load Cell
การ Calibrate นั้นเราจำเป็นจะต้องมี Load หรือ น้ำหนักที่เราทราบค่าอยู่แล้ว เพื่อทำการ
Calibrate โดยทั่วไปมักจะใช้ ตุ้มน้ำหนักมาตรฐานเพื่อทำการ Calibrate

(ที่มา : http://www.acclcalibration.com/products/%E0%B8%88%E0%B8%B3%E0%B8%AB%E0%B8%99%E0%B9%88%E0%B8

ขั้นตอนการดำเนินการออกแบบและสร้างเครื่องทดสอบแรงกดอัตโนมัติ
3.10.1 อุปกรณ์ขับเคลื่อน
ในส่วนของอุปกรณ์ขับเคลื่อน ประกอบไปด้วย Ball screw, Linear guide way,

Absolute encoder, Servo motor, Servo driver และ Coupling

รูปที่ 3.27 Power Supply EPS3010S DC 30V 10A

รูปที่ 3.28 อุปกรณ์ขับเคลื่อน

รูปที่ 3.29 Absolute encoder

3.10.2 การทำฐานรองและแท่นยึดสำหรับ
โดยฐานรองใช้แผ่นเหล็กขนาด กว้าง 9 ซ.ม. ยาว 17 ซ.ม. หนา 3 ม.ม.
และทำการเจาะรูทั้งหมด 6 รู ขนาดเส้นผ่านศูนย์กลาง 7 ม.ม. จากนั้นนำมาเจียระไนเพื่อลบคม

รูปที่ 3.30 Servo motor

รูปที่ 3.31 ขั้นตอนการตัดเหล็กแผ่นทำฐานรอง

รูปที่ 3.32 ขั้นตอนการเจาะเหล็ก

ส่วนแท่นยึดจะใช้เหล็กพับฉาก 90 องศา ขนาด กว้าง 3 ซ.ม. สูง 2 ซ.ม. หนา 2 ม.ม.
และทำการเจาะรูทั้งหมด 4 รู ขนาดเส้นผ่านศูนย์กลาง 7 ม.ม.

3.10.3 การทำแคลมป์จับเครื่องกรอฟัน

โดยใช้อะลูมิเนียม 2 ชิ้นนำมาประกบกัน ขนาด 1.5×1.5 ซ.ม. ยาว 3 ซ.ม. และเจาะรูทั้งหมด

2 รู ขนาดเส้นผ่านศูนย์กลาง 5 ม.ม. จากนั้นกัดเป็นร่องเพื่อจับกับเครื่องกรอฟัน ขนาด 8 ม.ม.
และปาดผิวออกให้เหลือ กว้าง 0.9 ซ.ม. และปาดเก็บงานให้เรียบร้อย
รูปที่ 3.33 ขั้นตอนการเจียระไนลบคมออก

รูปที่ 3.34 แผ่นเหล็กพับสำหรับยึด

รูปที่ 3.35 ติดตั้งแผ่นรองกับแท่นยึด

รูปที่ 3.36 ก้อนอะลูมิเนียมสำหรับทำแคลมป์จับเครื่องกรอฟัน

รูปที่ 3.37 ขั้นตอนการอะลูมิเนียม

รูปที่ 3.38 ขั้นตอนการกัดร่องอะลูมิเนียม

3.10.4 การทำฐานยึดกับอุปกรณ์ขับเคลื่อน
โดยใช้แผ่นสแตนเลสขนาด กว้าง 28 ซ.ม. ยาว 40 ซ.ม. หนา 3 ม.ม.
เป็นแผ่นรองฐานและใช้เหล็กกล่อง 2 ชิ้นขนาด มาเชื่อมกับฐานรองกับอุปกรณ์ขับเคลื่อน

รูปที่ 3.39 ขั้นตอนการปาดผิวและเก็บงาน

รูปที่ 3.40 ติดตั้งเครื่องกรอฟันและ Load cell กับอุปกรณ์ขับเคลื่อน

รูปที่ 3.41 เจียระไนขอบฐานรองเพื่อลบคม

รูปที่ 3.42 เหล็กกล่อง

3.10.5 การทำฐานรองกระดูกหมู
โดนใช้แผ่นเหล็กขนาด 11.5 x 11.5 ซ.ม. หนา 4 ม.ม. มาเจาะรูขนาด 8 ม.ม. 6 รู

เพื่อนำมายึดกับเหล็กพับเพื่อทำเป็นแท่นวางหมู

รูปที่ 3.43 เชื่อมเหล็กกล่องกับฐานรอง

รูปที่ 3.44 ขั้นตอนการเจาะรูเพื่อยึดกับเหล็กพับ

3.10.6 ขั้นตอนการวางระบบควบคุมการทำงานของระบบ
รูปที่ 3.45 การยึดแผ่นเหล็กกับเหล็กพับ

รูปที่ 3.46 ติดตั้งแผ่นเหล็กกับฐานรอง

รูปที่ 3.47 ขั้นตอนการวางอุปกรณ์ควบคุมของระบบ

3.11 การเชื่อมต่ออุปกรณ์ load cell เข้าสู่ Arduino UNO R3
3.11.1 นำ load cell และที่กรอฟันมาติดตั้งเข้าด้วยกัน

3.11.2 ต่อสาย load cell และ HX77 เข้ากับ Arduino UNO R3 ดังรูป

( ที่มา : https://www.instructables.com/id/Arduino-Scale-With-5kg-Load-Cell-and-HX711-Amplifi/ )

รูปที่ 3.48 ที่กรอฟันที่ติดตั้งกับ load cell แล้ว

รูปที่ 3.49 การต่อ load cell กับ Arduino

รูปที่ 3.51 กดปุ่ม Verify เพื่อตรวจสอบความถูกต้องและ Compile โค้ดโปรแกรม
3.11.3 เข้าโปรแกรม Arduino IDE เพื่อเขียนโปรแกรมใส่ Arduino UNO R3 แต่ในโปรแกรมจะไม่มี
HX711 Library เราจึงต้องใส่เพิ่มเข้าไป

3.11.4 ทำการ Calibrate loadcell เพื่อให้ค่าที่แน่นอน

ปุ่ม Verify

รูปที่ 3.50 HX711-master เป็นไฟล์ Library ที่เพิ่มเข้าไป

รูปที่ 3.52 กดปุ่ม Upload เพื่อ Upload โค้ด โปรแกรมไปยังบอร์ด Arduino ผ่านทางสาย USB

รูปที่ 3.53 เมื่ออับโหลดเรียบร้อยแล้ว จะแสดงข้อความแถบข้างล่าง “Done uploading”

และบอร์ดจะเริ่มทำงานตามที่เขียนโปรแกรมไว้ได้ทันที
ปุ่ม Upload

Done uploading

รูปที่ 3.54 ทำการกดที่ Serial Monitor เพื่อเรียกหน้าต่างออกมา
3.11.5 ทำการ Calibration เพื่อให้ได้ค่า calibration factor เพื่อนำเอาไปชั่งน้ำหนัก

Serial Monitor

รูปที่ 3.55 อุปกรณ์ที่นำมา Calibration ซึ่งมีน้ำหนัก 109 กรัม

รูปที่ 3.56 ปรับให้ได้ค่าที่ตรงกับอุปกรณ์ที่นำมา Calibration เพื่อหาค่า
calibration factor หากไม่ตรงให้กด + เพื่อเพิ่ม หรือ กด – เพื่อ ลบ

รูปที่ 3.57 นำค่า calibration factor ที่มาจากโปรแกรมที่แล้ว มาใส่ในโปรแกรมชั่งน้ำหนัก
3.11.6 โปรแกรมชั่งน้ำหนัก

ค่า calibration factor

ค่า calibration factor

รูปที่ 3.58 กดที่ Serial Monitor เพื่อชั่งน้ำหนัก ในการทดสอบ Arduino UNO R3 ที่ชั่งมามีน้ำหนัก 64 กรัม
แต่ในโปรแกรม อ่านได้ 65 กรัม จึงสรุปได้กว่าอาจมีความคลาดเคลื่อน ประมาณ 0.1%

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

รูปที่ 4.1 ด้านในของกระดูกส่วนขาหลังหมูชิ้นที่ 1

รูปที่ 4.2 ด้านในของกระดูกส่วนขาหลังหมูชิ้นที่ 2

กระดูกชิ้นที่ 2

เปรียบเทียบกระดูกทั้ง 2 ชิ้น

จะเห็นได้ว่ากระดูกชิ้นที่ 1 จะมีความกลวงข้างในของกระดูก ส่วนชิ้นที่ 2
จะมีความหนาของมวลกระดูกมากกว่าชิ้นที่ 1 และมีความใหญ่มากกว่าอย่างเห็นได้ชัด
รูปที่ 4.3 ด้านในของกระดูกส่วนขาหลังหมูชิ้นที่ 2

รูปที่ 4.4 ด้านในของกระดูกส่วนขาหลังหมูชิ้นที่ 2

รูปที่ 4.5 เปรียบเทียบความแตกต่างของกระดูกส่วนขาหลังหมู

4.3 ตัวอย่างขั้นตอนการทดลอง

4.4 ผลการทดลองของการเจาะกระดูก

รูปที่ 4.6 ตำแหน่งเริ่มต้นก่อนทำการเจาะกระดูก

รูปที่ 4.7 ตำแหน่งที่เริ่มเคลื่อนไปเจาะกระดูก

รูปที่ 4. 8 ตำแหน่งสุดท้ายของการเจาะกระดูก

เมื่อทำการทดลอง
จะสังเกตได้ว่าเวลาที่ใช้ในการเจาะกระดูกที่ความเร็วต่างกันและความหนาของกระดูกต่างกัน
จะใช้เวลาในการเจาะที่ต่างกัน
ตารางที่ 4. 1 ผลการทดลองการเจาะกระดูกชิ้นที่ 1
ความเร็วมอเตอร์
ชุดขับเคลื่อน
(Rpm)

กระแสไฟฟ้า
สูงสุด
(Amp)

Volt ความเร็วเครื่องกรอฟัน
(รอบ/นาที)

Torque
เครื่องกรอฟัน
(N*cm)

เวลาที่ใช้ใ
นการเจาะ
(S)
แรงที่ใช้ในการเจ
าะ(N)
112.98 0.84 12.04 1000 80 8.13 45.31239
100.37 0.846 12.04 1400 80 10.53 48.35349
114.42 0.836 12.04 1800 80 7.6 45.39087
117.78 0.832 12.04 2000 80 7.88 41.45706
148.44 1.278 12.04 1000 80 9 65.80548
196.21 1.251 12.04 1400 80 4.38 57.13344
190.14 1.259 12.04 1800 80 4.76 19.2276
186.43 1.258 12.04 2000 80 5.15 55.76985

ตารางที่ 4. 2 ผลการทดลองการเจาะกระดูกชิ้นที่ 2
ความเร็วมอเตอร์
ชุดขับเคลื่อน
(Rpm)

กระแสไฟฟ้า
สูงสุด
(Amp)

Volt ความเร็วเครื่องกรอฟัน
(รอบ/นาที)

Torque
เครื่องกรอฟัน
(N*cm)

เวลาที่ใช้ใ
นการเจาะ
(S)
แรงที่ใช้ในการเจ
าะ(N)
75.25 0.85 12.04 1000 80 20.5 52.22844
95.67 0.844 12.04 1400 80 13.3 47.6766
105.3 0.84 12.04 1800 80 12.3 47.39211
118.02 0.84 12.04 2000 80 9.6 45.9108
129.93 1.28 12.04 1000 80 9.73 67.02192
173.52 1.26 12.04 1400 80 6.93 64.4517
175.49 1.25 12.04 1800 80 6.65 60.60618
191.34 1.258 12.04 2000 80 5.93 64.34379

ปัญหาที่พบในการทดลอง

  1. กระดูกที่นำมาใช้ในการทดลองมีความหนา ขนาด และมวลของกระดูกที่ไม่เท่ากัน
    จึงทำให้ค่าที่ได้คลาดเคลื่อนกัน
  2. การล็อคกระดูกให้ไม่เคลื่อนที่ค่อนข้างยากเพราะพื้นผิวของกระดูกมีความโค้งนูนสูง
  3. พื้นผิวของกระดูกมีความโค้งนูน
    เมื่อหัวเครื่องกรอฟันเคลื่อนที่มาสัมผัสกับกระดูกจะทำให้หัวเครื่องกรอฟันเคลื่อนที่จนอาจทำให้เกิดการหั
    กของหัวเครื่องกรอฟันได้
  4. การระบายกระดูกในหัวเครื่องกรอฟันทำได้ยากเมื่อทำการเจาะกระดูกไปเรื่อย
    ๆจะทำให้กระดูกเข้าไปอุดตันในเครื่องกรอฟันจนทำให้เกิดการหักของหัวเครื่องกรอฟันได้
  5. ไม่สามารถกำหนดตำแหน่งสุดท้ายในการเจาะกระดูกได้อย่างแม่นยำ
    เนื่องจากกระดูกแต่ละชิ้นและแต่ละพื้นผิวมีความโค้งนูนไม่เท่ากัน
    จึงทำให้ค่าที่เก็บได้มีความคลาดเคลื่อน

บทที่ 5
สรุปผลการทดลอง

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

บทคัดย่อ

          การออกแบบและการพัฒนาเครื่องทดสอบแรงกดอัตโนมัติ ซึ่งจะประยุกต์โดยจะนำเครื่องกรอฟันมาติดกับอุปกรณ์ขับเคลื่อนและเจาะกับกระดูกหมู โดยใช้โหลดเซลล์ในการวัดค่าแรงกดซึ่งติดตั้งโหลดเซลล์ไว้ข้างหลังเครื่องกรอฟันและยึดกับเพลทเหล็ก ส่วนเพลทเหล็กได้ติดไว้บนบอลสกรู ซึ่งมีมอเตอร์ขับบอลสกรูและมีลิเนียร์ไกด์เป็นตัวกำหนดทิศทางการเคลื่อนที่ ส่วนมอเตอร์ที่ขับเคลื่อนนั้นควบคุมโดยกล่อง Controller ที่ตรงกับรุ่นของมอเตอร์ ส่วนโหลดเซลล์จะต่อเข้า Arduino UNO เพื่อวัดค่าแรงกดผ่านโปรแกรมคอมพิวเตอร์ และการวัดความเร็วรอบนั้นจะใช้ Encoder มาประยุกต์ใช้กับ MyRIO ซึ่งรับสัญญาณดิจิตอลจาก Encoder เข้าโปรแกรม LabVIEW เพื่ออ่านสัญญาณที่ส่งมาจาก Encoder

Design and development of force testing machine. A design and development machine that applied by dental drill attached to the machine and drilling to the pork bone. Which using a load cell to measure pressure that installed behind the dental drill and attached to the steel plate and the steel plate installed on the ball screw. Which has a motor drive the ball screw and linear guide control the moment direction the motor is controlled by controller box that matches the motor model. The load cell connects to the arduino UNO to measure pressure by computer program and speed measurement is used by the encoder which receives the digital signal by MyRIO into LabVIEW program for analysis encoder signal.

สารบัญ หน้า
บทคัดย่อ i
Abstract ii
กิตติกรรมประกาศ iii
สารบัญภาพ viii
สารบัญตาราง xii
บทที่1 บทนำ 1
1.1 ที่มาของโครงงาน 1
1.2 วัตถุประสงค์ของโครงงาน 1
1.3 ขอบเขตของโครงงาน 1
1.4 ขั้นตอนและวิธีการดำเนินงาน 1
1.5 ประโยชน์ที่คาดว่าจะได้รับ 2
บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 3
2.1 Arduino IDE 3
2.1.1 Arduino UNO R3 4
2.1.2 การเขียนโปรแกรม 5
2.1.3 ตัวอย่างการเขียนโปรแกรมใน ฟังก์ชัน Setup และ ฟังก์ชัน Loop 6
2.2 โปรแกรม LabVIEW 9
2.2.1 DATA FLOW AND PROGRAMING 12
2.2.2 ส่วนประกอบต่างๆ ใน LabVIEW 13
2.3 ประเภทของข้อมูล 15
2.3.1 Numeric 15
2.3.2 Boolean 15
2.3.3 String 15
2.3.4 Enum 16
2.3.5 Dynamic 16
2.3.6 Time Stam 16
2.4 ภาพรวมของระบบ DAQ บน PC 16
บทที่3 อุปกรณ์และวิธีการ 17
3.1 มอเตอร์ไฟฟ้ากระแสตรง (Direct Current Motor) 17
3.1.1 หลักการของมอเตอร์ (Motor Principle) 17
3.1.2 ความสำคัญของแรงเคลื่อนไฟฟ้าเหนียวนำต้านกลับ 18
3.1.3 สมการแรงเคลื่อนที่ไฟฟ้าของมอเตอร์ (Voltage Equation of a Motor) 18
3.1.4 สภาวะการเกิดประสิทธิภาพสูงสุด (Condition for Maximum Power, Pmax) 19
3.1.6 แรงบิดที่เกิดขึ้น (Torque in Armature, Ta) 20
3.1.7 แรงบิดที่เพลาของมอเตอร์ (Shaft Torque, Tsh) 20
3.2 เซอร์โวมอเตอร์ (Servo Motor) 21
3.2.1 โครงสร้างระบบควบคุมเซอร์โว 21
3.2.2 การแยกประเภทเซอร์โวมอเตอร์ 22
3.2.3 องค์ประกอบที่สำคัญในการทำงานของ Servo Motor 23
3.3 บอลสกรู (Ball Screw) 24
3.4 เครื่องกรอฟัน (Dental Drill) 26
3.5 เอ็นโค้ดเดอร์แบบสัมบูรณ์ (Absolute Encoder) 27
3.5.1 การแยกประเภท Output Code 28
3.6 Arduino 29
3.6.1 Layout & Pin out Arduino Board (Model : Arduino UNO R3) 31
3.7 โหลดเซลล์ (Load Cell) 32
3.7.1 หลักการทำงานของโหลดเซลล์ 32
3.7.2 การคำนวณน้ำหนักของการใช้ Load Cell 33
3.7.3 HX711 Weight Sensor Amplifier Dual Channel Module 33
3.7.4 วิธีเชื่อมต่อ Load Cell และ HX711 เข้ากับ Arduino 34
3.7.5 วิธีการ Calibrate Load Cell 34
3.8 หม้อแปลงไฟฟ้า (transformer) 35
3.9 Power Supply EPS3010S DC 30V 10A 35
3.10 ขั้นตอนการดำเนินการออกแบบและสร้างเครื่องทดสอบแรงกดอัตโนมัติ 36
3.10.1 อุปกรณ์ขับเคลื่อน 36
3.10.2 การทำฐานรองและแท่นยึดสำหรับ 37
3.10.3 การทำแคลมป์จับเครื่องกรอฟัน 38
3.10.4 การทำฐานยึดกับอุปกรณ์ขับเคลื่อน 40
3.10.5 การทำฐานรองกระดูกหมู 41
3.10.6 ขั้นตอนการวางระบบควบคุมการทำงานของระบบ 42
3.11 การเชื่อมต่ออุปกรณ์ load cell เข้าสู่ Arduino UNO R3 43
บทที่ 4 ผลการทดลอง 49
4.1 ขั้นตอนการทำงาน 49
4.2 วัตถุดิบที่ใช้ในการทดลองการเจาะ 49
4.3 ตัวอย่างขั้นตอนการทดลอง 51
4.4 ผลการทดลองของการเจาะกระดูก 52
บทที่ 5 สรุปผลการทดลอง 54
ภาคผนวก ก การออกแบบอุปกรณ์ที่ใช้ในการทดลอง 55
ภาคผนวก ข โปรแกรมควบคุมการทำงานอุปกรณ์ขับเคลื่อน 58
ภาคผนวก ค คำสั่งในการ Calibrate Load cell ในโปรแกรม Arduino 60
ภาคผนวก ง คำสั่งในการเก็บค่าจาก Load cell ในโปรแกรม Arduino 63

LabVIEW ย่อ มาจาก Laboratory Virtual Instrument Engineering Workbench
โปรแกรมที่พัฒนาขึ้นโดยใช้ LABVIEW จะเรียกว่า Virtual Instrument หรือจะเรียกย่อๆ ว่า VI ซึ่งหมายถึง
เครื่องมือวัดLabVIEW มีจุดกำเนิดขึ้นในปี 1983 โดยทางบริษัท National Instrument ได้เริ่มการค้นคว้า
เพื่อจะหาวิธีการที่จะลดเวลาในการเขียนโปรแกรมเพื่อใช้ในงานด้านระบบเครื่องมือวัด ซึ่งเป็นจุด
เริ่มของแนวความคิดการสร้าง LabVIEW หลังจากการใช้เวลาวิจัยอยู่ 3 ปี ในปี 1986 บริษัทได้ ปล่อย
LabVIEW Version 1 สู่ตลาดเพื่อใช้กับคอมพิวเตอร์Macintosh เท่านั้นเพราะแม้ว่าเครื่อง Macintosh
จะไม่เป็นที่ใช้อย่างกว้างขวางในงานด้านวิศวกรรม แต่ด้วยลักษณะการแสดงผลแบบ กราฟฟิกของเครื่อง
Macintosh ทา ให้เหมาะสมกับการประยุกต์ใช้กับ LabVIEW สำหรับ ระบบปฏิบัติการอื่นที่ไม่ใช่ GUI
นั้นยังไม่มีความเหมาะสมที่จะใช้กับ LabVIEW ดังนั้น สำหรับ เครื่องคอมพิวเตอร์ส่วนบุคคล (PC) ทาง NI
ต้องรอจนกระทั่ง ระบบปฏิบัติการ Windows เกิดขึ้น เสียก่อน ในปี 1990 ทาง NI
ได้ประสบผลสำเร็จในการนำ LabVIEW version 2 ออกสู่ตลาด
โดยได้ปรับแก้และเขียนระบบควบคุมใหม่ทั้งหมด ตามคำ แนะนำ ของผู้ใช้งาน โดยเฉพาะการเขียน
Compiler ที่ทำให้เวลาการทำงานของโปรแกรมรวดเร็วขึ้น ทัดเทียมกับการเขียนด้วยภาษาขั้น พื้นฐาน เช่น C
และต่อมาเมื่อเทคโนโลยีด้านระบบปฏิบัติของ PC มีความพร้อมที่จะใช้งานกับ GUI ทางบริษัทจึงได้ผลิต
LabVIEW for Windows และ LabVIEW for SUN เข้าสู่ตลาดในปี 1992
หลังจากนั้น บริษัทก็ได้พัฒนาโปรแกรมให้เหมาะสมกับเทคโนโลยียิ่งขึ้น ตามรูปแบบ
ปฏิบัติการที่เปลี่ยนแปลงไปเช่น LABVIEW สำหรับ Windows NT, Windows 95 รวมถึงการสร้าง Version
ใหม่ เพื่อจัดระบบและการเขียนโปรแกรมให้สะดวกมากขึ้น ตลอดจนสามารถเชื่อมต่อกับ อุปกรณ์ต่างๆ

มากขึ้น พร้อมทั้งสร้างฟังก์ชั่น ต่างๆ เพื่อให้เหมาะสมกับการใช้งานมากขึ้น
นอกจากนั้นยังสร้างโปรแกรมที่สามารถทำงานบนระบบปฏิบัติการอื่นที่ไม่ได้เขียนบน
ระบบปฏิบัติการนั้นได้โดยเริ่มจาก LABVIEW 3 ในปี ค.ศ. 1993, LABVIEW 4 ในปี ค.ศ. 1996 และล่าสุด
LABVIEW 2019 ในปี ค.ศ. 2019 ซึ่งเป็นโปรแกรมล่าสุด

โปรแกรม LabVIEW เป็นโปรแกรมที่สร้างเพื่อนำมาใช้ในด้านการวัดและเครื่องมือวัด
สำหรับงานทางวิศวกรรม LabVIEW ย่อมาจาก Laboratory Virtual Instrument Engineering
Workbench ซึ่งหมายความว่า เป็นโปรแกรมที่สร้างเครื่องมือวัดเสมือนจริงในห้องปฏิบัติการทางวิศวกรรม
ดังนั้นจุดประสงค์หลักของการทำงานของโปรแกรมนี้ก็คือการจัดการในด้านการวัดและ 5 เครื่องมือวัด
อย่างมีประสิทธิภาพ และในตัวของโปรแกรมจะประกอบไปด้วยฟังก์ชั่นที่ใช้ช่วยใน
การวัดมากมายและแน่นอนที่สุด โปรแกรมนี้จะมีประโยชน์อย่างสูงเมื่อใช้ร่วมกับ
เครื่องมือวัดทางวิศวกรรมต่างๆ สิ่งที่ LabVIEW แตกต่างจากโปรแกรมอื่นอย่างเห็นได้ชัดที่สุดก็คือ LabVIEW
นั้นเป็นโปรแกรมประเภท GUI (Graphic User Interface) โดยสมบูรณ์นั้น คือไม่จำเป็นต้องเขียน code
หรือคำสั่งใดๆ ทั้งสิ้น และที่สำคัญ ลักษณะภาษาที่ใช้ในโปรแกรมนั้นเราจะเรียกว่า เป็น ภาษารูปภาพ
หรือเรียกอีกอย่างว่า ภาษา G (Graphical Language)

ซึ่งจะแทนการเขียนโปรแกรมเป็นบรรทัดอย่างที่เราคุ้นเคยกับ ภาษาพื้นฐาน เช่น C, BASIC หรือ FORTRAN
ด้วยรูปภาพหรือสัญลักษณ์ทั้งหมด ซึ้งแม้ว่า ในเบื้องต้นอาจจะสับสนอยู่บ้าง
แต่เมื่อคุ้นเคยกับการใช้โปรแกรมนี้แล้วเราจะพบว่า LabVIEW
นั้นมีความสะดวกและสามารถลดเวลาในการเขียนโปรแกรมลงไปได้มาก
โดยเฉพาะในงานเขียนโปรแกรมคอมพิวเตอร์เพื่อเชื่อมต่อกับอุปกรณ์อื่นๆ เพื่อใช้ในการวัดและการควบคุม
โดยจุดประสงค์หลักแล้ว บริษัท National Instrument ได้เริ่มพัฒนาโปรแกรมที่จะนา มาใช้กับระบบ
เครื่องมือวัดที่มีความง่ายในการเขียนโปรแกรมและมีฟังก์ชั่น เพื่อจะช่วยในการวัดทางวิศวกรรมให้
มากที่สุดเพราะด้วยความเป็นมาบริษัท National Instrument
เริ่มจากการผลิตอุปกรณ์ที่ใช้กับการวัดทางวิศวกรรม ไม่ใช่บริษัทที่เริ่มต้น มาจากการผลิต Software
เป็นหลักดั้งนั้นคงไม่ผิดนักสำหรับผู้ที่ ต้องการจะใช้ประโยชน์สูงสุดจากโปรแกรม LabVIEW
คือผู้ที่ต้องการจะนำข้อมูลจากภายนอก เครื่องคอมพิวเตอร์เข้ามาในเครื่องเพื่อทำ การการวิเคราะห์ข้อมูล
ประมวลค่า แสดงผลและในหลาย กรณีใช้ในระบบควบคุมอัตโนมัติด้วยคอมพิวเตอร์
ข้อได้เปรียบสูงสุดของ LabVIEW คือการพยายามทา ให้เครื่องคอมพิวเตอร์ของเราเมื่อรวมกับ
LabVIEW และอุปกรณ์เชื่อมต่อเพื่อการเก็บข้อมูล (Data Acquisition Card)
แล้วสามารถเปลี่ยนเครื่องคอมพิวเตอร์ส่วนบุคคลของเราให้ กลายเป็นเครื่องมือวัดในหลายรูปแบบ
ไม่ว่าจะเป็น Oscilloscope, Multi-meter, Function Generator, Strain meter Thermometer
หรือเครื่องมือวัดอื่นๆ ตามที่เราต้องการ ทำให้สามารถใช้
คอมพิวเตอร์ในการทำการวัดและเครื่องมือวัดได้อย่างกว้างขวาง
ซึ่งจุดนี้เองที่เป็นที่มาของชื่อเครื่องมือวัดเสมือนจริง (Virtual Instrument) และ
ข้อได้เปรียบเหนือการใช้อุปกรณ์จริงเหล่านั้นคือ Virtual Instrument
สามารถปรับเปลี่ยนให้เหมาะสมกับการใช้งานของผู้ใช้แต่ละกลุ่มได้โดยการเปลี่ยน VI
ให้เป็นไปตามต้องการเป็นเรื่องที่ไม่ยุ่งยากนัก
ข้อดีอีกประการหนึ่งในการใช้คอมพิวเตอร์เป็นเครื่องมือวัดก็คือ สามารถใช้ทำเป็น Data Logger และ
PLC (Programmable Logical Controlled) ได้พร้อมกัน ซึ่งโดยปกติแล้ว
ระบบควบคุมมักจะไม่มีในเครื่องมือวัดจริงขั้น พื้นฐาน หรือ Data Logger
แม้จะเก็บข้อมูลได้แต่การสั่งการทำงานกับอุปกรณ์ตัวอื่น จะมีความยุ่งยากในการสั่งการมาก
สำหรับผู้ที่เคยใช้โปรแกรมประเภทที่ใช้ตัวหนังสือ หรือที่เรียกว่า Text Base
ทั้งหลายคงจะทราบถึงความยุ่งยากในการจัดการกับตำแหน่งการส่งผ่านข้อมูลตามอุปกรณ์เชื่อมต่อเช่น Port
หรือ Card ต่างๆ รวมถึงการจัดวางตำแหน่งในหน่วยความจำ เพื่อที่จะสามารถรวบรวมข้อมูลมาใช้
ในการคำนวณและเก็บข้อมูลให้ได้ประโยชน์สูงสุด ปัญหาเหล่านี้ได้รับการแก้ไขใน LabVIEW

ซึ่งจะแทนการเขียนโปรแกรมเป็นบรรทัดอย่างที่เราคุ้นเคยกับ ภาษาพื้นฐาน เช่น C, BASIC หรือ FORTRAN
ด้วยรูปภาพหรือสัญลักษณ์ทั้งหมด ซึ้งแม้ว่า ในเบื้องต้นอาจจะสับสนอยู่บ้าง
แต่เมื่อคุ้นเคยกับการใช้โปรแกรมนี้แล้วเราจะพบว่า LabVIEW
นั้นมีความสะดวกและสามารถลดเวลาในการเขียนโปรแกรมลงไปได้มาก
โดยเฉพาะในงานเขียนโปรแกรมคอมพิวเตอร์เพื่อเชื่อมต่อกับอุปกรณ์อื่นๆ เพื่อใช้ในการวัดและการควบคุม
โดยจุดประสงค์หลักแล้ว บริษัท National Instrument ได้เริ่มพัฒนาโปรแกรมที่จะนา มาใช้กับระบบ
เครื่องมือวัดที่มีความง่ายในการเขียนโปรแกรมและมีฟังก์ชั่น เพื่อจะช่วยในการวัดทางวิศวกรรมให้
มากที่สุดเพราะด้วยความเป็นมาบริษัท National Instrument
เริ่มจากการผลิตอุปกรณ์ที่ใช้กับการวัดทางวิศวกรรม ไม่ใช่บริษัทที่เริ่มต้น มาจากการผลิต Software
เป็นหลักดั้งนั้นคงไม่ผิดนักสำหรับผู้ที่ ต้องการจะใช้ประโยชน์สูงสุดจากโปรแกรม LabVIEW
คือผู้ที่ต้องการจะนำข้อมูลจากภายนอก เครื่องคอมพิวเตอร์เข้ามาในเครื่องเพื่อทำ การการวิเคราะห์ข้อมูล
ประมวลค่า แสดงผลและในหลาย กรณีใช้ในระบบควบคุมอัตโนมัติด้วยคอมพิวเตอร์
ข้อได้เปรียบสูงสุดของ LabVIEW คือการพยายามทา ให้เครื่องคอมพิวเตอร์ของเราเมื่อรวมกับ
LabVIEW และอุปกรณ์เชื่อมต่อเพื่อการเก็บข้อมูล (Data Acquisition Card)
แล้วสามารถเปลี่ยนเครื่องคอมพิวเตอร์ส่วนบุคคลของเราให้ กลายเป็นเครื่องมือวัดในหลายรูปแบบ
ไม่ว่าจะเป็น Oscilloscope, Multi-meter, Function Generator, Strain meter Thermometer
หรือเครื่องมือวัดอื่นๆ ตามที่เราต้องการ ทำให้สามารถใช้
คอมพิวเตอร์ในการทำการวัดและเครื่องมือวัดได้อย่างกว้างขวาง
ซึ่งจุดนี้เองที่เป็นที่มาของชื่อเครื่องมือวัดเสมือนจริง (Virtual Instrument) และ
ข้อได้เปรียบเหนือการใช้อุปกรณ์จริงเหล่านั้นคือ Virtual Instrument
สามารถปรับเปลี่ยนให้เหมาะสมกับการใช้งานของผู้ใช้แต่ละกลุ่มได้โดยการเปลี่ยน VI
ให้เป็นไปตามต้องการเป็นเรื่องที่ไม่ยุ่งยากนัก
ข้อดีอีกประการหนึ่งในการใช้คอมพิวเตอร์เป็นเครื่องมือวัดก็คือ สามารถใช้ทำเป็น Data Logger และ
PLC (Programmable Logical Controlled) ได้พร้อมกัน ซึ่งโดยปกติแล้ว
ระบบควบคุมมักจะไม่มีในเครื่องมือวัดจริงขั้น พื้นฐาน หรือ Data Logger
แม้จะเก็บข้อมูลได้แต่การสั่งการทำงานกับอุปกรณ์ตัวอื่น จะมีความยุ่งยากในการสั่งการมาก
สำหรับผู้ที่เคยใช้โปรแกรมประเภทที่ใช้ตัวหนังสือ หรือที่เรียกว่า Text Base
ทั้งหลายคงจะทราบถึงความยุ่งยากในการจัดการกับตำแหน่งการส่งผ่านข้อมูลตามอุปกรณ์เชื่อมต่อเช่น Port
หรือ Card ต่างๆ รวมถึงการจัดวางตำแหน่งในหน่วยความจำ เพื่อที่จะสามารถรวบรวมข้อมูลมาใช้
ในการคำนวณและเก็บข้อมูลให้ได้ประโยชน์สูงสุด ปัญหาเหล่านี้ได้รับการแก้ไขใน LabVIEW

2.2.1 DATA FLOW AND PROGRAMING
เนื่องจาก LABVIEW เป็นโปรแกรมที่ใช้รูปภาพ หรือสัญลักษณ์แทนการเขียนด้วย
ตัวอักษรเหมือนโปรแกรมปกติทั่วไป ซึ่งข้อดีข้อแรกก็คือการลดความผิดพลาดด้านการสะกดผิด
หรือพิมพ์ผิดออกไป ข้อแตกต่างอีกประการหนึ่งที่สำคัญของการเขียนโปรแกรมแบบ G
กับการเขียนด้วยตัวหนังสือก็คือ การเขียนด้วยภาษา G นั้นเป็นการเขียนโดยใช้หลักการของ Data Flow ซึ่ง
เมื่อเริ่มส่งข้อมูลเข้าสู่โปรแกรม เราจะต้องกำหนดทิศทางไหลของข้อมูลว่า จะไปที่ส่วนใด ผ่านการ
ประเมินผลและคำนวณในส่วนใดบ้างและจะให้แสดงผลอย่างไร ซึ่งลักษณะการเขียนภาษา G หรือ Data
Flow นั้นจะมีลักษณะเหมือนกับการเขียน Block Diagram ซึ่งทำให้ผู้เขียนโปรแกรมสามารถให้
ความสนใจกับการเคลื่อนที่และเปลี่ยนแปลงข้อมูลได้โดยไม่ต้องจดจำรูปแบบคำสั่งที่ยุ่งยาก เนื่องจาก
LabVIEW ใช้ลักษณะการเขียนแบบ Block Diagram ซึ่งวิศวกรส่วนใหญ่มี ความคุ้นเคยอยู่แล้ว
จึงเป็นการง่ายที่จะทำความเข้าใจและนำไปพัฒนาใช้ต่อไปได้และถ้าหากเราจำได้ถึงขั้นตอนการเขียนโปรแกรม
ว่า ก่อนที่จะเขียนโปรแกรม จะต้องเขียน Flow Chart ให้เสร็จสิ้น ก่อน หลังจากตรวจสอบ Flow Chart
เรียบร้อยแล้วเราจึงนำไปเขียนโปรแกรม ซึ่งจะมีความสะดวกมากขึ้น ถ้าหากการเขียน Flow Chart ของ
LabVIEW ก็คือการเขียนโปรแกรมนั่นเองซึ่งเป็นการลด ขั้น
ตอนการทำงานลงไปได้เป็นอย่างมากแม้ว่าการเขียนโปรแกรมใน LabVIEW ไม่จำเป็นต้องมี
ความรู้ด้านการเขียนโปรแกรมใดๆ มาก่อนเลย แต่การมีความรู้ด้านการเขียนโปรแกรมหรือใช้
โปรแกรมสำเร็จรูปอื่นๆ จะสามารถนำมาใช้ประโยชน์ได้เป็นอย่างดี LabVIEW จะมี Front Panel
ซึ่งเปรียบเสมือนได้กับสิ่งที่ผู้ใช้จะเห็นและควบคุมการทำงาน
ผู้ใช้สามารถสร้างรูปแบบขึ้นเองได้อย่างรวดเร็วเพราะ LabVIEW มีส่วนประกอบต่างๆ
ที่ใช้สำหรับออกแบบหน้าจอมากมาย เช่น จอแสดงผลแบบออพิโลลโครบ, ปุ่มหมุน (Dial) และ สวิทช์ เป็นต้น

โดย LabVIEW จะแสดงผลและควบคุมการทำงานผ่านทางคอมพิวเตอร์ พื้นที่ส่วนเขียนโปรแกรมจะเรียกว่า
Block Diagram เปรียบเสมือนกับ Hardware ภายในเครื่องมือวัด โดย LabVIEW
จะเขียนโปรแกรมโดยอาศัยรูปภาพ
2.2.2 ส่วนประกอบต่างๆ ใน LabVIEW
โปรแกรมที่เขียนขึ้นมาโดย LabVIEW เราจะเรียกว่า Virtual Instrument (VI) เพราะ
ลักษณะที่ปรากฏทางจอภาพเมื่อผู้ใช้งานจะเหมือนกับ เครื่องมือหรืออุปกรณ์ทางวิศวกรรม ในขณะเดียวกัน
หลังฉากของอุปกรณ์เสมือนจริงเหล่านั้นจะเป็นการทำงานของ ฟังก์ชั่น , Subroutines
และโปรแกรมหลักเหมือนกับภาษาทั่วไปสำหรับ VI หนึ่งๆ จะประกอบด้วยส่วนประกอบ 3 ส่วน คือ
2.2.2.1 Front Panel หรือหน้าปัทม์ เป็นส่วนที่ใช้สื่อความกันระหว่างผู้ใช้กับโปรแกรม
(หรือที่นิยมเรียก UserInterface) โดยทั่วไปจะมีลักษณะเหมือนกับหน้าปัทม์ของเครื่องมือหรือ
อุปกรณ์ที่ใช้งานด้านการวัดทั่ว ๆ ไป โดยทั่วไปจะประกอบด้วย สวิตซ์ปิดเปิด, ปุ่มบิด, ปุ่มกด
จอแสดงผลหรือแม้แต่ค่าที่ผู้ใช้สามารถกำหนดสำหรับผู้ที่คุ้นเคยกับการเขียนโปรแกรมประเภท Visual
ทั้งหลายคงจะเข้าใจกันดีว่า Front Panel นี้จะเปรียบเสมือนเป็น GUI ของโปรแกรมหรือ VI นั่นเอง

โดย LabVIEW จะแสดงผลและควบคุมการทำงานผ่านทางคอมพิวเตอร์ พื้นที่ส่วนเขียนโปรแกรมจะเรียกว่า
Block Diagram เปรียบเสมือนกับ Hardware ภายในเครื่องมือวัด โดย LabVIEW
จะเขียนโปรแกรมโดยอาศัยรูปภาพ
2.2.2 ส่วนประกอบต่างๆ ใน LabVIEW
โปรแกรมที่เขียนขึ้นมาโดย LabVIEW เราจะเรียกว่า Virtual Instrument (VI) เพราะ
ลักษณะที่ปรากฏทางจอภาพเมื่อผู้ใช้งานจะเหมือนกับ เครื่องมือหรืออุปกรณ์ทางวิศวกรรม ในขณะเดียวกัน
หลังฉากของอุปกรณ์เสมือนจริงเหล่านั้นจะเป็นการทำงานของ ฟังก์ชั่น , Subroutines
และโปรแกรมหลักเหมือนกับภาษาทั่วไปสำหรับ VI หนึ่งๆ จะประกอบด้วยส่วนประกอบ 3 ส่วน คือ
2.2.2.1 Front Panel หรือหน้าปัทม์ เป็นส่วนที่ใช้สื่อความกันระหว่างผู้ใช้กับโปรแกรม
(หรือที่นิยมเรียก UserInterface) โดยทั่วไปจะมีลักษณะเหมือนกับหน้าปัทม์ของเครื่องมือหรือ
อุปกรณ์ที่ใช้งานด้านการวัดทั่ว ๆ ไป โดยทั่วไปจะประกอบด้วย สวิตซ์ปิดเปิด, ปุ่มบิด, ปุ่มกด
จอแสดงผลหรือแม้แต่ค่าที่ผู้ใช้สามารถกำหนดสำหรับผู้ที่คุ้นเคยกับการเขียนโปรแกรมประเภท Visual
ทั้งหลายคงจะเข้าใจกันดีว่า Front Panel นี้จะเปรียบเสมือนเป็น GUI ของโปรแกรมหรือ VI นั่นเอง

โดย LabVIEW จะแสดงผลและควบคุมการทำงานผ่านทางคอมพิวเตอร์ พื้นที่ส่วนเขียนโปรแกรมจะเรียกว่า
Block Diagram เปรียบเสมือนกับ Hardware ภายในเครื่องมือวัด โดย LabVIEW
จะเขียนโปรแกรมโดยอาศัยรูปภาพ
2.2.2 ส่วนประกอบต่างๆ ใน LabVIEW
โปรแกรมที่เขียนขึ้นมาโดย LabVIEW เราจะเรียกว่า Virtual Instrument (VI) เพราะ
ลักษณะที่ปรากฏทางจอภาพเมื่อผู้ใช้งานจะเหมือนกับ เครื่องมือหรืออุปกรณ์ทางวิศวกรรม ในขณะเดียวกัน
หลังฉากของอุปกรณ์เสมือนจริงเหล่านั้นจะเป็นการทำงานของ ฟังก์ชั่น , Subroutines
และโปรแกรมหลักเหมือนกับภาษาทั่วไปสำหรับ VI หนึ่งๆ จะประกอบด้วยส่วนประกอบ 3 ส่วน คือ
2.2.2.1 Front Panel หรือหน้าปัทม์ เป็นส่วนที่ใช้สื่อความกันระหว่างผู้ใช้กับโปรแกรม
(หรือที่นิยมเรียก UserInterface) โดยทั่วไปจะมีลักษณะเหมือนกับหน้าปัทม์ของเครื่องมือหรือ
อุปกรณ์ที่ใช้งานด้านการวัดทั่ว ๆ ไป โดยทั่วไปจะประกอบด้วย สวิตซ์ปิดเปิด, ปุ่มบิด, ปุ่มกด
จอแสดงผลหรือแม้แต่ค่าที่ผู้ใช้สามารถกำหนดสำหรับผู้ที่คุ้นเคยกับการเขียนโปรแกรมประเภท Visual
ทั้งหลายคงจะเข้าใจกันดีว่า Front Panel นี้จะเปรียบเสมือนเป็น GUI ของโปรแกรมหรือ VI นั่นเอง

2.2.2.3 Icon และ Connector เปรียบเสมือนโปรแกรมย่อย Subroutine
ในโปรแกรมปกติทั่วๆ ไป โดย Icon จะหมายถึง Block Diagram ตัวหนึ่งที่มีการส่งข้อมูลเข้าและออกผ่านทาง
Connector ซึ่ง ใน LabVIEW เราจะเรียก Subroutine นี้ว่า SubVI ข้อดีของการเขียนโปรแกรมด้วยภาษา G
นั้นก็คือเรา สามารถสร้าง VI ทีละส่วนขึ้นมาให้ทำงานด้วยตัวเองได้อย่างอิสระ จากนั้น

2.2.2.3 Icon และ Connector เปรียบเสมือนโปรแกรมย่อย Subroutine
ในโปรแกรมปกติทั่วๆ ไป โดย Icon จะหมายถึง Block Diagram ตัวหนึ่งที่มีการส่งข้อมูลเข้าและออกผ่านทาง
Connector ซึ่ง ใน LabVIEW เราจะเรียก Subroutine นี้ว่า SubVI ข้อดีของการเขียนโปรแกรมด้วยภาษา G
นั้นก็คือเรา สามารถสร้าง VI ทีละส่วนขึ้นมาให้ทำงานด้วยตัวเองได้อย่างอิสระ จากนั้น

2.3 ประเภทของข้อมูล
ในการเขียนโปรแกรมทั่วๆไปจะต้องมีการประกาศตัวแปรก่อนที่จะใช้ตัวแปรนั้น แต่สำหรับโปรแกรม
LabVIEW มันจะจัดการให้เองหมดโดยผู้ใช้ไม่จำเป็นต้องทำเอง เพียงแค่เลือก
ประเภทของข้อมูลที่มาวางบนโค้ดให้ถูกต้องเท่านั้น ประเภทของของข้อมูลภายใน LabVIEW ก็มี
หลายอย่างที่เหมือนกับโปรแกรมในภาษาอื่นๆ และยังมีอีกบางประเภทที่ใช้ใน LabVIEW เท่านั้น โปรแกรม
LabVIEW แบ่งข้อมูลเป็น 6 ชนิดดังนี้คือ
2.3.1 Numeric คือข้อมูลประเภทตัวเลข มีทั้งจำนวนเต็มซึ่งใน Block Diagram จะเห็นเป็นสีน้ำเงิน
และจำนวนทศนิยมจะเห็นเป็นสีส้ม และสามารถเปลี่ยนไปมาได้โดยการคลิกขวาที่ตัวเลขนั้น แล้วเลือก
representation และเลือกประเภทตัวเลขได้เลย
2.3.2 Boolean คือข้อมูลประเภทที่มีสองค่า คือ True และ false บน Block Diagram
จะแสดงข้อมูลเป็นสีเขียว และสำหรับ Front Panel ตัว Boolean จะมีลักษณะเป็น ตัว Control หรือ
สวิตช์ถ้าเป็น Output ก็จะเป็น LED หรือหลอดไฟประเภทต่างๆ
2.3.3 String คือข้อมูลประเภทที่เป็นตัวอักษร Icon จะแสดงเป็นสีชมพูสำหรับการแสดงผลจะมีอยู่ 4
แบบ คือ Normal Display คือการแสดงปกติ Code Display คือการแสดงแบบโค้ด
มีประโยชน์สำหรับแสดงตัวอักษรที่ตาเปล่า มองไม่เห็น การเว้นวรรคแทบหรือการขึ้นบรรทัดใหม่ Password
Display คือการแทนตัวอักษรด้วย*Hex Displayแสดงผลเป็นรหัสเลขฐานสิบหก

2.3.4 Enum คือข้อมูลประเภทแสดงให้ผู้ใช้เห็นเป็นตัวหนังสือ แต่ค่าจริงของมันคือตัวเลข ดังนั้นบน
Block Diagram เราจึงมองเห็นข้อมูลประเภทนี้เป็นสีน้า เงิน ซึ่งเหมือนกับจำนวนเต็ม
2.3.5 Dynamic เป็นข้อมูลที่อยู่ในรูปของ Waveform บน Block Diagram
ถูกแสดงด้วยสีน้ำเงินเข้มซึ่งภายในจะประกอบด้วย Array ของเวฟฟอร์ม Time Stamp ชื่อของสัญญาณข้อมูล
ประเภท Dynamic นี้ส่วนใหญ่ใช้ใน Express VIจำพวกการอ่านกำเนิด และวิเคราะห์สัญญาณ
2.3.6 Time Stamp เป็นข้อมูลที่ประกอบด้วยวันที่ และเวลาที่มีความละเอียดถึงมิลลิวินาที Time
Stamp บน Block diagram จะมีหน้าตาที่เป็นสีน้ำตาลเส้นหน้าสามารถนำมาแปลงให้เป็นวันที่ เวลา แบบ
String ได้
2.4 ภาพรวมของระบบ DAQ บน PC
ระบบ DAQ บน PC คือกระบวนการในการอ่านค่าสัญญาณทางไฟฟ้าแล้วนำ
ไปเก็บไว้ในหน่วยความจำบน PC เพื่อการวัดวิเคราะห์จัดเก็บ หรือแสดงผลต่อไป ขึ้นอยู่กับวัตถุประสงค์ใน
การ สร้าง VI ของแต่ละแอพพลิเคชั่น ซึ่งระบบ PC จะมีส่วนประกอบอยู่ 4 ส่วนด้วยกัน คือส่วน
ของแหล่งสัญญาส่วนฮาร์ดแวร์Signal Conditioning ส่วนอุปกรณ์ของซอฟต์แวร์ PC ดังภาพ 2.5
สัญญาณที่เราจะวัดอาจเป็นสัญญาณอนาลอก (+หรือ- 10V หรือ 4-20 mA. ) หรือสัญญาณ ดิจิตอล
หรืออาจจะมาจากเซ็นเซอร์ ซึ่งสัญญาณเหล่านี้จะถูกต่อสายเข้าไปในส่วนฮาร์ดแวร์ อิเล็กทรอนิกส์ที่เรียกว่า
Signal conditioning ซึ่งจะทำหน้าที่ในการปรับปรุงสัญญาณให้เหมาะสม ก่อนที่จะวัดด้วยฮาร์ดแวร์DAQ
ต่อไป เช่น ถ้ามีสัญญาณมีขนาดเล็กเกินไป ก็จะต้องขยายให้ใหญ่ขึ้น หรือสัญญาณเข้ามาใหญ่เกินไป
ก็ต้องลดทอนสัญญาณให้เล็กลง เป็นต้น (ถ้าสัญญาณมีลักษณะ เหมาะสมแล้วเราก็ไม่จำ เป็นต้องนำ Signal
conditioning มาใช้ทุกครั้งเสมอไป) สำหรับฮาร์ดแวร์ DAQ
แบบพื้นฐานจะสามรถวัดสัญญาณแรงดันไฟฟ้าอยู่ในช่วง +หรือ- 10V เท่านั้น ซึ่งฮาร์ดแวร์นี้จะถูกติดตั้งบน
PC ที่มี ไดร์ฟเวอร์และมีแอพพลิเคชั่น ที่เขียนด้วยซอฟแวร์สำหรับพัฒนาระบบ เช่น LABVIEW

อุปกรณ์และวิธีการ

ในบทนี้กล่าวถึงอุปกรณ์เฉพาะที่สำคัญและจำเป็นสำหรับใช้งานร่วมกับ PLC
ในการทำงานของโครงงานครั้งนี้รวมถึงขั้นตอนการออกแบบและดำเนินงานสร้างต่าง ๆ
และวิธีการเขียนโปรแกรมควบคุมการทำงานของอุปกรณ์ต่างๆ ซึ่งอุปกรณ์ในการทำงานประกอบด้วยดังนี้
3.1 มอเตอร์ไฟฟ้ากระแสตรง (Direct Current Motor)
มอเตอร์เป็นอุปกรณ์ไฟฟ้าชนิดหนึ่ง มีหลักการทำงาน คือ เปลี่ยนพลังงานไฟฟ้าเป็นพลังงานกล
และมีลักษณะโครงสร้างคล้ายเครื่องกำเนิดไฟฟ้ากระแสตรง
3.1.1 หลักการของมอเตอร์ (Motor Principle)
เมื่อมีกระแสไฟฟ้าผ่านสนามแม่เหล็กจะเกิดทิศทางแรงที่เกิดขึ้นในมอเตอร์กฎมือซ้ายของเฟรมมิ่ง ดังนั้นจะได้

(ที่มา: https://th.wikipedia.org/wiki/%E0%B8%A1%E0%B8%AD%E0%B9%80%E0%B8%95%E0%B8%AD%E0%B8%A3%E0%B9%8C)

พิจารณารูปที่ 3.1 แสดงรูปแบบมอเตอร์กระแสตรง
เมื่อมีกระตุ้นที่ขดลวดสนามและตัวนำที่ได้รับกระแสไฟฟ้าจากแหล่งจ่ายไฟฟ้าหลัก
ทำให้เกิดแรงที่มีทิศทางของแนวแรงในทิศตั้งฉากกับเส้นแรงของแม่เหล็ก กระแสไหลจะผ่านในตัวนำ
และเมื่อไหลผ่านขดลวดตัวนำที่อยู่บนแกนเหล็กจะเกิดเส้นแรงรอบๆตัวนำ
ทำให้เกิดแรงผลักบนตัวนำที่เกิดจากขั้วเหล็กของมอเตอร์จึงทำให้เกิดการหมุน
สมมุติให้ตัวนำภายในขั้ว N นำกระแสในทิศทางลงด้านล่าง (-) และตัวนำภายในขั้ว S
นำกระแสในทิศทางขึ้นบน โดยใช้กฎมือซ้ายของเฟรมมิ่งในการพิจารณาทิศทางของแรง มีแรง F
ทำให้เกิดการหมุนมีทิศทางทวนเข็มนาฬิกา เกิดแรงบิดในทิศทางทวนเข็มนาฬิกาจึงเริ่มการหมุน
3.1.2 ความสำคัญของแรงเคลื่อนไฟฟ้าเหนียวนำต้านกลับ
เมื่อหมุนตัวนำจะตัดกับเส้นแรงแม่เหล็กทำให้เกิดแรงเคลื่อนไฟฟ้าเหนี่ยวนำขึ้น
มีทิศทางตามกฎมือขวาของเฟรมมิ่งซึ่งจะตรงกันข้ามกับแรงเคลื่อนไฟฟ้าที่จ่ายให้กับมอเตอร์ เรียกว่า
แรงเคลื่อนที่ไฟฟ้าต้านกลับ วงจรสมมูลของมอเตอร์ไฟฟ้ากระแสตรง
เมื่อหมุนจะเกิดแรงฟ้าต้านกลับจะได้

พิจารณาสมการที่ (3.3) แรงที่เคลื่อนที่ไฟฟ้าต้านกลับจะขึ้นอยู่กับความเร็วรอบ ถ้ามีกระแสไหลผ่าน
จากสมการ (3.2) ถ้ามีการไหลผ่านของกระแสไฟฟ้าน้อย ทำให้ความเร็วรอบต่ำ
ส่งผลให้แรงเคลื่อนที่ไฟฟ้าต้านกลับน้อย แต่ถ้ากระแสไฟฟ้าผ่านมาก
ทำให้ความเร็วรอบสูงส่งผลให้แรงเคลื่อนที่ไฟฟ้าต้านกลับมาก
3.1.3 สมการแรงเคลื่อนที่ไฟฟ้าของมอเตอร์ (Voltage Equation of a Motor)

3.1.4 สภาวะการเกิดประสิทธิภาพสูงสุด (Condition for Maximum Power, )
ออกแบบให้การทำงานของมอเตอร์นั้นทำงาน
และเลือกจุดประสิทธิภาพสูงสุดและประหยัดพลังงานโดยพิจารณาจากกำลังทางกลของมอเตอร์ ดังนี้

(3.6)

= (3.7)

โดยที่ : เป็นกำลังกลของมอเตอร์
จากสมการ (3.7)
กำลังทางกลที่มอเตอร์จะมีค่าสูงสุดเมื่อมีแรงเคลื่อนที่ไฟฟ้าต้านกลับเป็นครึ่งหนึ่งของแรงเคลื่อนไฟฟ้าที่จ่ายให้
กับมอเตอร์
3.1.5 แรงบิด (Torque) คือ โมเมนต์ของแรงที่ทำให้เกิดการหมุนหรือการบิดรอบแกนเพลาของ
มอเตอร์ซึ่งสามารถวัดได้โดยใช้ผลคูณของแรงกับรัศมี ณ จุดที่แรงกระทำ เมื่อพิจารณาเพลาอันหนึ่งที่มีรัศมี r
มีแรง F มากระทำกับเพลา ทำให้เพลานี้หมุนไปด้วยความเร็ว n รอบต่อวินาที

3.2 เซอร์โวมอเตอร์ (Servo Motor)
เป็นอุปกรณ์ที่สามารถ  ควบคุมความเร็ว (Speed Control) แรงบิดของมอเตอร์ (Torque Control)
และ ระยะทางในการเคลื่อนที่ (Position Control) โดยใช้การควบคุมแบบป้อนกลับ (Feedback control)
ด้วยการตรวจสอบสัญญาณจากระบบขับเคลื่อนและปรับค่าให้ถูกต้องตามที่กำหนดไว้อย่างต่อเนื่อง
โดยปกติระบบ servo จะตรวจสอบข้อผิดพลาดจากสัญญาณตอบกลับเช่น ตำแหน่งทางกล
ความเร็วหรือค่าผิดพลาดอื่น ๆ เช่น
ข้อผิดพลาดจากระบบหน้าต่างของรถยนต์อาจไม่ได้รวมอยู่ในระบบขับเคลื่อน (none servomechanism)
หรือระบบควบคุมเรือซึ่งใช้การควบคุมแบบปิด (close-loop feedback) ถือว่าอยู่ในระบบขับเคลื่อนได้
3.2.1 โครงสร้างระบบควบคุมเซอร์โว
ลักษณะของการควบคุมเซอร์โวจะเป็นระบบควบคุมแบบลูบปิด(Closed loop control)
ซึ่งประกอบด้วยโหมดการควบคุม 3 โหมดคือโหมดการควบคุมแรงบิด ( Torque Control Mode)
ซึ่งอยู่วงรอบหรือลูปสุด โหมดการควบคุมอัตราเร่ง (Velocity Control Mode) และโหมดการควบคุมตำแหน่ง
(Position Control Mode) ซึ่งอยู่ลูปด้านนอกสุดโดยมีองค์ประกอบสำคัญดังรูป

(ที่มา : http://www.siam-automation.com/article/7/servo-motor-%E0%B8%8 %B8%AD%E0%B8%B0%E0%B9%84%E0%B)

บอลสกรู (Ball Screw)
มีหลักการทำงาน คือ เป็นระบบขับเคลื่อนแบบหนึ่งในระบบขับเคลื่อนประเภทเครื่องกล
มีหลักการทำงานแปลงการเคลื่อนที่แบบหมุนให้เป็นการเคลื่อนที่แบบเชิงเส้นหรือใช้แรงบิดเปลี่ยนเป็นแรงผลั
ก โดยมีส่วนประกอบหลัก 2 ส่วน คือ เพลาเกลียว และ ตลับลูกปืน ซึ่งมีเม็ดลูกปืนกลม
เป็นตัวรับน้ำหนักและลดแรงเสียดทาน และยังมีรางนำทาง (Linear Guide Way)
รองรับการเคลื่อนที่ของแกนต่างๆซึ่งมีทั้งแบบเดี่ยว และแบบคู่

(ที่มา : https://hiwin-linearmotion.com/ballscrews/precision-ground/super-s-series.html)

รูปที่ 3.8 บอลสกรู

รูปที่ 3.10 คำนวณแรงบิดบอลสกรู

(ที่มา : https://www.dhgate.com/product/2pcs-sbr20-1500mm-linear-guide-rail-4pcs/434167723.html#seo=WAP)
โหลดแรงบิดที่จำเป็นสำหรับการขับขี่บอลสกรู

(ที่มา : https://www.nidec.com/en/product/calc/torque/ballscrew/)

แรงบิดของบอลสกรู

(3.12)
g: ค่าความเร่งเนื่องจากแรงโน้มถ่วง 9.8
F: แรงจากภายนอก (N)
W: โหลดน้ำหนัก (kg)
: สัมประสิทธิ์แรงเสียดทานของหน้าสัมผัส
P: ระยะหลีดของบอลสกรู (m)
T: แรงบิด (N-m)
: ประสิทธิภาพของบอลสกรู

เอ็นโค้ดเดอร์แบบสัมบูรณ์ (Absolute Encoder)
เป็นเซ็นเซอร์สำหรับวัดระยะทาง (Distance Sensor) ความเร็ว (Speed) และ
ทิศทางการหมุนของมอเตอร์ (Direction of Rotation) ตำแหน่งหรือมุม เป็นต้น
โดยเอ็นโค้ดเดอร์นี้ให้เอาต์พุตเป็นค่า bit ทางสัญญานดิจิตอล
รูปที่ 3.11 ด้ามเครื่องกรอฟัน

รูปที่ 3.12 ด้ามเครื่องกรอฟันที่ใส่หัว BUR
ตัวเอ็นโค้ดเดอร์จะมีแผ่นดิสซ์พิเศษที่มีลักษณะเป็นแบบเลขฐาน 2 Binary Code หรือ แบบ Gray Code
และไม่ใช่แค่มีร่อง(Track) แสงขนาดเล็กที่โปร่งแสงกับทึบแสงเท่านั้น
แต่มันจะมีร่องหลายแถวที่ใช้แทนค่าโค้ดไบนารี่แต่ละแถวจะแทนเลขไบนารี่ 1 บิต
แต่ละร่องจะมีช่องที่โปร่งแสงกับทึบแสงของมันเองซึ่งจะทำให้เกิดสัญญาณ ON/OFF ดังนั้น เอ็นโค้ดเดอร์ 12
บิตจะมีร่อง 12 แถวอิสระจากกัน แต่ละแถวจะทำงานเหมือนกับเอ็นโค้ดเดอร์ชนิด
Incrementalแต่เอ็นโค้ดเดอร์ชนิด
Absolute จะให้สัญญาณโค้ดไบนารี่ที่เกิดเป็นค่าไบนารี่สำหรับแต่ละองศาที่เพลาหมุน เพราะว่าแต่ละตำแหน่
งจะมีค่าสัญญาณหรือเลขไบนารี่เพียงค่าเดียวเท่านั้นค่าข้อมูลซึ่งเป็นเลขไบนารี่
จึงสามารถจำค่าตำแหน่งตนเองได้เสมอไม่ว่าจะมีไฟเลี้ยงมาจ่ายให้หรือไม่ก็ตาม

(ที่มา : https://www.primusthai.com/primus/Knowledge/info?ID=157)

(ที่มา : https://www.primusthai.com/primus/Knowledge/info?ID=157)

3.5.1 การแยกประเภท Output Code

รูปที่ 3.13 แสดงส่วนประกอบของ Absolute Encoder

รูปที่ 3.14 ตัวอย่างสัญญาณบิตเอาต์พุตของ Absolute Encoder

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

3.5.1.1 Binary Code เป็นสัญญาณ Code เอาท์พุตที่อยู่ในรูปของเลขฐาน 2 โดยจะใช้เลข

“0”, “1” ในการแสดงสถานะต่างๆ โดยเลขฐาน 2 นั้นมีประสิทธิภาพในการเข้ารหัสเลขฐาน 10
ที่เราใช้งานอยู่ แต่ก็ยังมีปัญหาเกิดขึ้นบ้างในเรื่องของการหน่วงของสัญญาณที่เกิดขึ้นในแต่ละบิต
สัญญาณรบกวนหรือมีสายสัญญาณขาดไปหนึ่งสาย ซึ่งอาจทำให้เกิดการเข้ารหัสผิดพลาด
และทำให้ค่าที่อ่านออกมาได้ ไม่ตรงตามค่าที่ตำแหน่งของเอ็นโค้ดเดอร์อยู่จริง จึงไม่เป็นที่นิยมใช้

3.5.1.2 Gray Code

 จากปัญหาของรหัสไบนารีสามารถแก้ไขโดยใช้รหัสเกรย์เนื่องจากรหัสเกร์ยจะมีค่าของบิตที่เปลี่ยนแปลงเพียง
บิตเดียวเท่านั้นเวลาที่รหัสเพิ่มขึ้นหรือลดลงหนึ่งตำแหน่ง ตัวอย่างเช่น รหัสของเลข 3 คือ 010 2 เมื่อเปลี่ยนเป็น
4 รหัสจะเป็น110 2 ซึ่งบิตที่ 2 จะเปลี่ยนค่าเพียงบิตเดียวเท่านั้นแต่ถ้าเป็นรหัสไบนารี เลข 3 คือ 011 2  เมื่อเป็น
4 รหัสจะเป็น 100 2 จะเห็นว่ามีถึง 3 บิตที่เปลี่ยนค่า
ดังนั้นเมื่อใช้รหัสเกรย์จะทำให้คอนโทรลเลอร์ทราบว่ารหัสจะเปลี่ยนแปลงเพียงบิตเดียวเท่านั้นเมื่อตำแหน่งเป
ลี่ยนไป ถ้าเปลี่ยนแปลงมากกว่า 1 บิต
คอนโทรลเลอร์จะถือว่าผิดปกติและสามารถสั่งให้การทำงานหยุดได้

(ที่มา : https://mall.factomart.com/output-type-of-rotary-encoder/)

3.6 Arduino

รูปที่ 3.15 ตารางเปรียบเทียบรหัส Gray Code กับ Binary Code

เป็นบอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาแบบ Open
Source คือมีการเปิดเผยข้อมูลทั้งด้าน Hardware และ Software ตัว
บอร์ด Arduino ถูกออกแบบมาให้ใช้งานได้ง่าย โดยถูกใช้ประโยชน์ในลักษณะเดียวกับ MCU
คือ ใช้ติดต่อสื่อสารและควบคุมอุปกรณ์ไฟฟ้าอื่นๆ ด้วยการเขียนโปรแกรมให้กับ MCU
เพื่อควบคุมการรับส่งสัญญาณทางไฟฟ้าตามเงื่อนไขต่างๆ เช่น ระบบเปิด/ปิดไฟในบ้านอัตโนมัติ,
ระบบรดน้ำต้นไม้อัตโนมัติ, ระบบเปิด/ปิดประตูอัตโนมัติ, ระบบเครื่องซักผ้าหยอดเหรียญ หรือ
ใช้ควบคุมความเร็ว และทิศทางการหมุนของคุมมอเตอร์ เป็นต้น

(ที่มา : https://thaiarduino.club/wp-content/uploads/2017/07/entry-level-arduino.png)

โดย Arduino Platform ประกอบไปด้วย
ส่วนที่เป็นฮาร์ดแวร์ (Hardware) บอร์ดอิเล็กทรอนิกส์ขนาดเล็ก ที่มีไมโครคอนโทรลเลอร์
(MCU) เป็นชิ้นส่วนหลัก ถูกนำมาประกอบร่วมกับอุปกรณ์อิเล็กทรอนิกส์อื่นๆ เพื่อให้ง่ายต่อการใช้งาน
หรือที่เรียกกันว่า บอร์ด Arduino โดยบอร์ด Arduino เองก็มีหลายรุ่นให้เลือกใช้
โดยในแต่ละรุ่นอาจมีความแตกต่างกันในเรื่องของขนาดของบอร์ด หรือสเปค เช่น
จำนวนของขารับส่งสัญญาณ, แรงดันไฟที่ใช้ประสิทธิภาพของ MCU เป็นต้น นอกจาก board หลักของ
Arduino แล้ว ก็จะมี module หรือ shield ต่างๆแยกกัน เพื่อนำมาประกอบใช้ตามลักษณะของโปรเจค
ตัวอย่างเช่น ถ้าเราต้องการทำโปรเจคเปิดปิดไฟบ้านผ่านอินเตอร์เน็ต นอกจากบอร์ด Arduino หลักแล้ว
ยังต้องมีโมดูล GPRS หรือ WIFI เพื่อทำการรับค่าคำสั่งผ่านอินเตอร์เน็ตเพื่อรับสัญญาณมา เปิด/ปิด
ไฟบ้านด้วย

รูปที่ 3.16 Arduino รุ่นต่างๆ

(ที่มา : https://poundxi.com/arduino%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0)
ส่วนที่เป็นซอฟต์แวร์ (Software) ภาษาที่ใช้ Arduino คือ ภาษา C/C++
ใช้สำหรับเขียนโปรแกรมควบคุม MCU และ Arduino ได้พัฒนาส่วนของระบบการเขียนโปรแกรม
หรือที่เรียกว่า IDE (Integrated Development Environment) ซึ่งจะช่วยให้เราฝังคำสั่งลงในบอร์ด
Arduino ชนิดต่างๆได้ ซึ่งในส่วนของ software นี้ เรายังสามารถดาวโหลด library เพิ่มได้จาก internet
ซึ่งทำให้เราเขียนโปรแกรมกับ controller ชนิดอื่นๆ ไม่จำกัดอยู่แค่ Arduino อีกด้วย

(ที่มา : https://poundxi.com/arduino-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0% )

รูปที่ 3. 17 บอร์ด Arduino

รูปที่ 3.18 โปรแกรม Arduino IDE

3.6.1 Layout & Pin out Arduino Board (Model : Arduino UNO R3)

(ที่มา : https://www.thaieasyelec.com/article-wiki/latest-blogs/what-is-arduino-ch1.html)

ส่วนประกอบของ Arduino

  1. USB Port: ใช้สำหรับต่อกับ Computer เพื่ออับโหลดโปรแกรมเข้า MCU และจ่ายไฟให้กับบอร์ด
  2. Reset Button: เป็นปุ่ม Reset ใช้กดเมื่อต้องการให้ MCU เริ่มการทำงานใหม่
  3. ICSP Port ของ Atmega16U2 เป็นพอร์ตที่ใช้โปรแกรม Visual Com port บน Atmega16U2 
  4. I/OPort:Digital I/O ตั้งแต่ขา D0 ถึง D13 นอกจากนี้ บาง Pin จะทำหน้าที่อื่นๆ เพิ่มเติมด้วย
    เช่น Pin0,1 เป็นขา Tx,Rx Serial, Pin3,5,6,9,10 และ 11 เป็นขา PWM  
  5. ICSP Port: Atmega328 เป็นพอร์ตที่ใช้โปรแกรม Bootloader
  6. MCU: Atmega328 เป็น MCU ที่ใช้บนบอร์ด Arduino
  7. I/OPort: นอกจากจะเป็น Digital I/O แล้ว ยังเปลี่ยนเป็น ช่องรับสัญญาณอนาล็อก ตั้งแต่ขา A0-A5
  8. Power Port: ไฟเลี้ยงของบอร์ดเมื่อต้องการจ่ายไฟให้กับวงจรภายนอก ประกอบด้วยขาไฟเลี้ยง +3.3
    V, +5V, GND, V in
  9. Power Jack: รับไฟจาก Adapter โดยที่แรงดันอยู่ระหว่าง 7-12 V 
  10. MCU ของ Atmega16U2 เป็น MCU ที่ทำหน้าที่เป็น USB to
    Serial โดย Atmega328 จะติดต่อกับ Computer ผ่าน Atmega16U2

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

(ที่มา : https://www.thaiwatersystem.com/product/689/%E0%B8%AB%E0%B8%A1%E0%B9%89%E0%B8%AD%E0%B9%81%E)
3.9 Power Supply EPS3010S DC 30V 10A
EPS3010S DC Power Supply 30V 10A เป็นอุปกรณ์แหล่งจ่ายแรงดันไฟฟ้ากระแสตรง จำนวน 1
ช่อง โดยสามารถปรับแรงดันได้ระหว่าง 0 ถึง 30 โวลต์ จ่ายกระแสได้สูงสุด 10 แอมป์
แสดงผลผ่านจอแสดงตัวเลขแบบ 7-segment จำนวน 4 หลัก แยกแสดงกระแสและแรงดัน โดยแสดงกระแส
1 หลัก 3 จุดทศนิยม และแสดงแรงดัน 2 หลัก 2 จุดทศนิยมเช่นกันมี LED แสดงสถานะ CC และ CV
สามารถปรับค่ากระแสและแรงดันผ่านปุ่มหมุนปรับค่าโดยมีปุ่มปรับแบบหยาบ
เพื่อให้ได้ค่าใกล้เคียงกับที่ต้องการและปุ่มปรับแบบละเอียด เพื่อให้ได้ค่าที่แม่นยำ
มีวงจรป้องกันกระแสเกินและวงจรป้องกันการช็อตขั้วของแหล่งจ่าย
รูปที่ 3.26 หม้อแปลงไฟฟ้า

3.10

Related Posts

Create Account



Log In Your Account