2017年2月28日 星期二

樹莓派3 Raspberry Pi 3 - 使用 74HC595 Shift Registor 及 3 個 GPIO 控制 8 顆 LED




















74HC595 接腳位的圖片說明:






















Source: pimoroni.com




腳位編號名稱說明
1-7, 15Q0 ~ Q7輸出腳位
8GND接地
9Q7’序列輸出 (Serial Out)
10MRMaster Reset, 清除所有資料, 低電位有效
11SH_CPSHift register clock pin (Clock Pin)
12ST_CPSTorage register clock pin (Latch Pin)
13OEOutput Enable, 允許輸出,低電位有效 (Active low)
14DS序列資料輸入 (Serial data input)
16Vcc供應電壓



電子零件:
  • 麵包板 x 1
  • GPIO Board x 1
  • 74HC595 x 1
  • LED x 8
  • 220Ω 電阻 x 8
  • 公對公杜邦線數條

接駁圖:



Python 程式碼:


#!/usr/bin/python

import RPi.GPIO as gpio

import time



DS = 5     # Serial Data

SHCP = 27  # Clock

STCP = 17  # Latch



gpio.setmode(gpio.BCM)

gpio.setup(DS, gpio.OUT)

gpio.setup(SHCP, gpio.OUT)

gpio.setup(STCP, gpio.OUT)

def shiftout(byte):
    gpio.output(STCP, 0)
    b = ''
    for x in range(8):
        bit = ((byte >> x) & 1)
        b = b + str(bit)
        gpio.output(DS, bit)
        gpio.output(SHCP, 1)
        gpio.output(SHCP, 0)
        
    print(b[::-1])
    gpio.output(STCP, 1)

for x in range(256):
    shiftout(x)
    time.sleep(0.15)

time.sleep(3)
gpio.cleanup()


實驗短片:





沒有留言:

張貼留言