ผู้เขียน หัวข้อ: เรียนรู้ครั้งที่ 8 [การเพิ่มคอนโทรลคอมโพแนนต์ 7 Segment]  (อ่าน 5148 ครั้ง)

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 706
    • ดูรายละเอียด
    • อีเมล์
โปรแกรมที่ใช้ควบคุมฮาร์ดแวร์หากแสดงผลที่สวยงามจะสร้างความสนใจแก่ผู้ใช้งานมากขึ้น สำหรับการแสดงผลที่เป็นตัวเลขในเครื่องมือเครื่องใช้ทั่วไปมักจะพบเห็นการใช้ LED ที่เป็น 7 Segment มาใช้งาน หากสร้างโปรแกรมควบคุมงานที่ใช้การแสดงผลที่มีลักษณะคล้าย ๆ กันจะทำให้โปรแกรมดูดีขึ้น แต่เนื่องจากโปรแกรม Visual Studio (C#) ไม่มีส่วนที่แสดงผลแบบ LED ตัวเลขได้จึงจำเป็นต้องติดตั้งไดร์เวอร์เพิ่มเติม

ตัวอย่างที่ได้


มีขั้นตอนดังนี้

1. สร้างโปรเจคงาน


2. ดาวน์โหลดไดร์เวอร์แสดงผล LED 7 Segment ที่
https://github.com/dbrant/SevenSegment


3. ทำการแตกไฟล์ที่ดาวน์โหลดมา ทำการคัดลอกไฟล์ .DLL ที่อยู่ในโฟลเดอร์
...\SevenSegment-master\SevenSegment\bin\Release


4. นำไฟล์ที่คัดลอกวางในโฟลเดอร์โปรเจคในโฟลเดอร์ \bin\Debug


5. เพิ่มแทปใน Toolbox ดังรูป (ตั้งชื่อแทปตามต้องการ)


6. เลือกคอนโทรลคอมโพแนนต์ลงในแทปที่สร้างขึ้น ขั้นตอนดังรูป


7. คลิก Browse... เลือกไฟล์ที่วางในโฟลเดอร์โปรเจคจากขั้นตอนข้อที่ 4


8. จะได้คอนโทรลมา 2 ตัวคือ LED 7 Segment แบบตัวเดียวและแบบหลายตัว


ทดสอบการใช้งาน
โดยให้แสดงเป็นตัวเลขที่นับขึ้นทุก ๆ 1/10 วินาที

9. ลากวาง LED 7 Segment แบบหลายตัวทำการกำหนดค่าการใช้งานซึ่งหลัก ๆ มีดังนี้
ArrayCount =6         //จำนวนหลักของตัวเลข
ElementWidth=10    //ความหนาของตัวเลข
ElementPadding=8   //ความห่างระหว่างตัวเลข
DecimalShow=False // ปิดการแสดงจุดทศนิยม
ColorBackground     // สีพื้นหลัง
ColorDark               // สีเซกเมนต์ที่ดับ
ColorLight               // สีเซกเมนต์ติดสว่าง


10. วางคอนโทรล Timer ลงใน Form และกำหนดค่าใน Properties ดังนี้
   -Enabled-->True   เพื่อให้ไทเมอร์ทำงานทันทีเมื่อรันโปรแกรม
   -Interval--->100 กำหนดช่วงเวลาการกระตุ้นเป็น 100 มิลลิวินาที (1/10 วินาที)


11. ดับเบิลคลิกที่ตัว Timer แล้วเขียนโค้ด


12. รันโปรแกรมเพื่อทดสอบการแสดงผล


การปรับตัวเลขให้เอียง
จะต้องปรับ 2 ค่าดังรูป
   1. ปรับความเอียง ItalicFactor ให้มีค่า -0.1
   2. ปรับจุดเริ่มต้นด้านซ้ายของตัวเลขในแต่ละตัว ElementPadding->Left ให้มีค่าเป็น 20
(หรือจะเป็นค่าอื่นก็ได้ตามชอบ แต่ค่าข้างต้นนี้เป็นค่าที่ให้การแสดงผลกำลังพอดี)

« แก้ไขครั้งสุดท้าย: พฤษภาคม 25, 2022, 11:22:05 AM โดย admin »

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 706
    • ดูรายละเอียด
    • อีเมล์
...

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 706
    • ดูรายละเอียด
    • อีเมล์
...