สารบัญ:

Charlieplexing LEDs- ทฤษฎี: 7 ขั้นตอน (พร้อมรูปภาพ)
Charlieplexing LEDs- ทฤษฎี: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Charlieplexing LEDs- ทฤษฎี: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Charlieplexing LEDs- ทฤษฎี: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Creating music with Assembly - Part 8 Microcontroller Basics (PIC10F200) 2024, มิถุนายน
Anonim
Charlieplexing LEDs- ทฤษฎี
Charlieplexing LEDs- ทฤษฎี
Charlieplexing LEDs- ทฤษฎี
Charlieplexing LEDs- ทฤษฎี

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

'ชาร์ลีเพล็กซ์ซิ่ง' คืออะไร? มันขับ LED จำนวนมากด้วยหมุดเพียงไม่กี่ตัว ในกรณีที่คุณสงสัยว่า Charlieplexing ได้รับการตั้งชื่อตาม Charles Allen ที่ Maxim ผู้พัฒนาเทคนิคนี้ สิ่งนี้มีประโยชน์สำหรับหลาย ๆ อย่าง คุณอาจต้องแสดงข้อมูลสถานะบนไมโครคอนโทรลเลอร์ขนาดเล็ก แต่มีหมุดสำรองเพียงไม่กี่ตัว คุณอาจต้องการแสดงดอทเมทริกซ์แฟนซีหรือการแสดงนาฬิกา แต่ไม่ต้องการใช้ส่วนประกอบจำนวนมาก โครงการอื่น ๆ ที่แสดงให้เห็นถึง charlieplexing ที่คุณอาจต้องการดูคือ: วิธีขับ LED จำนวนมากจากหมุดไมโครคอนโทรลเลอร์สองสามตัว โดย Westfw:- https://www.instructables.com/id/ED0NCY0UVWEP287ISO/ และอีกสองสามโครงการของฉันเอง The Microdot watch:- https://www.instructables.com/id/EWM2OIT78OERWHR38Z/ นาฬิกา Minidot 2: - https://www.instructables.com/id/E11GKKELKAEZ7BFZAK/ อีกตัวอย่างที่น่าสนใจของการใช้ charlieplexing คือที่:https://www.jsdesign.co.uk/charlie/ นาฬิกา Minidot 2 แนะนำรูปแบบ charlieplexing ขั้นสูงสำหรับ ซีดจาง/หรี่ลงซึ่งจะไม่กล่าวถึงในที่นี้ อัปเดต 19 สิงหาคม 2551: ฉันได้เพิ่มไฟล์ zip ที่มีวงจรที่อาจใช้ประโยชน์จากเมทริกซ์ charliplexing สำหรับไฟ LED กำลังสูงที่กล่าวถึง (ที่ความยาว:)) ในส่วนความคิดเห็น มีปุ่มกด + ตัวเข้ารหัสตำแหน่งเพื่อทำอินเทอร์เฟซผู้ใช้ รวมทั้งวงจรสำหรับควบคุมคอมพิวเตอร์ USB หรือ RS232 รางไฟฟ้าแรงสูงแต่ละรางสามารถตั้งค่าแรงดันไฟฟ้าได้ 2 ระดับ กล่าวคือ 2.2V สำหรับไฟ LED สีแดง และ 3.4V สำหรับสีเขียว/น้ำเงิน/ขาว แรงดันไฟสำหรับรางสูงด้านข้างสามารถตั้งค่าได้ด้วยทริมพอต ฉันคิดว่าจะเสียบสายริบบิ้น IDC 20 สายเข้ากับบอร์ดและเพิ่มตัวเชื่อมต่อ IDC 20 พินตามความยาวของริบบิ้น บอร์ด LED แต่ละตัวมีลิงก์ไปยังสายใด ๆ ในเมทริกซ์ที่ต้องการ วงจรอยู่ใน Eagle Cad และแสดงผลในภาพย่อยด้านล่าง วงจรด้านสูงถูกนำมาใช้โดยใช้ออปโตคัปเปลอร์ซึ่งผมคิดว่าน่าจะเหมาะสม ฉันไม่ได้ทดสอบวงจรนี้จริง ๆ หรือเขียนซอฟต์แวร์ใด ๆ เนื่องจากไม่มีเวลา แต่ได้แสดงความคิดเห็นแล้ว ฉันสนใจเป็นพิเศษในการใช้งาน optocoupler ใครกล้าพอที่จะลองดู…โปรดโพสต์ผลลัพธ์ของคุณ อัปเดต 27 สิงหาคม 2551: สำหรับผู้ที่ไม่ได้ใช้ EagleCad…. ที่เพิ่มด้านล่างเป็น pdf ของแผนผัง

