学习目标:

如何使用树莓派的GPIO打开和关闭来控制树莓派的输出端口


学习内容:

1、简单的格式

1.1 设置输入内容的方式

GPIO.setup(port_or_pin,GPIO.IN)

GPIO.setup(port_or_pin,GPIO.OUT)

1.2 然后把端口/引脚切换到3.3V(等于1/GPIO)

GPIO.output(port_or_pin,1)

或者,将端口/引脚切换到0V(等于0/GPIO)

GPIO.output(port_or_pin,0)

2、如何设置输出——完整的Python代码

import RPI.GPIO as GPIO  #导入RPI.GPIO模块
GPIO.setmode(GPIO.BCM) #选择BCM板
GPIO.setup(port_or_pin,GPIO.OUT)  #设置端口/引脚作为输出
GPIO.output(port_or_pin,1)        #设置端口/引脚值为1
GPIO.output(port_or_pin.0)        #设置端口/引脚值为0

还可以设置端口时对端口初始化,并附加可选参数值 initial=x (x为1或0)

GPIO.setup(port_or_pin,GPIO.OUT,initial=1)

GPIO.setup(port_or_pin,GPIO.OUT,initial=0)

举例:BCM板的GPIO24设置为一个输出,并半秒打开和关闭一次,直到我们退出CTRL+C,

import RPi.GPIO as GPIO            # import RPi.GPIO module 导入RPI.GPIO模块
from time import sleep             # lets us have a delay  设置延迟
GPIO.setmode(GPIO.BCM)             # choose BCM or BOARD  选择板
GPIO.setup(24, GPIO.OUT)           # set GPIO24 as an output   try:  while True:  GPIO.output(24, 1)         # set GPIO24 to 1/GPIO.HIGH/True  sleep(0.5)                 # wait half a second  GPIO.output(24, 0)         # set GPIO24 to 0/GPIO.LOW/False  sleep(0.5)                 # wait half a second  except KeyboardInterrupt:          # trap a CTRL+C keyboard interrupt 发生中断 GPIO.cleanup()                 # resets all GPIO ports used by this program  重置次程序使用的所有GPIO端口

3、读取输出引脚的状态

读取引脚是1还是0

GPIO.input(24)

import RPI.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(24,GPIO.OUT) try:while True:GPIO.output(24,1)sleep(0.5)if GPIO.input(24) : #如果24引脚输出为1print("high")GPIO.output(24,0)sleep(0.5)if not GPIO.input(24):print("low")
except KeyboardInterrupt: #ctrl+C就发生中断GPIO.cleanup()        #重置所有的引脚

其他例子:建议使用我们的 SD 卡或图像之一,如果您不是,您将需要安装RPi.GPIO 库。

sudo python
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(17,GPIO.IN)
input = GPIO.input(17)
while True:if (GPIO.input(17)):print("Button Pressed")
import time
#initialise a previous input variable to 0 (assume button not pressed last)
prev_input = 0
while True:#take a readinginput = GPIO.input(17)#if the last reading was low and this one high, printif ((not prev_input) and input):print("Button pressed")#update previous inputprev_input = input#slight pause to debouncetime.sleep(0.05
import RPi.GPIO as GPIO
import time
import os#adjust for where your switch is connected
buttonPin = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(buttonPin,GPIO.IN)while True:#assuming the script to call is long enough we can ignore bouncingif (GPIO.input(buttonPin)):#this is the script that will be called (as root)os.system("python /home/pi/start.py")

sudo python run.py

sudo nano /etc/rc.local

exit 0

python /home/pi/run.py

