树莓派GPIO设置和使用输出
学习目标:
如何使用树莓派的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设置和使用输出相关推荐
- android客户端控制树莓派GPIO点亮LED灯
首先需要android客户端与树莓派进行连接,树莓派与android客户端利用wifi连接并进行socket通信请参考我的另一片文章:https://mp.csdn.net/postedit/7991 ...
- python控制树莓派led_Python 控制树莓派 GPIO 输出:控制 LED 灯
树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧. 树莓派版本:Model 3B+ 树莓派系统:Raspbian Stretch with desktop and recommend ...
- python控制灯_Python 控制树莓派 GPIO 输出:控制 LED 灯
树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧. 树莓派版本:Model 3B+ 树莓派系统:Raspbian Stretch with desktop and recommend ...
- python控制树莓派gpioled,Python 控制树莓派 GPIO 输出:控制 LED 灯
树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧. 树莓派版本:Model 3B+ 树莓派系统:Raspbian Stretch with desktop and recommend ...
- 树莓派GPIO驱动原理
1.前言 最近认真学习了树莓派,从浅到深认真分析了wiringPi实现代码,借助树莓派学习linux收获颇丰.深入学习linux一段时间后发现它非常有魅力,一个简单的IO口输出操作尽有那么多的&quo ...
- 树莓派GPIO口的使用(外设相关开发WringPi库的使用,超声波、继电器)
树莓派的接口: 大而简单的类别:IO口,input和output是相对于主控芯片来说的,是根据MCU和外设之间的关系将IO口的功能分为output和input.当IO作为input使用时外设有:人体传 ...
- 树莓派GPIO控制/使用的教程
树莓派GPIO控制/使用的教程 介绍 使用说明 (一)导入库 (二)设置编码规范 (三)引脚设置 (四)电平控制 (五)读取引脚的输入状态 (六)释放GPIO资源 (七)示例代码 (八)PWM设置 一 ...
- 树莓派GPIO和PWM控制教程
树莓派GPIO和PWM 1. 目的 在汽车电子开发中,CAN通讯是很难避开的一个技术点,当前CAN已经形成了行业内较为稳定的开发及相关测试验证方法,其中一种较为主流的就是使用CANoe和开发相应的CA ...
- 树莓派GPIO入门(一):点亮一个LED灯
一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...
最新文章
- 超nb的网页标签弹窗js代码!
- 领域驱动设计(DDD)架构演进和DDD的几种典型架构介绍(图文详解)
- [CentOS7]redis设置开机启动,设置密码
- APP抓链接工具(Fiddler版)
- 如何获取NumPy数组中N个最大值的索引?
- 一语点破 Java 中的静态 static 关键字
- MySQL笔记5:如何创建和删除索引?
- 一个可供参考的Java高并发异步应用案例--转
- js --- 递归结构图
- linux NR==变量,LINUX中详解AWK内建变量FS,NF,NR,RT,RS,ORS,OFS
- CSDN博主排名更新公告
- EL表达式和JSTL标准标签库
- vm8中装了redhat9 在安装vmwaretools的时候老是出现gcc位置错误
- Redis面试 - 生产环境中的 redis 是怎么部署的?
- 一个关于超级英雄题材电影剧本的脑洞
- jQuery Mobile 所有data-*选项,开发全解+完美注释
- 【技术帖】Apache Kylin 高级设置:层级维度(Hierarchy Dimension)原理
- 源代码分析工具推荐Understand
- 昼夜双色导航主题模板 WordPress导航模板
- 推荐的Python电子书资源
热门文章
- redmine备份_Bitnami Redmine备份方法
- php设置ip防火墙iis,IIS防火墙使用教程
- Python爬虫笔记之用BeautifulSoup及requests库爬取
- C语言的EDS与RSA算法,数字签名原理eds算法是什么_生辰八字是什么算法
- win10 无限闪屏闪桌面
- @configuration注解_SpringBoot的@Configuration扫盲
- 计算机毕业设计 SSM+MySQL毕业设计 疫情期间医院门诊管理系统
- php 查找数组指定元素,PHP查找与搜索数组元素方法总结
- 【2021最新版】Memcached面试题总结(24道题含答案解析)
- 公众号电商小程序运营方案