ขั้นตอนที่ 1: ทฤษฎี LED บางส่วน

ทฤษฎี LED บางส่วน
ทฤษฎี LED บางส่วน
ทฤษฎี LED บางส่วน
ทฤษฎี LED บางส่วน

Charlieplexing อาศัยข้อดีหลายประการของ LED และไมโครคอนโทรลเลอร์ที่ทันสมัย

ประการแรกจะเกิดอะไรขึ้นเมื่อคุณเชื่อมต่อ LED กับไฟฟ้า แผนภาพหลักด้านล่างแสดงสิ่งที่เรียกว่าเส้นโค้ง If v Vf ของ LED พลังงานต่ำทั่วไปขนาด 5 มม. หากย่อมาจาก 'forward current' Vf ย่อมาจาก 'forward voltage' แกนตั้งในคำอื่น ๆ จะแสดงกระแสที่จะไหลผ่าน LED หากคุณใส่แรงดันแกนนอนข้ามขั้วของมัน มันทำงานในทางกลับกันเช่นกัน ถ้าคุณวัดว่ากระแสมีค่าบางอย่าง คุณสามารถมองข้ามไปยังแกนนอนและเห็นแรงดันไฟฟ้าที่ LED จะปรากฎข้ามขั้วของมัน ไดอะแกรมที่สองแสดงการแสดงแผนผังของ LED พร้อมป้ายกำกับ If และ Vf จากไดอะแกรมหลัก ฉันยังระบุพื้นที่ของกราฟที่น่าสนใจด้วย - พื้นที่แรกคือตำแหน่งที่ LED 'ปิด' LED เปล่งแสงได้แม่นยำยิ่งขึ้นจนคุณมองไม่เห็น เว้นแต่ว่าคุณมีตัวเพิ่มความเข้มของภาพแบบซุปเปอร์ดูเปอร์ - บริเวณที่สองมี LED เปล่งแสงสลัวเพียงเล็กน้อย - พื้นที่ที่สามคือบริเวณที่ LED ทำงานปกติและเปล่งแสงที่ระดับผู้ผลิต - บริเวณที่สี่เป็นบริเวณที่ไฟ LED ทำงานเกินขีดจำกัดการทำงาน อาจมีแสงจ้ามาก แต่อนิจจาเพียงช่วงเวลาสั้นๆ ก่อนที่ควันวิเศษภายในจะหลบหนีและจะไม่ทำงานอีก……เช่น บริเวณนี้ไฟจะดับเพราะ กระแสไฟไหลผ่านมากเกินไป โปรดทราบว่าเส้นโค้ง If/Vf หรือเส้นโค้งการทำงานของ LED เป็นเส้นโค้ง 'ไม่เป็นเชิงเส้น' นั่นคือ มันไม่ใช่เส้นตรง…มันมีส่วนโค้งหรืองออยู่ในนั้น สุดท้ายนี้ แผนภาพนี้มีไว้สำหรับ LED สีแดงขนาด 5 มม. ทั่วไปที่ออกแบบมาเพื่อทำงานที่ 20mA LED ที่ต่างกันจากผู้ผลิตหลายรายมีเส้นโค้งการทำงานที่แตกต่างกัน ตัวอย่างเช่น ในแผนภาพนี้ที่ 20mA แรงดันไปข้างหน้าของ LED จะอยู่ที่ประมาณ 1.9V สำหรับ LED สีน้ำเงินขนาด 5 มม. ที่ 20mA แรงดันไปข้างหน้าอาจเป็น 3.4V สำหรับ LED Luxeon สีขาวกำลังสูงที่ 350mA แรงดันไฟฟ้าไปข้างหน้าอาจอยู่ที่ประมาณ 3.2V แพ็คเกจ LED บางตัวอาจเป็น LED หลายดวงเป็นอนุกรมหรือขนานกัน โดยเปลี่ยนเส้นโค้ง Vf/If อีกครั้ง โดยปกติผู้ผลิตจะระบุกระแสการทำงานที่ปลอดภัยที่จะใช้ LED และแรงดันไปข้างหน้าที่กระแสนั้น โดยปกติ (แต่ไม่เสมอไป) คุณจะได้กราฟที่คล้ายกับด้านล่างในแผ่นข้อมูล คุณต้องดูแผ่นข้อมูลสำหรับ LED เพื่อกำหนดว่าแรงดันไปข้างหน้าอยู่ที่กระแสการทำงานต่างกันอย่างไร เหตุใดกราฟนี้จึงมีความสำคัญมาก เพราะมันแสดงให้เห็นว่าเมื่อแรงดันข้าม LED กระแสที่จะไหลจะเป็นไปตามกราฟ ลดแรงดันไฟลงและกระแสจะไหลน้อยลง…..และ LED จะ 'ปิด' นี่เป็นส่วนหนึ่งของทฤษฎีชาร์ลีเพล็กซ์ซิ่ง ซึ่งเราจะพูดถึงในขั้นตอนต่อไป