树莓派GPIO设置和使用输出相关推荐

  1. android客户端控制树莓派GPIO点亮LED灯

    首先需要android客户端与树莓派进行连接,树莓派与android客户端利用wifi连接并进行socket通信请参考我的另一片文章:https://mp.csdn.net/postedit/7991 ...

  2. python控制树莓派led_Python 控制树莓派 GPIO 输出:控制 LED 灯

    树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧. 树莓派版本:Model 3B+ 树莓派系统:Raspbian Stretch with desktop and recommend ...

  3. python控制灯_Python 控制树莓派 GPIO 输出:控制 LED 灯

    树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧. 树莓派版本:Model 3B+ 树莓派系统:Raspbian Stretch with desktop and recommend ...

  4. python控制树莓派gpioled,Python 控制树莓派 GPIO 输出:控制 LED 灯

    树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧. 树莓派版本:Model 3B+ 树莓派系统:Raspbian Stretch with desktop and recommend ...

  5. 树莓派GPIO驱动原理

    1.前言 最近认真学习了树莓派,从浅到深认真分析了wiringPi实现代码,借助树莓派学习linux收获颇丰.深入学习linux一段时间后发现它非常有魅力,一个简单的IO口输出操作尽有那么多的&quo ...

  6. 树莓派GPIO口的使用(外设相关开发WringPi库的使用,超声波、继电器)

    树莓派的接口: 大而简单的类别:IO口,input和output是相对于主控芯片来说的,是根据MCU和外设之间的关系将IO口的功能分为output和input.当IO作为input使用时外设有:人体传 ...

  7. 树莓派GPIO控制/使用的教程

    树莓派GPIO控制/使用的教程 介绍 使用说明 (一)导入库 (二)设置编码规范 (三)引脚设置 (四)电平控制 (五)读取引脚的输入状态 (六)释放GPIO资源 (七)示例代码 (八)PWM设置 一 ...

  8. 树莓派GPIO和PWM控制教程

    树莓派GPIO和PWM 1. 目的 在汽车电子开发中,CAN通讯是很难避开的一个技术点,当前CAN已经形成了行业内较为稳定的开发及相关测试验证方法,其中一种较为主流的就是使用CANoe和开发相应的CA ...

  9. 树莓派GPIO入门(一):点亮一个LED灯

    一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...

最新文章

  1. 超nb的网页标签弹窗js代码!
  2. 领域驱动设计(DDD)架构演进和DDD的几种典型架构介绍(图文详解)
  3. [CentOS7]redis设置开机启动,设置密码
  4. APP抓链接工具(Fiddler版)
  5. 如何获取NumPy数组中N个最大值的索引?
  6. 一语点破 Java 中的静态 static 关键字
  7. MySQL笔记5:如何创建和删除索引?
  8. 一个可供参考的Java高并发异步应用案例--转
  9. js --- 递归结构图
  10. linux NR==变量,LINUX中详解AWK内建变量FS,NF,NR,RT,RS,ORS,OFS
  11. CSDN博主排名更新公告
  12. EL表达式和JSTL标准标签库
  13. vm8中装了redhat9 在安装vmwaretools的时候老是出现gcc位置错误
  14. Redis面试 - 生产环境中的 redis 是怎么部署的?
  15. 一个关于超级英雄题材电影剧本的脑洞
  16. jQuery Mobile 所有data-*选项,开发全解+完美注释
  17. 【技术帖】Apache Kylin 高级设置:层级维度(Hierarchy Dimension)原理
  18. 源代码分析工具推荐Understand
  19. 昼夜双色导航主题模板 WordPress导航模板
  20. 推荐的Python电子书资源

热门文章

  1. redmine备份_Bitnami Redmine备份方法
  2. php设置ip防火墙iis,IIS防火墙使用教程
  3. Python爬虫笔记之用BeautifulSoup及requests库爬取
  4. C语言的EDS与RSA算法,数字签名原理eds算法是什么_生辰八字是什么算法
  5. win10 无限闪屏闪桌面
  6. @configuration注解_SpringBoot的@Configuration扫盲
  7. 计算机毕业设计 SSM+MySQL毕业设计 疫情期间医院门诊管理系统
  8. php 查找数组指定元素,PHP查找与搜索数组元素方法总结
  9. 【2021最新版】Memcached面试题总结(24道题含答案解析)
  10. 公众号电商小程序运营方案