LED 7-Segment
ที่จริงแล้วก็คือ LED ต่อกัน 7ดวง และมี LED จุด 1 ดวง a-g และ DP คือ point หรือจุดซึ่งหลักการจะให้มันโชว์ตัวเลข หรือว่าตัวอักษร นั้นก็ต่อเมื่อเราสั่ง LED 7ดวงนั้นให้อะไรดับ อะไรติด ดังรูป
ทั้งนี้ 7-Segment จะมี 2 แบบ แบ่งตามขา common ดังรูป
- Common Cathode คือการนำขา Common ไปต่อกับแรงดัน (Voltage) 0 V แล้วนำขั้วตรง a - g , DP ไปต่อเข้ากับแรงดัน +5 V เมื่อต้องการให้ LED ติด
- Common Anode สลับกัน โดยนำขา Common ไปต่อกับแรงดัน (Voltage) +5 V แล้วนำขั้วตรง a - g , DP ไปต่อเข้ากับแรงดัน 0 V เมื่อต้องการให้ LED ติด
Example เมื่อเราต้องการให้ 7-Segment Output เป็นเลข 0 เราต้องสั่งให้ a,b,c,d,e,f เป็นlogic 1 แต่ว่า g เป็น logic 0
Decoder
จากตารางจะเห็นว่าเป็นการยากที่เราจะต้องมาสั่งแบบนี้ไปตลอด ดังนั้น จึงมีการสร้างวงจร Decoder หรือพูดง่ายๆก็คือ วงจรถอดรหัส เพื่อที่เราจะได้สั่งเพียงแค่ 4 เส้น คือ 1s 2s 4s 8s ที่จริงก็คือเราสั่งแบบ binary เลขฐาน2 แล้วdecoder จะช่วยแปลงให้กลายเป็น logic 8 เส้นเพื่อควบคุม 7-Segment นั่นเองอันนี้คือตารางการแปลง binary เป็น HEX เพื่อ Display ที่ 7-segment ของ Decoder
BCD (Binary Coded Decimal)
เราสามารถแปลง เลขฐาน2 ไปเป็น เลขฐาน 16 จาก decoder แต่แล้วถ้าเราอยากจะแปลงเป็นเลขฐาน 10 ซึ่งมีตั้งแต่ 0-15 เราจะต้องใช้ 7-Segment ทั้งหมด 2 อัน , Decoder 2 ตัวและวงจร BCD ในการควบคุม
โดยต้องแปลง binary เป็น BCD เป็นขั้นแรก
แต่ก่อนจะรู้ว่าเราจะต้องสร้างวงจร BCD ยังไง เราก็ควรจะรู้ก่อนว่า truth table ของเราเป็นแบบไหน ซึ่งก็คือการนำเอา Input กับ Output ทั้งหมดมาสร้าง truth table ขึ้นได้ดังตาราง
ดังนั้นเมื่อเรานำไปสร้างเป็น digital circuit จึงได้เป็น
โดยต้องแปลง binary เป็น BCD เป็นขั้นแรก
แต่ก่อนจะรู้ว่าเราจะต้องสร้างวงจร BCD ยังไง เราก็ควรจะรู้ก่อนว่า truth table ของเราเป็นแบบไหน ซึ่งก็คือการนำเอา Input กับ Output ทั้งหมดมาสร้าง truth table ขึ้นได้ดังตาราง
ดังนั้นเมื่อเรานำไปสร้างเป็น digital circuit จึงได้เป็น
Encoder
เมื่อเรามี Decoder เราก็มี Encoder เช่นเดียวกัน ซึ่งเป็นวงจรเข้ารหัสบางสิ่งบางอย่าง อย่างเช่นรูปด้านล่าง จะเห็นว่า เราใส่ D0 - D3 แต่ Output ออกมาแค่ Q0 , Q1 เท่านั้น ถือเป็นการเข้ารหัสอย่างหนึ่งหรือ
จากรูปเราใส่ Input เป็น D0 - D3 แต่ Output มีเพียง Y0 และ Y2 เท่านั้น เราสามารถนำไปประยุกต์ใช้กับสิ่งต่างๆได้
Multiplexer
คือ วงจรที่มี Input เข้ามา 2 ตัวและเราสามารถเลือก Output ได้เพียงหนึ่ง ผ่าน logic ที่ให้กับขา Sel(Select) อย่างเช่น ถ้าเราให้ logic 0 กับขา Sel Output ของเราจะเป็น Input ตัวที่ 0 นั้นเอง
truth table Multiplexer 2 input
Multiplexer แบบ 4-input 2 select
เราสามารถเลือก ได้ว่าจะให้ Input ไหน Output ออกไป ผ่านขา Sel ดังตาราง
เรานำเอาวงจร Multiplexer ไปใช้อย่างเช่น การเลือกค่า R ในวงจร Integrate ที่เราเคยเรียน
การประยุกต์ใช้จากหัวข้อข้างต้น มีการใช้ BCD , Multiplexer , Decoder , 7-Segment ในการสร้างวงจรที่รับ Input มาเป็น BCD แล้ว Output Display ออกมาเป็นตัวเลขที่ 7-Segment
ปัญหาที่พบ
จากการต่อวงจร BCD เพื่อแปลง binary เป็น BCD โดยใช้ 7-Segment 2 ตัว และตัว Decoder นั้นพบว่า ถ้าเราไม่ออกแบบการต่ออย่างเป็นระบบ มีการ mark จุดว่าเราได้ต่อจุดไหนไปแล้ว และมีความเข้าใจที่มากพอเกี่ยวกับ circuit ที่กำลังต่อ จะพบว่า เราจะผิดพลาดได้หลายจุด ผมผิดพลาด 2 จุดด้วยกัน คือ
1. เสียบสาย Output กับ 7-Segment สลับขากัน ทำให้ Display ที่แสดงออกมาผิดไปจากที่ควร
2. เสียบ IC กลับหัว ทำให้5V เข้า GND และ 0V เข้า Vcc แต่ทั้งนี้จากการตรวจสอบ IC ยังไม่เสีย สามารถใช้งานได้ปกติครับ
วิธีการ Debug วงจร => นำ Output 8 เส้น ไปเสียบกับ LED ทีละเส้น แล้วcheck ว่าถ้าInput pattern นี้ Output ตรงกับ truth table หรือไม่
reference
http://dsearls.org/courses/C391OrgSys/Homework/Hmwk06e.gifhttp://www.thelearningpit.com/lp/doc/7seg/7segLed.gif
http://www.tutorialspoint.com/computer_logical_organization/images/priorityencoder_logiccircuit.jpg
http://www.codeproject.com/KB/system/441038/7segtruth.PNG
http://www.robotroom.com/DebouncedCounter/Figure713.gif
http://cds.linear.com/image/164_circuit_1.jpg
http://fourier.eng.hmc.edu/e85_old/lectures/digital_logic/img167.png
http://www.electronics-tutorials.ws/combination/comb17.gif?81223b
http://www.knowelectronics.org/bcd-to-9s-complement-converter-circuit/