เครื่องวัดความเร็วรอบพร้อมนับรอบแบบดิจิตอล (Tachometer)

.

เครื่องวัดความเร็วรอบพร้อมนับรอบแบบดิจิตอล

อภิรักษ์  นามแถ่ง

aphirak112@gmail.com

งบประมาณ 1,900 บาท

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

 

Tachometer (เครื่องวัดความเร็วรอบ) เป็นอุปกรณ์วัดความเร็วในการเคลื่อนที่ของวัตถุ ส่วนใหญ่จะประยุกต์ใช้ในการวัดความเร็วรอบของเครื่องจักรกล ไม่ว่าจะเป็นความเร็วของมอเตอร์, เพลาล้อรถยนต์, เจนเนอร์เรเตอร์ หรือเครื่องจักรในโรงงานอุตสาหกรรม เป็นต้น ซึ่งหน่วยการวัดของ Tachometer (เครื่องวัดความเร็วรอบ) คือ รอบต่อนาที หรือ RPM (Round per Minute)

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

รูปที่ 1

รูปที่ 1 วงจรสมบูรณ์ (คลิกที่รูปเพื่อให้แสดงได้ชัดเจน)

หลักการทำงาน

รูปที่ 1 เป็นวงจรสมบูรณ์ของโครงงานนี้ จะเห็นว่าส่วนที่เป็นหัวใจหลัก คือ ATMEGA328 เป็นไมโครคอนโทรลเลอร์ที่เขียนด้วยโปรแกรมยอดนิยมอย่าง Arduino IDE มีส่วนอินพุตมีอยู่ 3 ส่วน คือ การรับค่าดิปสวิตช์สำหรับตั้งค่าจำนวนรอบของ STROKECOUNTER (74165), รับสัญญาณจาก PROXIMITY และสวิตช์เริ่มนับ (STROKE)

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

  • อินพุตขนาน 8 บิต (ขา A-H)

  • ขารับข้อมูลอนุกรมคือ Serial Input

  • ขาควบคุมการเลื่อนข้อมูลออกแบบอนุกรมและขาโหลดข้อมูล (Shift/Load)

  • ขาควบคุมด้วยสัญญาณนาฬิกาคือขา Clock Inhibit ปกติเมื่อไม่ใช้งานต้องได้รับลอจิก 0 หรือ Lowและเมื่อต้องการใช้งานขา Clock Inhibit  ต้องให้รับลอจิก 1 หรือHigh

  • เอาต์พุตแบบอนุกรมออกมี 2 ขาคือ เอาต์พุต QH   และ

การทํางานของวงจรจะขึ้นอยู่กับขา CLK โดยข้อมูลจะเลื่อนจากซ้ายไปขวาเมื่อมีสัญญาณพัลส์จ่ายให้กับขา CLK ของวงจรเรียกการทํางานกรณีนี้ว่าเป็นการเลื่อนข้อมูลจากหลักการที่กล่าวมาจะได้ข้อสรุปว่า เมื่อขา Shift/Load ได้รับลอจิก 0 เป็นการโหลดข้อมูล D1, D2 … Dn เข้าไปเก็บในฟลิปฟลอปแต่ละตัว เมื่อขา Shift/Load ได้รับลอจิก1 และจ่ายสัญญาณพัลส์ให้กับขา CLK ข้อมูล D1, D2 … Dn จะไปออกที่ขาออกแบบอนุกรมเรียงตามลําดับซึ่งวงจรของเราจะใช้ขา PD4-PD6 เชื่อมต่อกับขา Shift/Load, Clock Inhibit, CLK และ QH ตามลำดับ

รูปที่ 2ก


รูปที่ 2ข

รูปที่ 2 ลอจิกไดอะแกรมภายในของ 74165

อินพุตส่วน 74165 นี้ใช้อ่านค่าจากดิปสวิตช์ทั้ง 4 ตัว ใช้สำหรับตั้งค่า STROKE เพื่อกำหนดจำนวนรอบการนับ ค่านี้จะสอดคล้องกับการทำงานของรีเลย์ที่ต่อกับขา PC5 กล่าวคือ เมื่อเริ่มทำงานการนับ (กดสวิตช์ START STROKE ที่ต่อกับขา PD3) รีเลย์จะถูกกระตุ้นให้ทำงาน และรีเลย์นี้จะสิ้นสุดการทำงานเมื่อจำนวนรอบที่นับเท่ากับค่าที่ตั้งไว้โดยดิปสวิตช์ทั้ง 4 ตัวนี้

