จัดการ Pin ให้เทพด้วย IC 74HC595 Shift Register
ถ้าเอ็งต่อ 7-segment display เข้ากับ Arduino ตรงๆ ตัวเดียวก็ล่อไป 7 digital pins แล้วนะน้อง ถ้าเกิดอยากจะหล่อต่อสัก 2 ตัวนี่ต้องควักมาใช้ถึง 14 pins เลยนะเฮ้ย! แป๊บเดียว Pins ก็หมดบอร์ดแล้วเนี่ย แต่ไม่ต้องห่วง 74HC595 Shift Register คือ IC เวทมนตร์ที่จะมาแก้ปัญหานี้ให้เอ็งเอง จัดไปวัยรุ่น!

การแปลง Serial เป็น Parallel
เจ้า Shift Register นี่ทำหน้าที่เป็นตัวขยายร่าง Pins ให้เรา:
- Data Line: Arduino จะส่งข้อมูลมาเป็นชุด 8 bits (เช่น
11001100ที่เอาไว้กำหนดรูปแบบไฟ LED) ผ่านสายไฟแค่เส้นเดียว (Serial Data) - Clock Line: สายเส้นที่สองทำหน้าที่เป็นเหมือน "เมโทรนอม" คอยให้จังหวะ บอกเจ้าชิปว่า "เฮ้ย บิทต่อไปกำลังมาแล้วนะ"
- Latch Line: พอข้อมูลครบ 8 bits เข้าไปนอนรอในชิปแล้ว Arduino ก็จะส่งสัญญาณ "Latch" บอกให้ชิปปล่อยไฟออกไปที่ output ทั้ง 8 pins (Parallel) พร้อมกันทันที
ทำแบบนี้ เอ็งก็คุม output ได้ตั้ง 8 ช่อง โดยใช้ Pins บน Arduino แค่ 3 Pins เอง หล่อเท่เลยงานนี้!
อุปกรณ์ที่ต้องใช้ (ห้ามช็อตนะตัวนี้)
- Arduino Uno/Nano
- IC 74HC595 Shift Register
- 7-Segment Display (จะแบบ Common Anode หรือ Cathode ก็จัดมา)
- Current Limiting Resistors (จัดไป 8 ตัว อย่าลืมใส่ล่ะเดี๋ยว LED บึ้ม)
การต่อแบบ Daisy Chaining
ความพีคของ Shift Register คือมันเอามา "พ่วง" กันได้ว่ะน้อง ข้อมูลที่ล้นจากตัวแรกมันจะไหลไปเข้า input ของตัวที่สองเอง หมายความว่าเอ็งจะคุม 2 จอ (16 LEDs) หรือ 3 จอ (24 LEDs) เอ็งก็ยังใช้แค่ 3 Pins เท่าเดิมเป๊ะบน Arduino ของเอ็ง ท่านี้คือท่าบังคับถ้าเอ็งจะสร้าง LED Cube ใหญ่ๆ หรือพวกป้ายคะแนน (Scoreboards) เลยนะเว้ย สู้งานนะน้อง!