为什么我的4个LED不会在python中使用此代码打开

时间:2015-07-24 06:03:01

标签: python linux raspberry-pi

我正在尝试在Raspberry Pi上以随机顺序打开4个不同的LED,因此我使用<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="00" android:textSize="70sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="/" android:textSize="70sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0" android:textSize="70sp"/> </LinearLayout> </LinearLayout> if以及随机生成的数字。我已经在Python上工作了几天,可能只是犯了一个愚蠢的错误,但请帮助我。我的代码如下:

elif

1 个答案:

答案 0 :(得分:0)

第一个问题是,LED实际上是照明吗?意思是关于让LED工作,或者确定它们点亮方式的问题?

你似乎试图让一个LED一次点亮,但实际的逻辑会产生完全不同的效果。

尝试使用以下脚本,遗憾的是我没有Raspberry-Pi来测试它,但它应该可以工作。

#! /usr/bin/python
#
import random
import time
from time import sleep
import RPi.GPIO as GPIO

GPIO.setwarnings(False)
GPIO.setmode( GPIO.BOARD) #using pin numbers
GPIO.setup( 3, GPIO.OUT) # set GPIO3 as output
GPIO.setup( 13, GPIO.OUT) #set GPIO13 as output
GPIO.setup( 10, GPIO.OUT) #set GPIO10 as output
GPIO.setup( 5, GPIO.OUT) #set GPIO5 as output

# Keep going forever
while True:
    # Pick a number 0,1,2 or 3
    led_number = random.randint(0,3)
    print("%d is lit" % (led_number + 1))

    # Turn this one LED on and all of the others off
    for index, led in enumerate([3, 13, 10, 5]):
        GPIO.output(led, True if led_number == index else False)

    sleep(1)

#!

注意,在原始脚本中,您多次调用random.random()。每次你打电话,它会给你一个不同的答案。所以调用它,然后尝试打印它将不会给你刚刚使用的价值。最好先将它分配给变量,然后使用它直到循环的下一次迭代。