设备:树莓派3 B
系统:raspbian
LED 一只 (发光二极管?)
LED接线: 正极(长腿)接37(gpio26) 负极接4(5V)
使用如下方式可以点亮熄灭LED
#!/bin/bash
#利用echo输出一些提示语句
echo export pin $1
echo $1 > /sys/class/gpio/export
echo setting direction to output
echo out > /sys/class/gpio/gpio$1/direction
echo setting pi high
echo 1 > /sys/class/gpio/gpio$1/value
当然手动一行一行写也是没有问题的
代码来自http://blog.csdn.net/xukai871105/article/details/18517729
下面这段代码会正常执行并进入死循环,但是LED没有丝毫反应
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(26, GPIO.OUT)
while True:
GPIO.output(26, True)
time.sleep(1)
GPIO.output(26, False)
time.sleep(1)
然后网上有人这么说
你这里用的GPIO.BOARD代表的是板子上的序号,然后我就把代码中所有的26改成了序号,也就是37 可是会出现下面这个错误
Traceback (most recent call last):
File "led.py", line 7, in <module>
GPIO.setup(37, GPIO.OUT)
RPi.GPIO.InvalidChannelException: The channel sent is invalid on a Raspberry Pi
我应该怎么用Python控制GPIO ? 还有就是有没有合适新手看的教程推荐一下?
我个人条件:
1.了解Linux基本操作,基础的系统管理
2.了解C语言和Python的语法
所以也不算0基础
用 Wiring Pi 的來歪個樓,
os.system("echo %d > /sys/class/gpio/export" % 26)
,以此類推:-)嚴肅的答案:
既然 sysfs 可以正常操作 GPIO,不妨用這個操作 sysfs 的函式庫。
https://github.com/derekstavis/python-sysfs-gpio