色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 驅動數碼管

阮建安2年前10瀏覽0評論

數碼管是電子電路中的一種常見元件,它可以用來顯示數字或字母等信息。Python語言具備編寫控制數碼管的能力,可以用GPIO或I2C等接口來驅動數碼管的工作。

# 導入必要的庫
import RPi.GPIO as GPIO
import time
# 定義GPIO引腳對應數碼管的數位及片選引腳
digit_pins = [11, 12, 13, 15]
select_pins = [16, 18, 22, 24]
# 定義數碼管數字排列
digits = {
0:(1,1,1,1,1,1,0),
1:(0,1,1,0,0,0,0),
2:(1,1,0,1,1,0,1),
3:(1,1,1,1,0,0,1),
4:(0,1,1,0,0,1,1),
5:(1,0,1,1,0,1,1),
6:(1,0,1,1,1,1,1),
7:(1,1,1,0,0,0,0),
8:(1,1,1,1,1,1,1),
9:(1,1,1,1,0,1,1)}
# 初始化GPIO引腳狀態和相關參數
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
for pin in digit_pins:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, 0)
for pin in select_pins:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, 1)
# 定義函數用來在數碼管上顯示數字
def show_number(number):
for index, digit_pin in enumerate(digit_pins):
segments = digits[number%10]
for segment_index, segment_value in enumerate(segments):
GPIO.output(segment_index+1, segment_value)
GPIO.output(digit_pin, 1)
time.sleep(0.001)
GPIO.output(digit_pin, 0)
number = number//10
# 主程序入口
if __name__ == '__main__':
try:
while True:
for i in range(10):
for select_index, select_pin in enumerate(select_pins):
GPIO.output(select_pin, 0)
show_number(i)
GPIO.output(select_pin, 1)
except KeyboardInterrupt:
GPIO.cleanup()

上述代碼可以控制數碼管顯示數字0-9,每0.001秒更新一次數碼管的顯示內容。通過while循環和逐個更新每個數位的顯示內容,可以實現數碼管的滾動或閃爍效果。