โปรเจกต์นี้ได้รับแรงบันดาลใจจาก Paul McWhorter โปรเจกต์นี้ใช้ microchip 74HC595 ในการควบคุม LED หลายตัวพร้อมกัน
ทำความเข้าใจเกี่ยวกับ 74HC595 Shift Register
74HC595 คือ 8-bit serial-in, parallel-out shift register เป็น component ที่มีประโยชน์อย่างมากเมื่อคุณต้องการควบคุม outputs มากกว่าจำนวน pins ที่ microcontroller ของคุณมีให้ ตัวอย่างเช่น แทนที่จะใช้ 8 digital pins แยกกันบน Arduino เพื่อควบคุม 8 LEDs คุณสามารถใช้เพียง 3 pins (Data, Clock และ Latch) เพื่อส่ง byte ไปยัง 74HC595 ซึ่งจะแปลงสิ่งนั้นให้เป็น 8 individual on/off signals
ส่วนประกอบ Hardware
- 74HC595 Integrated Circuit: นี่คือหัวใจหลักของโปรเจกต์ มันรับ serial data ทีละ bit จาก Arduino และจัดเก็บไว้จนกว่าจะได้รับคำสั่งให้ปล่อยออกมาเป็น parallel output
- Arduino UNO: ทำหน้าที่เป็น controller ส่ง serial signals ไปยัง shift register
- LEDs: ใช้เป็น output indicators เพื่อแสดงภาพกระบวนการ shifting
- Jumper Wires: จำเป็นสำหรับการเชื่อมต่อระหว่าง Arduino, breadboard และ IC
หลักการทำงานและการแปลง Serial เป็น Parallel
- Serial Data In (DS): Bits ถูกส่งจาก Arduino เข้าสู่ pin นี้
- Shift Register Clock (SH_CP): เมื่อใดก็ตามที่ pin นี้ได้รับ pulse, bits ที่อยู่ใน register จะเลื่อนไปหนึ่งตำแหน่งเพื่อสร้างพื้นที่สำหรับ bit ใหม่ที่มาจาก pin DS
- Storage Register Clock / Latch (ST_CP): pin นี้จะถูกคงค่าเป็น LOW ในขณะที่ bits กำลังถูก shift เข้ามา เมื่อ bits ทั้ง 8 (one byte) ถูกโหลดครบแล้ว คุณจะดึง pin นี้ให้เป็น HIGH เพื่อ "latch" data และแสดงผลลัพธ์บน output pins (Q0 ถึง Q7)
โดยการทำซ้ำกระบวนการนี้อย่างรวดเร็ว คุณสามารถสร้าง patterns ต่างๆ ได้ เช่น "chaser" effect ที่ดูเหมือนว่าแสงไฟดวงเดียวเคลื่อนที่ไปตามแนว
การเดินสายและการตั้งค่า
- เชื่อมต่อ VCC (Pin 16) เข้ากับ 5V และ GND (Pin 8) เข้ากับ ground
- Pin 10 (MR) ควรเชื่อมต่อกับ VCC เพื่อป้องกัน master reset
- Pin 13 (OE) ควรเชื่อมต่อกับ GND เพื่อ enable outputs
- Data pins โดยทั่วไปจะเชื่อมต่อกับ Arduino Digital pins (เช่น 4, 5 และ 6) และ output pins ทั้ง 8 (Q0-Q7) จะเชื่อมต่อกับขาที่ยาว (anodes) ของ 8 LEDs ของคุณผ่าน resistors