มีวิธีการหลายวิธีที่สามารถใช้เพื่อขับเคลื่อน LED จำนวนมากจากหมุด IO ไม่กี่ตัว
ที่ง่ายที่สุดคือการแสดงมัลติเพล็กซิ่งแถว / คอลัมน์มาตรฐาน ด้วยเทคนิคนี้คุณสามารถขับ LEDs ด้วยหมุด IO ในทางคณิตศาสตร์รอบการทำงานคือ: n( n / 2 )2n
1m i n i m u m ( รูปแบบแถวที่ไม่ซ้ำกัน, รูปแบบคอลัมน์ที่ไม่ซ้ำกัน)
ซึ่งหมายความว่าเทคนิคนี้มีรอบการทำงาน 100% เมื่อไฟ LED ทั้งหมดสว่าง (หรือแถวทั้งหมดหรือคอลัมน์ทั้งหมดเหมือนกัน) และรอบการทำงานเมื่อจำเป็นต้องมีเส้นทแยงมุม (หรือแถวทั้งหมดแตกต่างกัน ) คุณรับประกันเฉพาะรอบการทำงาน 100% เมื่อให้แสงสว่างทุก LED หรือหนึ่ง LED (หรือ LED เป็นศูนย์ แต่ไม่นับมากนัก)1 / n
เล็กน้อยที่ซับซ้อนมากขึ้นเป็นCharlieplexing ด้วยเทคนิคนี้คุณสามารถขับเคลื่อนไฟ LEDด้วยหมุด IO เพียงไฟ LED สามารถไฟพร้อมกันกับเทคนิคนี้ ในทางคณิตศาสตร์รอบการทำงานคือ:n n - 1n2- nnn - 1
1minimum simultaneous sets
โดยที่ชุดพร้อมกันเป็นกลุ่มเฉพาะของ LED ที่มีขั้วบวกทั่วไปหรือแคโทดทั่วไป (สิ่งนี้ยังไม่ได้รับการพิสูจน์มันเป็นเพียงสิ่งที่ฉันมาถึงหลังจากไตร่ตรองปัญหาเป็นเวลาหนึ่งนาทีถ้ารอบการทำงานมีความสำคัญต่อคุณคุณจะต้องมองลึกลงไปอีก) นี่เป็นการคำนวณที่ซับซ้อนมากขึ้นทั้งในด้านสติปัญญา และคำนวณได้มากกว่าการคำนวณที่เทียบเท่าสำหรับมัลติเพล็กซิ่งมาตรฐาน อย่างมีประสิทธิภาพคุณจะได้รับรอบการทำงานเมื่อ LED ทั้งหมดติดสว่าง แต่บางรูปแบบ (เฉพาะบางส่วน) ของ n-1 หรือน้อยกว่า LED สามารถมีรอบการทำงานได้ 100% คุณรับประกันเฉพาะรอบการทำงาน 100% เมื่อให้แสงสว่าง 1 LED1/n
วิธีสุดท้ายที่ฉันจะพูดถึงคือการใช้shift registerหรือ IO expander ด้วยสองพิน (อินเทอร์เฟซข้อมูล / นาฬิกาดิบ I2C หรือทิศทางเดียว SPI) คุณสามารถควบคุมไฟ LED จำนวนมากตามอำเภอใจ รอบการทำงานสำหรับรูปแบบใด ๆ คือ 100% แต่อัตราการอัปเดตจะแปรผกผันกับจำนวนไฟ LED นี่เป็นวิธีที่มีราคาแพงที่สุด สำหรับไฟ LED 15 ดวงอาจจะถูกกว่าหากคุณอัพเกรดเป็นไมโครที่มีหมุด IO จำนวนมาก