187
Chapter 17 74HC595 & LEDBar Graph
49
50
51
52
53
54
(
'Program is starting...'
)
setup
()
t r y
:
loop
( )
e x cept
KeyboardInterrupt
:
destroy
()
In the code, we define a shiftOut() function, which is used to output value with bit in order. And where the
dPin for the data pin, cPin for the clock and order for the priority bit flag (high or low). This function conforms
to the operation mode of 74HC595. LSBFIRST and MSBFIRST are two different flow directions.
d e f
shiftOut
(
dPin
,
cPin
,
order
,
val
):
f o r
i
i n
range
(
0
,
8
):
GPIO
.
output
(
cPin
,
GPIO
.
LOW
);
i f
(
order
= =
LSBFIRST
):
GPIO
.
output
(
dPin
,(
0x01
&(
val
>>
i
)==
0x01
)
a n d
GPIO
.
HIGH
o r
GPIO
.
LOW
)
e l if
(
order
= =
MSBFIRST
):
GPIO
.
output
(
dPin
,(
0x80
&(
val
<<
i
)==
0x80
)
a n d
GPIO
.
HIGH
o r
GPIO
.
LOW
)
GPIO
.
output
(
cPin
,
GPIO
.
HIGH
);
In the loop() function, we use two “for” cycle to achieve the target. First, define a variable x=0x01, binary
00000001. When it is transferred to the output port of 74HC595, the low bit outputs high level, then a LED is
turned on. Next, x is shifted one bit, when x is transferred to the output port of 74HC595 once again, the LED
turned on will be shifted. Repeat the operation, the effect of flowing water light will be formed. If the direction
of the shift operation for x is different, the flowing direction is different.
d e f
loop
( ):
w h ile
T r ue
:
x
=
0x01
f o r
i
i n
range
(
0
,
8
):
GPIO
.
output
(
latchPin
,
GPIO
.
LOW
)
#Output low level to latchPin
shiftOut
(
dataPin
,
clockPin
,
LSBFIRST
,
x
)
#Send serial data to 74HC595
GPIO
.
output
(
latchPin
,
GPIO
.
HIGH
)
#Output high level to latchPin, and 74HC595
will update the data to the parallel output port.
x
< < =
1
# make the variable move one bit to left once, then the bright LED move
one step to the left once.
time
.
sleep
(
0.1
)
x
=
0x80
f o r
i
i n
range
(
0
,
8
):
GPIO
.
output
(
latchPin
,
GPIO
.
LOW
)
shiftOut
(
dataPin
,
clockPin
,
LSBFIRST
,
x
)
GPIO
.
output
(
latchPin
,
GPIO
.
HIGH
)
x
> > =
1
time
.
sleep
(
0.1
)
Summary of Contents for Ultimate Starter Kit
Page 1: ...Free your innovation Freenove is an open source electronics platform www freenove com ...
Page 117: ...117 Chapter 9 Potentiometer RGBLED www freenove com support freenove com Hardware connection ...
Page 155: ...155 Chapter 14 Relay Motor www freenove com support freenove com Hardware connection OFF 3 3V ...
Page 173: ...173 Chapter 16 Stepping Motor www freenove com support freenove com Hardware connection ...
Page 239: ...239 Chapter 22 Matrix Keypad www freenove com support freenove com Circuit Schematic diagram ...
Page 240: ...Chapter 22 Matrix Keypad 240 www freenove com support freenove com Hardware connection ...