ขั้นตอนที่ 2: กฎหมาย (ของอิเล็กทรอนิกส์)

กฎหมาย (ของอิเล็กทรอนิกส์)
กฎหมาย (ของอิเล็กทรอนิกส์)
กฎหมาย (ของอิเล็กทรอนิกส์)
กฎหมาย (ของอิเล็กทรอนิกส์)
กฎหมาย (ของอิเล็กทรอนิกส์)
กฎหมาย (ของอิเล็กทรอนิกส์)

ยังไม่ถึงความมหัศจรรย์ของ charlieplexing เลย…. เราจำเป็นต้องไปที่พื้นฐานของกฎหมายอิเล็กทรอนิกส์ กฎข้อแรกที่น่าสนใจระบุว่าแรงดันไฟฟ้าทั้งหมดในส่วนประกอบที่เชื่อมต่อในวงจรไฟฟ้าแบบใดแบบหนึ่งมีค่าเท่ากับผลรวมของแต่ละบุคคล แรงดันไฟฟ้าข้ามส่วนประกอบ แสดงในแผนภาพหลักด้านล่าง ซึ่งจะเป็นประโยชน์เมื่อใช้ไฟ LED เนื่องจากพินเอาต์พุตของแบตเตอรี่หรือไมโครคอนโทรลเลอร์โดยเฉลี่ยของคุณจะไม่มีทางเป็นแรงดันไฟฟ้าที่ถูกต้องอย่างแน่นอนในการเรียกใช้ LED ของคุณที่กระแสไฟที่แนะนำ ตัวอย่างเช่น ไมโครคอนโทรลเลอร์มักจะทำงานที่ 5V และพินเอาต์พุตจะอยู่ที่ 5V เมื่อเปิด หากคุณเพียงแค่เชื่อมต่อ LED เข้ากับพินเอาต์พุตของไมโคร คุณจะเห็นจากเส้นโค้งการทำงานในหน้าก่อนหน้า กระแสไฟ LED จะไหลมากเกินไป และจะร้อนและหมดไฟ (อาจทำให้ไมโครเสียหายได้เช่นกัน). อย่างไรก็ตาม หากเราแนะนำส่วนประกอบที่สองในซีรีส์ที่มี LED เราสามารถลบ 5V บางส่วนออกเพื่อให้แรงดันไฟฟ้าที่เหลือนั้นถูกต้องเพื่อให้ LED ทำงานด้วยกระแสไฟที่เหมาะสม โดยทั่วไปจะเป็นตัวต้านทาน และเมื่อใช้ในลักษณะนี้เรียกว่าตัวต้านทานจำกัดกระแส วิธีนี้ใช้กันทั่วไปและนำไปสู่สิ่งที่เรียกว่า 'กฎของโอห์ม' …. ดังนั้นตั้งชื่อตามกฎของโอห์ม กฎของโอห์ม เป็นไปตามสมการ V = I * R โดยที่ V คือแรงดันที่จะปรากฏข้ามความต้านทาน R เมื่อกระแส I กำลังไหลผ่านตัวต้านทาน V เป็นโวลต์ ฉันอยู่ในแอมป์ และ R เป็นโอห์ม ดังนั้นถ้าเรามี 5V ที่จะใช้ และเราต้องการ 1.9V ข้าม LED เพื่อให้มันทำงานที่ 20mA เราต้องการให้ตัวต้านทานมีค่า 5-1.9=3.1 วีข้ามมัน เราสามารถเห็นสิ่งนี้ในไดอะแกรมที่สอง เนื่องจากตัวต้านทานอยู่ในอนุกรมกับ LED กระแสเดียวกันจะไหลผ่านตัวต้านทานเช่นเดียวกับ LED นั่นคือ 20mA ดังนั้นการจัดเรียงสมการใหม่ เราจึงสามารถหาค่าความต้านทานที่จำเป็นในการทำงานนี้ได้ V = I * RsoR = V / แทนค่าในตัวอย่างที่เราได้รับ:R = 3.1 / 0.02 = 155ohms(หมายเหตุ 20mA = 0.02Amps)ยังคงอยู่กับฉัน จนถึงตอนนี้…เจ๋ง ตอนนี้ดูที่แผนภาพ 3 มันมี LED ประกบระหว่างตัวต้านทานสองตัว ตามกฎข้อแรกที่กล่าวมาข้างต้น เรามีสถานการณ์เดียวกันในแผนภาพที่สอง เรามีไฟ LED 1.9V ข้าม ดังนั้นมันจึงทำงานตามแผ่นข้อมูลจำเพาะ นอกจากนี้เรายังมีตัวต้านทานแต่ละตัวลบ 1.55V แต่ละตัว (รวมเป็น 3.1) เมื่อรวมแรงดันไฟฟ้าเข้าด้วยกัน เรามี 5V (พินไมโครคอนโทรลเลอร์) = 1.55V (R1) + 1.9V (ไฟ LED) + 1.55V (R2) และทุกอย่างสมดุลกัน การใช้กฎของโอห์ม เราพบว่าตัวต้านทานแต่ละตัวต้องมีค่า 77.5 โอห์ม ซึ่งเท่ากับครึ่งหนึ่งของจำนวนที่คำนวณจากแผนภาพที่สอง แน่นอนว่าในทางปฏิบัติ คุณอาจถูกกดดันอย่างหนักเพื่อค้นหาตัวต้านทาน 77.5ohm ดังนั้นคุณเพียงแค่แทนที่ค่าที่ใกล้ที่สุดที่มีอยู่ พูด 75ohms และจบลงด้วยกระแสที่มากขึ้น LED หรือ 82ohms เพื่อความปลอดภัยและมีค่าน้อยกว่า ทำไมเราควรทำตัวต้านทานนี้เพื่อขับ LED ธรรมดา…..ถ้าคุณมี LED หนึ่งดวงมันค่อนข้างงี่เง่า แต่นี่เป็นคำแนะนำเกี่ยวกับ charlieplexing และมีประโยชน์สำหรับขั้นตอนต่อไป

