《边学边用树莓派-6》树莓派通过Python控制 GPIO
Python的教程可以参考《简明Python教程》在树莓派系统里面已经安装了两个版本的Python,Python 3不完全向下兼容 Python 2。当前咱们用Python 2即可。可以通过命令行测试:
root@raspberrypi:/home/pi# python
Python 2.7.3 (default, Jan 13 2013, 11:20:46)
on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 2+3
5
>>>
检测 是否有安装好GPIO模块,如果没有出错提示,说明有安装
>>> import RPi.GPIO as GPIO
如果没有安装模块先按Ctrl+d 退出Python命令行,通过如下命令安装:
root@raspberrypi:/home/pi# apt-get update
root@raspberrypi:/home/pi# apt-get install python-rpi.gpio安装完后从新导入GPIO模块测试一下
此时我们可以先通过Python命令行的形式来测试下GPIO,这也是Python比较方便的地方
>>> import RPi.GPIO as GPIO
>>> GPIO.setmode(GPIO.BCM)
>>> GPIO.setup(25,GPIO.OUT)
>>> GPIO.output(25,GPIO.HIGH)
>>> GPIO.output(25,GPIO.LOW)
接下来我们编写一个LED灯闪烁的代码,并保存为blink.py 在这里 使用 SSH方式登录树莓派 然后使用nano来新建并保存文件实际上是速度最快最好操作的
#!usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(25,GPIO.OUT)
while True:
GPIO.output(25,GPIO.HIGH)
time.sleep(1)
GPIO.output(25,GPIO.LOW)
time.sleep(1)GPIO.setmode(GPIO.BCM) 是设置GPIO命名模式,我们使用芯片厂Broadcom编码方式
time.sleep(1) 是使用time模块的sleep函数 暂停 1秒
通过命令执行blink.py
root@raspberrypi:/home/pi# python blink.py看看连接在GPIO25口上的LED是否在闪烁
按 Ctrl+c 推出程序
下面我们来测试 GPIO的输入功能,我们在GPIO24上接一个按钮,然后新建一个button.py 的文件编写以下代码:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(24,GPIO.IN)
count = 0
while True:
inputValue = GPIO.input(24)
if(inputValue == True): #读取GPIO24状态
time.sleep(0.02) #延迟20ms 重新读取GPIO24状态
inputValue = GPIO.input(24)
if(inputValue == True): #如果两次都是高电平,说明有按钮按下,滤除干扰信号
while True:
inputValue = GPIO.input(24)
if(inputValue == False): # 等待按钮释放才退出检测第二此按下动作
count = count + 1
print"Button pressed " + str(count) + " time."
break
time.sleep(.01) #在 while 死循环里面休眠,这样CPU其他任务才能执行
time.sleep(.01)
执行这个代码
root@raspberrypi:/home/pi# python button.py
Button pressed 1 time.
Button pressed 2 time.
Button pressed 3 time.
Button pressed 4 time. print"Button pressed " + str(count) + " time."这句报错 spoon 发表于 2022-12-9 20:51
print"Button pressed " + str(count) + " time."这句报错
可能是Python版本问题,加括号
print("Button pressed " + str(count) + " time.") 厉害厉害 赞赞赞赞赞 厉害厉害 不错不错
页:
[1]