Raspberry Pi闪烁LED灯错误

时间:2013-12-27 20:17:17

标签: python raspberry-pi gpio

我刚吃了一片覆盆子,一直很享受。我正在尝试开始使用一些简单的教程并遇到问题。教程是这样的:

http://www.rpiblog.com/2012/09/using-gpio-of-raspberry-pi-to-blink-led.html。但是,当我尝试运行代码时,我得到了错误

  

Traceback(最近一次调用最后一次):文件   “/home/pi/Desktop/BlinkgLed.py”,第13行,in        GPIO.setup(11,GPIO.OUT)RuntimeError:无法访问/ dev / mem。尝试以root身份运行!

我正在运行的代码是

 import RPi.GPIO as GPIO
 import time
 # blinking function
 def blink(pin):
         GPIO.output(pin,GPIO.HIGH)
         time.sleep(1)
         GPIO.output(pin,GPIO.LOW)
         time.sleep(1)
         return
 # to use Raspberry Pi board pin numbers
 GPIO.setmode(GPIO.BOARD)
 # set up GPIO output channel
 GPIO.setup(11, GPIO.OUT)
 # blink GPIO17 50 times
 for i in range(0,50):
         blink(11)
 GPIO.cleanup()

我试过这个

sudo python
 import RPi.GPIO as GPIO
 import time
 # blinking function
 def blink(pin):
         GPIO.output(pin,GPIO.HIGH)
         time.sleep(1)
         GPIO.output(pin,GPIO.LOW)
         time.sleep(1)
         return
     # to use Raspberry Pi board pin numbers
     GPIO.setmode(GPIO.BOARD)
     # set up GPIO output channel
     GPIO.setup(11, GPIO.OUT)
     # blink GPIO17 50 times
     for i in range(0,50):
             blink(11)
     GPIO.cleanup()

现在我收到了错误

 Invalid Syntax

我也试过这个

 sudo idle3

我得到了这个

  

客户端无权连接到ServerTraceback(最新版本   最后调用):文件“/ usr / bin / idle3”,第5行,in        main()文件“/usr/lib/python3.2/idlelib/PyShell.py”,第1405行,主要        root = Tk(className =“Idle”)文件“/usr/lib/python3.2/tkinter/init.py”,第1701行, init        self.tk = _tkinter.create(screenName,baseName,className,interactive,wantobjects,useTk,sync,use)_tkinter.TclError:   无法连接显示“:1.0”

关于如何解决这些问题的任何想法?

BTW我通过本教程安装了GPIO:

https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/

并且能够通过代码打开和关闭led的tp。所以我认为不是问题所在。

3 个答案:

答案 0 :(得分:1)

如果您的python代码位于test.py中名为/home/user的文件中,请尝试运行:

$ sudo python /home/user/test.py

(根据您的环境进行调整)。

答案 1 :(得分:0)

您需要打开终端窗口并输入...

sudo idle [Then press return]

之后,您可以返回Python窗口并编写所需的代码。

希望有所帮助。

答案 2 :(得分:0)

以下bash脚本是关于通过使用三个输入变量分别表示小时,分钟和秒的量来根据用户定义的时间闪烁GPIO2。

#!/bin/bash
cd /sys/class/gpio
echo 2 > export
cd gpio2
echo out > direction
echo 0 > value
echo -n "enter hour :   "
read hour
echo -n "enter minute :   "
read min
echo 1 > value
for ((i=0;i<$min;i++))
do
sleep 1m
done
for  ((i=0;i<$hour;i++))
do
sleep 1h
done
cd /sys/class/gpio
cd gpio2
echo 0 > value