bobo 发表于 2014-6-22 21:21:09

《边学边用树莓派-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.

spoon 发表于 2022-12-9 20:51:32

print"Button pressed " + str(count) + " time."这句报错

BoBo 发表于 2022-12-23 14:41:59

spoon 发表于 2022-12-9 20:51
print"Button pressed " + str(count) + " time."这句报错

可能是Python版本问题,加括号
print("Button pressed " + str(count) + " time.")

花生编程 发表于 2023-8-20 11:12:31

厉害厉害

花生编程 发表于 2023-8-20 11:15:04

赞赞赞赞赞

三春牛-创客 发表于 2023-8-27 10:28:39

厉害厉害

三春牛-创客 发表于 2023-8-27 10:29:40

不错不错
页: [1]
查看完整版本: 《边学边用树莓派-6》树莓派通过Python控制 GPIO