ขั้นตอนที่ 3: แนะนำ 'ไดรฟ์เสริม'

ขอแนะนำ 'ไดรฟ์เสริม'
ขอแนะนำ 'ไดรฟ์เสริม'

อีกชื่อหนึ่งที่อธิบาย 'charlieplexing' ได้แม่นยำกว่าคือ 'complementary drive'

ในไมโครคอนโทรลเลอร์โดยเฉลี่ย คุณสามารถบอกไมโครคอนโทรลเลอร์ในเฟิร์มแวร์ว่าให้ตั้งค่าพินเอาต์พุตเป็น '0' หรือ '1' หรือให้แสดงแรงดันไฟฟ้า 0V ที่เอาต์พุตหรือแรงดันไฟฟ้า 5V ที่เอาต์พุต แผนภาพด้านล่างแสดง LED แบบประกบกับคู่ที่กลับด้าน….หรือ LED เสริม จึงเป็นไดรฟ์เสริม ในครึ่งแรกของไดอะแกรม ไมโครจะส่งสัญญาณออก 5V ไปยังพิน A และ 0V ไปยังพิน B กระแสจะไหลจาก A ถึง B เนื่องจาก LED2 จะหันกลับไปทาง LED1 จะไม่มีกระแสไหลผ่านและจะไม่ไหลผ่าน เรืองแสง เรียกว่ากลับลำเอียง เรามีสถานการณ์เทียบเท่าในหน้าที่แล้ว โดยทั่วไปเราสามารถละเว้น LED2 ได้ ลูกศรแสดงการไหลปัจจุบัน โดยพื้นฐานแล้ว LED เป็นไดโอด (ดังนั้น Light Emitting Diode) ไดโอดเป็นอุปกรณ์ที่ช่วยให้กระแสไหลไปในทิศทางเดียว แต่ไม่สามารถไหลในทิศทางอื่นได้ แผนผังของการเรียงลำดับ LED แสดงสิ่งนี้ กระแสจะไหลไปในทิศทางของลูกศร……แต่ถูกบล็อกในอีกทางหนึ่ง หากเราสั่งให้ไมโครส่งออก 5V ไปยังพิน B และ 0V บนพิน A เรามีสิ่งที่ตรงกันข้าม ตอนนี้ LED1 มีความเอนเอียงแบบย้อนกลับ LED2 มีความเอนเอียงไปข้างหน้าและจะยอมให้กระแสไหล LED2 จะเรืองแสงและ LED1 จะมืด ตอนนี้อาจเป็นความคิดที่ดีที่จะดูแผนผังของโครงการต่างๆ ที่กล่าวถึงในบทนำ คุณควรเห็นคู่ประกอบเหล่านี้จำนวนมากในเมทริกซ์ แน่นอนในตัวอย่างด้านล่าง เรากำลังขับ LED สองดวงพร้อมหมุดไมโครคอนโทรลเลอร์สองตัว…. คุณสามารถพูดได้ว่าทำไมต้องรำคาญ ส่วนต่อไปคือที่ที่เราไปถึงความกล้าของ charlieplexing และวิธีใช้งานพินเอาต์พุตไมโครคอนโทรลเลอร์อย่างมีประสิทธิภาพ