3

รูปที่ 3 ภาพถ่ายเซนเซอร์ proximity

รูปที่ 4

รูปที่ 4 ส่วนประกอบหลักของเซนเซอร์แบบเหนี่ยวนำ

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

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

การแสดงผลของวงจรนี้จะนำเอา 7 เซกเมนต์ขนาด 0.56 นิ้ว 8 หลัก แบ่งเป็นการแสดงผล RPM จำนวน 4 หลักและ STROKE จำนวน 4 หลัก เพื่อลดภาระการทำงานของไมโครคอนโทรลเลอร์ในการสแกนเพื่อแสดงผล 7 เซกเมนต์ทั้ง 8 ตัว ผู้เขียนได้เลือกใช้ MAX7219 ที่มีการสื่อสารกับไมโครคอนโทรลเลอร์ผ่านบัส SPI และเนื่องจากสามารถนำมาใช้ควบคุมการทำงานของ 7เซกเมนต์ได้สูงสุดถึง 8 หลัก จึงเหมาะมากที่จะนำมาใช้กับโครงงานของเรา

เอาต์พุต RY1 จะใช้ขา A5 ที่โดยปกติแล้วมีคุณสมบัติอ่านค่าแรงดันแบบอะนาลอกแปลงเป็นดิจิตอลหรือเรียกว่า ADC (Analog-to-Digital Converter) แต่ถึงแม้ว่าขา A5 จะมีคุณบัติดังกล่าว แต่ในการใช้งานสามารถกำหนดให้เป็นอินพุตหรือเอาต์พุตแบบดิจิตอลได้ ซึ่งในโครงงานนี้จะกำหนดเป็นเอาต์พุตแบบดิจิตอลเพื่อขับรีเลย์ ให้ทำงานเมื่อเริ่มการนับและหยุดทำงานเมื่อสิ้นสุดการนับ แต่เนื่องด้วยเอาต์พุตมีกระแสไม่เพียงพอ ดังนั้นจะต้องอาศัยวงจรขับเพิ่มเข้ามาพร้อมกับแยกกราวด์ของรีเลย์ออกจากวงจรควบคุม เพื่อป้องกันการทำงานผิดพลาดหรือหากอาการหนักหน่อยอาจจะรีเซตได้เลย เพราะขณะที่รีเลยทำงานจะเกิดสนามแม่เหล็กเปลี่ยนแปลงอย่างเร็ว ซึ่งสาเหตุนี้อาจทำให้ทำงานผิดพลาดได้ วงจรที่ว่านี้ประกอบด้วย IC7 (LTV817), D2, Q1, R25 และ R27

5

รูปที่ 5 ลายวงจรพิมพ์ขนาดเท่าแบบ (Bottom Layer)

6

รูปที่ 6 ตำแหน่งการลงอุปกรณ์ด้านบน (Top Overlay)

7

รูปที่ 7 ตำแหน่งการลงอุปกรณ์ด้านล่าง (Bottom Overlay)

การประกอบ

รูปที่ 6 เป็นตำแหน่งการลงอุปกรณ์ของโครงงานนี้ จะสังเกตว่าลายวงจรนั้นก็มีเพียงด้านเดียวและการลงอุปกรณ์ก็ไม่ยุ่งยาก อุปกรณ์มีไม่มากนักและส่วนมากเป็นอุปกรณ์ที่สามารถบัดกรีได้อย่างไม่ลำบาก แต่ถึงแม้ว่าอุปกรณ์น้อยชิ้นและการลงอุปกรณ์ก็ไม่ยุ่งยาก การลงอุปกรณ์ก็ควรเริ่มจากตัวที่มีความสูงน้อยที่สุดก่อน อาทิเช่น ลวดจั๊มและตัวต้านทาน เป็นต้น จากนั้นจึงไล่เรียงตามลำดับความสูงจนกระทั่งครบทุกตัว ในส่วนของ IC2- IC5 ควรต้องใส่ซ็อกเก็ตด้วยเพื่อป้องกันความเสียหายที่อาจจะเกิดขึ้น หากลงอุปกรณ์ผิดพลาดสำหรับ IC1 จะเป็นอุปกรณ์ประเภท SMD จะต้องบัดกรีด้านล่าง (Bottom Layer) ดังแสดงในรูปที่ 7

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

