我的项目有两个部分有问题。我用树莓皮读取和控制一个电位计和一些发光二极管。在
1当我用电位计控制LED时,我的LED会在我的低阈值上闪烁,但不会在我的更高阈值上闪烁,我该如何解决这个问题?在
(修复)2我的电位计必须设置为0,当第一次启动脚本,另一种情况下,我得到异常读数从我的电位计,我如何修复它?在
之前我试过再加一次。我以前试过加中心线,但没有成功。我在谷歌到处寻找解决方案,但没找到。我只找到了眨眼例子的脚本。在
我通过python在我的raspberry pi上运行这个脚本来控制我的arduino。如果我把它贴在错误的地方,请让我知道它应该张贴在哪里,这样我可以移动它。在
这是我的剧本!在
from nanpy import Arduino
from nanpy import serial_manager
from time import sleep
serial_manager.connect('/dev/ttyUSB0')
POT = 0
LED1 = 13
LED2 = 12
LED3 = 11
LED4 = 10
LED5 = 9
LED6 = 8
LED7 = 7
LED8 = 6
Arduino.pinMode(POT, Arduino.INPUT)
Arduino.pinMode(13, Arduino.OUTPUT)
Arduino.pinMode(12, Arduino.OUTPUT)
Arduino.pinMode(11, Arduino.OUTPUT)
Arduino.pinMode(10, Arduino.OUTPUT)
Arduino.pinMode(9, Arduino.OUTPUT)
Arduino.pinMode(8, Arduino.OUTPUT)
Arduino.pinMode(7, Arduino.OUTPUT)
Arduino.pinMode(6, Arduino.OUTPUT)
print "starting"
while True:
pot = Arduino.analogRead(POT)
#this is the section that is blinking when it shouldn't
if pot < 450:
Arduino.digitalWrite(LED1, Arduino.HIGH)
Arduino.digitalWrite(LED2, Arduino.HIGH)
Arduino.digitalWrite(LED3, Arduino.HIGH)
Arduino.digitalWrite(LED4, Arduino.HIGH)
Arduino.digitalWrite(LED5, Arduino.LOW)
Arduino.digitalWrite(LED6, Arduino.LOW)
Arduino.digitalWrite(LED7, Arduino.LOW)
Arduino.digitalWrite(LED8, Arduino.LOW)
sleep(.5)
#
if pot < 650 > 450:
Arduino.digitalWrite(LED1, Arduino.LOW)
Arduino.digitalWrite(LED2, Arduino.LOW)
Arduino.digitalWrite(LED3, Arduino.LOW)
Arduino.digitalWrite(LED4, Arduino.LOW)
Arduino.digitalWrite(LED5, Arduino.LOW)
Arduino.digitalWrite(LED6, Arduino.LOW)
Arduino.digitalWrite(LED7, Arduino.LOW)
Arduino.digitalWrite(LED8, Arduino.LOW)
sleep(.1)
if pot > 650:
Arduino.digitalWrite(LED1, Arduino.LOW)
Arduino.digitalWrite(LED2, Arduino.LOW)
Arduino.digitalWrite(LED3, Arduino.LOW)
Arduino.digitalWrite(LED4, Arduino.LOW)
Arduino.digitalWrite(LED5, Arduino.HIGH)
Arduino.digitalWrite(LED6, Arduino.HIGH)
Arduino.digitalWrite(LED7, Arduino.HIGH)
Arduino.digitalWrite(LED8, Arduino.HIGH)
sleep(.5)
# print pot
我在初始化时发现了一个问题,在这一行:
然后,在while中,这里使用
^{pr2}$POT
作为管脚号,但是POT
将在上面的行中作为变量初始化:我想这就是为什么你会有出人意料的行为。我认为,如果您将
POT
的初始化更改为POT=0
或pot所连接的pin号码(如果不是pin0),它可能会起作用。在我想出来了。没有预料到闪烁问题。然而,它的行为就像是LED被设置为关闭延迟大约0.5秒。 这是我的新剧本。在
相关问题 更多 >
编程相关推荐