ขั้นตอนที่ 4: ในที่สุด…. Charlieplex Matrix

ในที่สุด….ชาร์ลีเพล็กซ์ เมทริกซ์
ในที่สุด….ชาร์ลีเพล็กซ์ เมทริกซ์
ในที่สุด….ชาร์ลีเพล็กซ์ เมทริกซ์
ในที่สุด….ชาร์ลีเพล็กซ์ เมทริกซ์

ดังที่กล่าวไว้ในบทนำ charliplexing เป็นวิธีที่สะดวกในการขับ LED จำนวนมากด้วยหมุดเพียงไม่กี่ตัวบนไมโครคอนโทรลเลอร์ อย่างไรก็ตามในหน้าที่แล้ว เรายังไม่ได้บันทึกหมุดใดๆ เลย ขับ LED สองดวงด้วยหมุดสองอัน….โห่!

เราสามารถขยายแนวคิดของไดรฟ์เสริม ไปเป็นเมทริกซ์ชาร์ลีเพล็กซ์ได้ แผนภาพด้านล่างแสดงเมทริกซ์ชาร์ลีเพล็กซ์ขั้นต่ำที่ประกอบด้วยตัวต้านทานสามตัวและไฟ LED หกดวง และใช้หมุดไมโครคอนโทรลเลอร์เพียงสามตัว ตอนนี้คุณเห็นว่าวิธีนี้สะดวกแค่ไหน? หากคุณต้องการขับ LED หกดวงด้วยวิธีปกติ….คุณต้องมีหมุดไมโครคอนโทรลเลอร์หกตัว ในความเป็นจริง ด้วยพิน N ของไมโครคอนโทรลเลอร์ คุณสามารถขับไฟ LED N * (N - 1) ได้ สำหรับ 3 พิน นี่คือ 3 * (3-1) = 3 * 2 = 6 LEDs สิ่งต่าง ๆ ซ้อนกันอย่างรวดเร็วด้วยหมุดที่มากขึ้น ด้วย 6 พิน คุณสามารถขับ 6 * (6 - 1) = 6 * 5 = 30 LEDs….ว้าว! ตอนนี้ไปที่บิตชาร์ลีเพล็กซ์ ดูแผนภาพด้านล่าง เรามีคู่เสริมสามคู่ หนึ่งคู่ระหว่างแต่ละพินเอาต์พุตขนาดเล็กรวมกัน หนึ่งคู่ระหว่าง A-B หนึ่งคู่ระหว่าง B-C และหนึ่งคู่ระหว่าง A-C หากคุณตัดการเชื่อมต่อพิน C ในตอนนี้ เราจะมีสถานการณ์เหมือนเดิม ด้วย 5V บนพิน A และ 0V บนพิน B LED1 จะเรืองแสง LED2 จะลำเอียงย้อนกลับและจะไม่นำกระแส ด้วย 5V บนพิน B และ 0V บนพิน A LED2 จะเรืองแสงและ LED1 จะมีความเอนเอียงแบบย้อนกลับ ตามด้วยไมโครพินอื่นๆ หากเราตัดการเชื่อมต่อพิน B และตั้งค่าพิน A เป็น 5V และพิน C เป็น 0V แล้ว LED5 จะเรืองแสง การย้อนกลับเพื่อให้พิน A เป็น 0V และพิน C คือ 5V จากนั้น LED6 จะเรืองแสง เช่นเดียวกับคู่เสริมระหว่างพิน BC รอฉันได้ยินคุณพูด มาดูกรณีที่สองกันสักหน่อยดีกว่า เรามี 5V ที่พิน A และ 0V บนพิน C เราถอดพิน B แล้ว (อันตรงกลาง) ตกลง ดังนั้นกระแสจึงไหลผ่าน LED5 กระแสไม่ไหลผ่าน LED6 เพราะมันมีความเอนเอียงแบบย้อนกลับ (เช่นเดียวกับ LED2 และ LED4)….แต่ยังมีเส้นทางสำหรับกระแสที่จะดึงจากพิน A ผ่าน LED1 และ LED3 ไม่มี? ทำไมไฟ LED เหล่านี้ไม่เรืองแสงเช่นกัน นี่คือหัวใจของโครงการ charlieplexing อันที่จริงมีกระแสไหลทั้ง LED1 และ LED3 อย่างไรก็ตาม แรงดันไฟของทั้งสองสิ่งนี้รวมกันจะเท่ากับแรงดันบน LED5 เท่านั้น โดยทั่วไปแล้วจะมีแรงดันไฟฟ้าครึ่งหนึ่งที่ LED5 มี ดังนั้นหากเรามี 1.9V ใน LED5 ก็จะมีเพียง 0.95V ใน LED1 และ 0.95V สำหรับ LED3 จากเส้นโค้ง If/Vf ที่กล่าวถึงในตอนต้นของบทความนี้ เราจะเห็นได้ว่ากระแสที่แรงดันไฟฟ้าครึ่งหนึ่งนี้ต่ำกว่า 20mA มาก…..และไฟ LED เหล่านั้นจะไม่เรืองแสงอย่างเห็นได้ชัด สิ่งนี้เรียกว่าการขโมยในปัจจุบัน ดังนั้นกระแสส่วนใหญ่จะไหลแม้ว่าเราต้องการ LED ซึ่งเป็นเส้นทางที่ตรงที่สุดผ่าน LED จำนวนน้อยที่สุด (เช่น LED หนึ่งดวง) แทนที่จะเป็นชุด LED รวมกัน หากคุณดูที่กระแสไฟสำหรับการใส่ค่า 5V และ 0V บนหมุดไดรฟ์สองตัวใดๆ ของเมทริกซ์ชาร์ลีเพล็กซ์ คุณจะเห็นสิ่งเดียวกัน LED เพียงหนึ่งดวงจะเรืองแสงในแต่ละครั้ง ให้ดูที่สถานการณ์แรกเป็นแบบฝึกหัด 5V บนพิน A และ 0V บนพิน B ถอดพิน C LED1 เป็นเส้นทางที่สั้นที่สุดสำหรับกระแสไฟที่ใช้ และ LED 1 จะติดสว่าง กระแสไฟขนาดเล็กจะไหลผ่าน LED5 จากนั้นจึงสำรอง LED4 เพื่อตรึง B…..แต่อีกครั้ง ไฟ LED สองดวงในซีรีส์นี้จะไม่สามารถสูบฉีดกระแสไฟฟ้าได้เพียงพอเมื่อเปรียบเทียบกับ LED 1 เพื่อให้เรืองแสงสว่าง ดังนั้นพลังของชาร์ลีเพล็กซ์จึงเกิดขึ้นจริง ดูไดอะแกรมที่สองซึ่งเป็นแผนผังสำหรับนาฬิกา Microdot ของฉัน…..30 LED ที่มีเพียง 6 พิน นาฬิกา Minidot 2 ของฉันนั้นเป็นรุ่นขยายของ Microdot…. ไฟ LED 30 ดวงที่จัดเรียงเป็นอาร์เรย์ ในการสร้างรูปแบบในอาร์เรย์ ไฟ LED แต่ละดวงที่จะส่องสว่างจะถูกเปิดขึ้นชั่วครู่ จากนั้นไมโครจะย้ายไปที่ถัดไป หากมีการตั้งเวลาให้ติดสว่าง จะเปิดขึ้นอีกครั้งในช่วงเวลาสั้นๆ ด้วยการสแกนผ่าน LED อย่างรวดเร็ว หลักการที่เรียกว่า 'ความคงอยู่ของการมองเห็น' จะช่วยให้อาร์เรย์ของ LED แสดงรูปแบบคงที่ได้ บทความ Minidot 2 มีคำอธิบายเล็กน้อยเกี่ยวกับหลักการนี้ แต่เดี๋ยวก่อน…..ฉันดูจะคลุมเครือไปเล็กน้อยในคำอธิบายด้านบนนี้ ธุรกิจ 'disconnect pin B', 'disconnect pin C' คืออะไร ภาคต่อไปได้โปรด

