如何在 LED 上显示二进制数 (Raspberry Pi GPIO) Python



我有一些LED连接到Pi的GPIO引脚,我想在LED上显示一个8位二进制数。因此,如果数字是 11110000,那么我希望前四个 LED 亮起,后四个 LED 熄灭。

我将十进制数转换为二进制,我希望能够使用简单的LED显示此二进制数。

您可以从将二进制数转换为可用的值列表开始,以决定 8 个 LED 中的哪一个保持打开状态。

state = 0b11110000
expanded = []
for x in range(8):
    val = state & 0x01
    state = state >> 1
    expanded.append(val)
expanded = list(reversed(expanded))
print(expanded)    # [1, 1, 1, 1, 0, 0, 0, 0]

使用expanded您可以决定哪些 LED 应保持亮起状态。

我想通了,但这种方法可能有点复杂。 所以我的号码表示为 0b1000101

temp = 0b1000101
binF = temp[2:].zfill(7) #prints 1000101
binF1 = temp[3:].zfill(6) #prints 000101
binF2 = temp[4:].zfill(5) #prints 00101
binF3 = temp[5:].zfill(4) #prints 0101
binF4 = temp[6:].zfill(3) #prints 101
binF5 = temp[7:].zfill(2) #prints 01
binF6 = temp[8:].zfill(1) #prints 1
#Now we want the most significant bit
binFA = binF[1:].zfill(1) #prints 1
binF1A = binF1[1:].zfill(1) #prints 0
binF2A = binF2[1:].zfill(1) #prints 0
binF3A = binF3[1:].zfill(1) #prints 0
binF4A = binF4[1:].zfill(1) #prints 1
binF5A = binF5[1:].zfill(1) #prints 0
binF6A = binF6[1:].zfill(1) #prints 1

从这里我们可以将值分配给某些 GPIO 引脚

if binFA == '1':
    GPIO.output(21, 1)
else:
    GPIO.output(21, 0)

根据需要设置所有 GPIO 引脚,以确定有多少位

最新更新