// --------------------------------------------------------------------------------
/*
09 以 3 個 Pin 控制 8 顆 LED
[學習重點]
1. 可以透過其他集成電路減少佔用的 Pin
[挑戰]
- 自行設計不同款式的走馬燈
- 試增加多 8 顆 LED 並改寫程式
Created by Jason on 9 Aug 2022.
*/
// --------------------------------------------------------------------------------
int latchPin = 12; // 接 74HC595 的 STCP (IC pin 12)
int clockPin = 13; // 接 74HC595 的 SHCP (IC pin 11)
int dataPin = 10; // 接 74HC595 的 DS (IC pin 14)
byte patterns[30] = {
B10000000,
B01000000,
B00100000,
B00010000,
B00001000,
B00000100,
B00000010,
B00000001,
};
void setup()
{
// 將 latchPin, clockPin, dataPin 設置為輸出
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop()
{
for (int i = 0; i < 8; i++) {
digitalWrite(latchPin, LOW); // 送資料前要先降低 latchPin 電壓
shiftOut(dataPin, clockPin, MSBFIRST, patterns[i]);
digitalWrite(latchPin, HIGH); // 送完資料後要把 latchPin 電壓升高
delay(500);
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
led6:A
led6:C
led7:A
led7:C
led8:A
led8:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
r5:1
r5:2
r6:1
r6:2
r7:1
r7:2
r8:1
r8:2
sr1:Q1
sr1:Q2
sr1:Q3
sr1:Q4
sr1:Q5
sr1:Q6
sr1:Q7
sr1:GND
sr1:Q7S
sr1:MR
sr1:SHCP
sr1:STCP
sr1:OE
sr1:DS
sr1:Q0
sr1:VCC