ขั้นตอนที่ 5: Tri-state (ไม่ใช่ Tricycles)

Tri-states (ไม่ใช่ Tricycles)
Tri-states (ไม่ใช่ Tricycles)
Tri-states (ไม่ใช่ Tricycles)
Tri-states (ไม่ใช่ Tricycles)

ในขั้นตอนก่อนหน้านี้ เราได้กล่าวถึงไมโครคอนโทรลเลอร์ที่สามารถตั้งโปรแกรมให้ส่งแรงดันไฟ 5V หรือแรงดัน 0V ได้ เพื่อให้เมทริกซ์ charlieplex ทำงานได้ เราเลือกหมุดสองตัวในเมทริกซ์ และถอดหมุดอื่นๆ ออก

แน่นอนว่าการถอดหมุดด้วยตนเองทำได้ยาก โดยเฉพาะอย่างยิ่งถ้าเรากำลังสแกนสิ่งต่างๆ อย่างรวดเร็วเพื่อใช้เอฟเฟกต์การมองเห็นที่คงอยู่เพื่อแสดงรูปแบบ อย่างไรก็ตาม พินเอาท์พุตไมโครคอนโทรลเลอร์ยังสามารถตั้งโปรแกรมให้เป็นพินอินพุทได้เช่นกัน เมื่อไมโครพินถูกตั้งโปรแกรมให้เป็นอินพุต ไมโครพินจะเข้าสู่สิ่งที่เรียกว่า 'อิมพีแดนซ์สูง' หรือ 'ไตรสเตต' กล่าวคือมีความต้านทานสูงมาก (ตามลำดับเมกะโอห์มหรือหลายล้านโอห์ม) ต่อพิน หากมีความต้านทานสูงมาก (ดูแผนภาพ) เราสามารถพิจารณาได้ว่าพินถูกตัดการเชื่อมต่อ ดังนั้นแผนภาพ charliplex จึงใช้งานได้ ไดอะแกรมที่สองแสดงหมุดเมทริกซ์สำหรับแต่ละชุดค่าผสมที่เป็นไปได้ในการส่องสว่าง LED ทั้ง 6 ดวงในตัวอย่างของเรา โดยทั่วไป สถานะไตรจะแสดงด้วย 'X', 5V จะแสดงเป็น '1' (สำหรับตรรกะ 1) และ 0V เป็น '0' ในไมโครเฟิร์มแวร์สำหรับ '0' หรือ '1' คุณต้องตั้งโปรแกรมพินให้เป็นเอาต์พุตและสถานะได้รับการกำหนดไว้อย่างดี สำหรับ tri-state คุณตั้งโปรแกรมให้เป็นอินพุต และเนื่องจากเป็นอินพุต เราจึงไม่ทราบจริงๆ ว่าสถานะอาจเป็นอะไร….เพราะฉะนั้น 'X' จึงไม่ทราบ แม้ว่าเราอาจจัดสรรพินให้เป็นไตรสถานะหรืออินพุต แต่เราไม่จำเป็นต้องอ่าน เราแค่ใช้ประโยชน์จากข้อเท็จจริงที่ว่าพินอินพุตบนไมโครคอนโทรลเลอร์นั้นมีความต้านทานสูง