รูปที่ 8

รูปที่ 8 เลือกบอร์ดเป็น Arduino UNO

รูปที่ 9

รูปที่ 9 การกำหนดโปรแกรม Arduino IDE ให้สามารถเห็นลิงค์ที่เก็บไฟล์ .hex

รูปที่ 10

รูปที่ 10 ตำแหน่งของปุ่ม Verify และ Upload

รูปที่ 11

รูปที่ 11 ตำแหน่งที่เก็บไฟล์ .hex ที่เราต้องการ

การ Verify โปรแกรมไฟล์ ino เพื่อเอาไฟล์ .Hex

โครงงานนี้เราไม่ได้นำบอร์ด Arduino มาใช้ แต่เราจะนำ Arduino IDE มาใช้ประโยชน์ ดังนั้นเราจะใช้การ Compile โปรแกรม Arduino IDE เสร็จนำไฟล์ .hex มาเบิร์นให้กับ ATMEGA328 (เลือกบอร์ดเป็น Arduino UNO ดังรูปที่ 8) ขั้นตอนการตั้งค่าเข้าไปที่เมนู File->Preference แล้วเลือกที่ช่อง compilation ดังแสดงในรูปที่ 9 หลังจากนั้นให้เปิดไฟล์.ino ขึ้นมา (สามารถดาวน์โหลดได้ที่เว็บไซต์ http://electronics.se-ed.com/download) หลังจากเปิดขึ้นมาก็ให้ท่านแก้ไขซอร์สโค้ดได้ตามสะดวก เมื่อเสร็จแล้วให้ทำการกดปุ่ม Verify (ดังรูปที่ 10) โดยห้ามกดปุ่ม Upload เหมือนการใช้บอร์ด Arduino ปกติ เพราะในโครงงานนี้ไม่ได้ใช้งานบอร์ด Arduino ซึ่งเราเพียงต้องการแค่ไฟล์ .hex ไปเบิร์นลงบน ATMEGA328 เท่านั้น

หลังจากที่กดปุ่ม Verify จะสังเกตเห็นข้อมูลที่เกิดขึ้นในส่วน output (กรอบสีดำด้านล่าง) เมื่อสิ้นสุดการ Compile ให้มองหาไฟล์ .hex ดังแสดงในรูปที่ 11 เมื่อเห็นแล้วให้คัดลอกตำแหน่งมาเอาไว้สำหรับการเบิร์นลงในหน่วยความจำของ ATMEGA328 ในขั้นตอนที่จะกล่าวต่อไป

รูปที่ 12

รูปที่ 12 การกำหนดค่า Fuse Bit

รูปที่ 13

รูปที่ 13 นำตำแหน่งไฟล์ .hex ใส่ในช่อง Input HEX File เพื่อเขียนลงหน่อยความจำของ ATMEGA328

จากนั้นให้ผู้ใช้เปิดโปรแกรมสำหรับเบิร์นไฟล์ hex ซึ่งผู้เขียนใช้โปรแกรม AVR Studio เวอร์ชัน 4 (สามารถเข้าไปดาวน์โหลดได้ที่เว็บไซต์ http://www.atmel.com/tools/STUDIOARCHIVE.aspx) ร่วมกับเครื่องโปรแกรม AVR Programmer ดังที่กล่าวข้างต้น ให้จัดการการเชื่อมต่อระหว่าง AVR Studio และ AVR Programmer ให้เรียบร้อย เมื่อเชื่อมได้แล้วให้เข้ามาที่เมนู “Fuses” จากนั้นให้กำหนดดังแสดงในรูปที่ 12 และทำการโปรแกรมในส่วนนี้โดยการกดปุ่ม Program

หลังจากที่กำหนด Fuse Bit เสร็จแล้วขั้นตอนต่อไปเป็นการเขียนไฟล์ .hex ลงบนหน่วยความจำของ ATMEGA328 โดยให้เปลี่ยนมาที่เมนู Program จากนั้นก็คัดลอกตำแหน่งไฟล์ .hex ที่เราได้มาก่อนหน้านี้แล้วมาใส่ในช่อง Input HEX File ในส่วนของ Flash ดังแสดงในรูปที่ 13 หลังจากนั้นให้กดปุ่ม Program จากนั้นก็รอจนกว่าขั้นตอนการโปรแกรมไฟล์ .hex ลงบนหน่วยความจำของ ATMEGA328 แล้ว

14

รูปที่ 14 การเชื่อมต่อ Proximity และส่วนอื่นๆ เข้ากับบอร์ดวงจรหลัก

รูปที่ 15

รูปที่ 15 ระยะการตรวจจับวัตถุของProximity

การทดสอบ

เมื่อฮาร์ดแวร์ทุกส่วนพร้อมใช้งาน ขั้นตอนต่อไปก็เป็นส่วนของซอฟต์แวร์บ้างแล้ว ก่อนอื่นให้เชื่อมต่อวงจรดังรูปที่ 14เสร็จแล้วก็ป้อนแรงดันกระแสตรงขนาด 12โวลต์ผ่าน CON1 ให้สังเกตตำแหน่งขั้วด้วย

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

ให้นำพัดลมขนาดใดก็ได้ที่เราจะนำมาทดสอบ หาเศษเหล็กหนาประมาณ 1 มิลลิเมตร (หรือมากกว่า) มาแปะไว้บนใบพัดเพื่อเป็นจุดสะท้อนให้กับ Proximity เซนเซอร์ของเรา เพื่อให้สามารถวัดจำนวนรอบได้ จะสังเกตว่าขณะนั้นส่วนแสดงผล RPM จะแสดงค่าขึ้นมาตามความเร็วรอบต่อนาที

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

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

 

รายการอุปกรณ์

ตัวต้านทาน ¼ วัตต์ +/-5%

R1, R4 -                           470                                                                  2           ตัว

R2 -R3                             10k                                                                  2          ตัว

R6, R25 -                         1k                                                                    2          ตัว

R7- R13 -                          100                                                                  7          ตัว

R27 -                                10                                                                    1          ตัว

RN1- RN4 -                     4.7k ตัวต้านทานเน็ตเวิร์ค 5 ขา                              4          ตัว

RN5 -                               10kตัวต้านทานเน็ตเวิร์ค 5 ขา                                1          ตัว

 

ตัวเก็บประจุ

C1                                    100uF 25V อิเล็กทรอไลต์                                        1                ตัว

C2                                    330uF 16V อิเล็กทรอไลต์                                        1                ตัว

C3, C6-C8                        0.1uF 50V โพลีเอสเตอร์                                          4                ตัว

C4, C5                             22pF 50V เซรามิก                                                 2                ตัว

 

อุปกรณ์สารกึ่งตัวนำ

IC1                                   LM2575-5.0                                                          1                ตัว

IC2                                   ATMEGA328                                                      1                ตัว

IC3, IC4                           74165                                                                     2                ตัว

IC5                                   MAX7219                                                             1                ตัว

IC7                                   LTV817                                                                 1                ตัว

LED1                                POWER                                                               1                ตัว

LED2                                OUTPUT                                                             1                ตัว

Q1                                    2N4401                                                                 1                ตัว

D1                                    1N5819                                                                 1                ตัว

D2                                    1N4001                                                                 1                ตัว

BD1                                 บริดจ์กลม 100V 1A                                                1                ตัว

 

อื่นๆ

L1                                     330uH                                                                   1                ตัว

CON1-CON4                เทอร์มินอลบล็อก 2 ขา                                                4                 ตัว

CON5                              คอนเน็กเตอร์ 10 ขา                                                   1                ตัว

CON6-CON9                คอนเน็กเตอร์ 14 ขา                                                   4                ตัว

DIPSW1-DIPSW4        ดิปสวิตช์ 4 ช่อง                                                         4                ตัว

RY1                                  รีเลย์ 12V 1 คอนแท็กต์                                              1                ตัว

SEG1, SEG2                   7 เซกเมนต์ 4 หลัก ขนาด 0.56 นิ้ว                                2                ตัว

XTAL1                             คริสตอล 16MHz                                                     1                ตัว

หมายเหตุ ซอร์สโค้ดที่ใช้ร่วมกับโครงงานนี้สามารถดาวน์โหลดได้ที่เว็บไซต์  http://electronics.se-ed.com/download

Leave a Comment

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>