我正在尝试在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
答案 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()。每次你打电话,它会给你一个不同的答案。所以调用它,然后尝试打印它将不会给你刚刚使用的价值。最好先将它分配给变量,然后使用它直到循环的下一次迭代。