ขั้นตอนที่ 6: ข้อปฏิบัติบางประการ

ความมหัศจรรย์ของ charlieplexing ขึ้นอยู่กับข้อเท็จจริงที่ว่าแรงดันไฟฟ้าแต่ละดวงที่แสดงผ่าน LED หลายดวงในซีรีส์จะน้อยกว่า LED เดียวใน LED เดียวเสมอเมื่อ LED เดี่ยวขนานกับชุดค่าผสม หากแรงดันไฟฟ้าน้อยกว่า แสดงว่ากระแสไฟน้อยลง และหวังว่ากระแสในชุดค่าผสมจะต่ำมากจนไฟ LED ไม่ติด อย่างไรก็ตาม อาจไม่เป็นเช่นนั้นเสมอไป สมมติว่าคุณมีไฟ LED สีแดงสองดวงที่มีไฟ LED แบบทั่วไป แรงดันไปข้างหน้า 1.9V ในเมทริกซ์ของคุณและ LED สีน้ำเงินที่มีแรงดันไปข้างหน้า 3.5V (เช่น LED1=red, LED3=red, LED5=blue ในตัวอย่าง LED 6 ดวงของเรา) หากคุณเปิดไฟ LED สีฟ้า คุณจะได้ 3.5/2 = 1.75V สำหรับ LED สีแดงแต่ละดวง ซึ่งอาจอยู่ใกล้กับพื้นที่การทำงานที่มืดสลัวของ LED มาก คุณอาจพบว่าไฟ LED สีแดงจะสลัวเมื่อสีน้ำเงินสว่าง ดังนั้นควรตรวจสอบให้แน่ใจว่าแรงดันไฟ LED ไปข้างหน้าของไฟ LED สีต่างๆ ในเมทริกซ์ของคุณมีค่าใกล้เคียงกันที่กระแสไฟทำงาน มิฉะนั้นจะใช้สีเดียวกัน ไฟ LED ในเมทริกซ์ ในโครงการ Microdot/Minidot ของฉัน ฉันไม่ต้องกังวลเกี่ยวกับเรื่องนี้ ฉันใช้ไฟ LED SMD สีน้ำเงิน/เขียวที่มีประสิทธิภาพสูง ซึ่งโชคดีที่มีแรงดันไฟฟ้าไปข้างหน้ามากเท่ากับสีแดง/เหลือง อย่างไรก็ตาม ถ้าฉันใช้สิ่งเดียวกันกับ LED 5 มม. ผลลัพธ์ก็จะมีปัญหามากขึ้น ในกรณีนี้ ฉันจะใช้เมทริกซ์ชาร์ลีเพล็กซ์สีน้ำเงิน/เขียว และเมทริกซ์สีแดง/เหลืองแยกกัน ฉันจำเป็นต้องใช้หมุดมากขึ้น….แต่ก็ไปแล้ว อีกปัญหาหนึ่งคือการดูการดึงปัจจุบันของคุณจากไมโครและความสว่างที่คุณต้องการให้ LED หากคุณมีเมทริกซ์ขนาดใหญ่ และกำลังสแกนอย่างรวดเร็ว ไฟ LED แต่ละดวงจะเปิดขึ้นในช่วงเวลาสั้นๆ สิ่งนี้จะดูค่อนข้างสลัวเมื่อเทียบกับจอแสดงผลแบบคงที่ คุณสามารถโกงได้โดยการเพิ่มกระแสผ่าน LED โดยการลดตัวต้านทาน จำกัด กระแส แต่เพียงจุดเดียว หากคุณดึงกระแสไฟออกจากไมโครมากเกินไปนานเกินไป คุณจะทำลายพินเอาต์พุต หากคุณมีเมทริกซ์ที่เคลื่อนที่ช้า เช่น แสดงสถานะหรือไซโคลน คุณสามารถรักษากระแสไฟให้อยู่ในระดับที่ปลอดภัยได้ แต่ยังคงมีจอแสดงผล LED ที่สว่างเพราะ LED แต่ละดวงเปิดอยู่นานขึ้น อาจเป็นแบบคงที่ (ในกรณีของ ตัวบ่งชี้สถานะ) ข้อดีบางประการของ charlieplexing: - ใช้เพียงไม่กี่พินบนไมโครคอนโทรลเลอร์เพื่อควบคุมไฟ LED จำนวนมาก - ลดการนับส่วนประกอบเนื่องจากคุณไม่จำเป็นต้องใช้ชิปไดรเวอร์ / ตัวต้านทานจำนวนมาก ฯลฯ ข้อเสียบางประการ: - ไมโครเฟิร์มแวร์ของคุณจะต้องจัดการกับการตั้งค่า ทั้งสถานะแรงดันไฟฟ้าและสถานะอินพุต/เอาต์พุตของพิน - ต้องระวังในการผสมสีที่ต่างกัน - เลย์เอาต์ PCB นั้นยากเพราะเมทริกซ์ LED นั้นซับซ้อนกว่า

ขั้นตอนที่ 7: การอ้างอิง

มีข้อมูลอ้างอิงมากมายเกี่ยวกับ charlieplexing บนเว็บ นอกเหนือจากลิงก์ที่อยู่ด้านหน้าของบทความแล้ว ยังมีบางลิงก์ที่กล่าวถึง: บทความต้นฉบับจาก Maxim มีหลายสิ่งให้พูดถึงเกี่ยวกับการขับจอแสดงผล 7 ส่วนซึ่งก็เป็นไปได้เช่นกัน https://www.maxim-ic.com/appnotes.cfm/appnote_number/1880A รายการวิกิhttps://en.wikipedia.org/wiki/Charlieplexing

แนะนำ: