-
Notifications
You must be signed in to change notification settings - Fork 0
/
code.ino
45 lines (40 loc) · 861 Bytes
/
code.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
int datapin = 2;
int clkpin = 3;
int latchpin = 4;
byte data = 0;
void setup()
{
pinMode(datapin, OUTPUT);
pinMode(clkpin, OUTPUT);
pinMode(latchpin, OUTPUT);
}
void loop()
{
int idx;
int delayTime = 100;
// step through shift register outputs
for(idx = 0; idx <= 7; idx++)
{
shiftWrite(idx, HIGH);
delay(delayTime);
shiftWrite(idx, LOW);
}
// Reverse steps
for(idx = 7; idx >= 0; idx--)
{
shiftWrite(idx, HIGH);
delay(delayTime);
shiftWrite(idx, LOW);
}
}
void shiftWrite(int Pin, boolean State)
{
// Data representation 0b00000000
// 76543210
bitWrite(data, Pin, State);
// Write data to shift register
shiftOut(datapin, clkpin, MSBFIRST, data);
// Latch shift register to output on Falling-edge
digitalWrite(latchpin, HIGH);
digitalWrite(latchpin, LOW);
}