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

树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧。

树莓派版本:Model 3B+

树莓派系统:Raspbian Stretch with desktop and recommended software,April 2019

连接装置

准备一个 LED 灯,两个两头都为母的杜邦线。对照下图连接树莓派和 LED 灯,要求一个是地线(GND)连接灯的负极,一个有 GPIO + BCM 编号连接正极。我选择了 pin 号为 6 和 12 的两个引脚。你也可以选择别的,记得将之后的代码中 BCM 编号修改正确

1385863-20190530105709363-214627156.png

在断电状态下连接。连接好的如下图,我的 LED 灯有正负极的提示,图中所示红色箭头指向的是正极,蓝色箭头是负极。如果你的 LED 灯是最简单的那种,长引脚就是正极,短的负极。

1385863-20190530110320003-523689149.jpg

树莓派开机。

安装 RPI.GPIO

我装的树莓派系统已经满足所需要的环境,不需要额外下载。

你可以测试是否已经有该模块,在终端打开 Python3,然后尝试导入库: import RPi.GPIO as GPIO 。如果没有出现error,就表示已经有了,可以直接跳到下一步。

如果出现错误,则执行以下命令:

sudo apt-get updatesudo apt-get install python3-rpi.gpio

测试 GPIO

按下图所示依次输入命令,观察。

1385863-20190530122647304-831160365.png

GPIO.setmode() 有两种参数可以选择:可以使用 GPIO.BOARD 选项告诉库根据 GPIO 接口的引脚号引用信号,或者使用 Broadcom 芯片的信号编号( GPIO.setmode(GPIO.BCM) )。

在选择了模式之后,需要确定在程序中使用哪一个 GPIO 信号以及将家门用来作为输入还是输出:GPIO.setup(channel, direction)。我给的例子里是 GPIO.setup(18, GPIO.OUT) 。

后面两个命令控制灯的开关: GPIO.output(18, GPIO.HIGH) 和 GPIO.output(18, GPIO.LOW) 。

GPIO.cleanup() 用于重置 GPIO 接口,它把所有的 GPIO 引脚设置为低电平状态,所以没有多余的信号出现在界面上。在不使用改函数的情况下,如果试图配置一个已分配信号值的 GPIO 信号引脚,那么 RPi.GPIO 模块会产生一条警告信息。

闪烁 LED

然后我在树莓派上编写了下面这个代码让 LED 灯闪烁五次,保存在 Desktop,命名为 led.py。

#!/usr/bin/python3

importRPi.GPIO as GPIOimporttime

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT)

GPIO.output(18, GPIO.LOW)

blinks=0print('开始闪烁')while (blinks < 5):

GPIO.output(18, GPIO.HIGH)

time.sleep(1.0)

GPIO.output(18, GPIO.LOW)

time.sleep(1.0)

blinks= blinks + 1GPIO.output(18, GPIO.LOW)

GPIO.cleanup()print('结束闪烁')

演示结果:

1385863-20190530124327302-296142046.gif

1385863-20190530124349034-1440188892.gif

也可以以通过PWM 信号来达到让灯闪烁的效果。

#!/usr/bin/python3

importRPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT)

blink= GPIO.PWM(18, 1)try:

blink.start(50)whileTrue:pass

exceptKeyboardInterrupt:

blink.stop()

GPIO.cleanup()

start() 方法指定了占空比(从 1 到 100)。在开始 PWM 信号后,程序就可以解放出来做其他事情了。GPIO 18 会持续发送 PWM 信号,直到停止它。 blink = GPIO.PWM(18, 1) 指定了 PWM 信号以 1HZ 的频率发送,灯 1 秒闪烁一次。按 Control + C 中止闪烁。

参考资料

《树莓派Python编程 入门与实战(第2版)》,人民邮电出版社

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

报错型sql注入原理分析

0x00&#xff1a;前言关于sql注入&#xff0c;经久不衰&#xff0c;现在的网站一般对sql注入的防护也相对加强了&#xff0c;2016年的***测试报告中&#xff0c;出现最多的是xss&#xff08;跨站脚本***&#xff09;和明文传输等&#xff0c;但是对sql注入的利用方式&#xff0…

matlab矩阵 0,matlab zeros初始化为0矩阵

zeros为创建一个值为零的数组&#xff1b;如matrix1zeros(4,5);%4*5的矩阵&#xff0c;矩阵中每个元素都为0matrix2zeros(4,5,3);%4*5*3的数组&#xff0c;数组中每个元素都为0下面举一个将图像存到数组的例子对RGB图片1.jpg&#xff0c;2.jpg&#xff1b;大小为700*500*3创建4…

批处理命令Start

2019独角兽企业重金招聘Python工程师标准>>> 运行hello.exe&#xff08;最小化&#xff09; start /MIN hello.exe 用记事本打开readme.txt&#xff08;最大化&#xff09; start /MAX notepad readme.txt 打开网页 start http://www.baidu.com/ 调用另外一个脚本&…

arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例

[1.rar] - QQ连连看的源码.单消秒杀挂机等功能喜欢的朋友请拿去研究 [qqCHAR.rar] - qq 验证码识别程序 可以叫准确的识别出qq登陆前的验证码 [1.rar] - 本书以Visualc作为开发语言&#xff0c;结合大量实例&#xff0c;详细介绍了利用Arcobjects组件进行GIS二次开发的方法和过…

Linux命令-自动挂载文件/etc/fstab功能详解

一、/etc/fstab文件的作用磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中&#xff0c;否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取/etc/fstab这个文件中的内容&#xff0c;根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文…

一、在windows环境下修改pip镜像源的方法(以python3为例)

在windows环境下修改pip镜像源的方法(以python3为例) 1.在windows文件管理器中,输入 %APPDATA% 2.会定位到一个新的目录下&#xff0c;在该目录下新建pip文件夹&#xff0c;然后到pip文件夹里面去新建个pip.ini文件 3.在新建的pip.ini文件中输入以下内容&#xff0c;搞定 [glob…

得到选择框句柄 怎么操作_电脑版微信怎么多开?最简单的三种电脑版微信多开教程...

​在现实中的我们在网络上却又很多张脸&#xff0c;多开微信很多人都是需要的&#xff0c;这里就介绍3个方法给大家多开。方法1&#xff1a;BAT文件鼠标右键单击微信图标选择 属性在属性选项夹内复制 “目标”例如我的是("D:Program Files (x86)TencentWeChatWeChat.exe&q…

macos sierra 引导镜像_真想不到,在win10上可以制作苹果macOS启动U盘

不管你使用的是macOS还是Windows10&#xff0c;电脑出现启动问题是很正常的&#xff0c;原因有很多种&#xff0c;包括(但不限于)文件损坏、硬件故障和错误更新等。如果意外发生在苹果电脑上&#xff0c;可以使用带有安装文件的macOS启动U盘来修复它。这正是在电脑正常工作时应…

python(1) - 数据类型和变量

数据类型&#xff1a; 整数&#xff1a;就是整数&#xff0c;包括正整数&#xff0c;0&#xff0c;负整数 浮点数&#xff1a; 通俗点说&#xff0c;就是小数 长整数&#xff1a; 就是比较长的整型&#xff0c;通常后面会跟一个L 字符串&#xff1a; 字符串需要用“”或’’括起…

powershell awk_谈谈 PowerShell

万事万物&#xff0c;有始有终。直从萌芽拔&#xff0c;高自毫末始。所谓的 Shell&#xff0c;无非是应用程序与操作系统内核进行交互的一个中间程序而已。我本人玩电脑也有很久一阵子了&#xff0c;最开始接触到的就是Windows 7 操作系统&#xff0c;当时 Windows 7 上市不久&…

python七段数码管的详解,Python入门基础:七段数码管绘制

1.在学习Python的过程中&#xff0c;运用所学的一些基础知识&#xff0c;进行一些简单的编程&#xff0c;可以收获很多乐趣。在生活中&#xff0c;LED灯无处不在&#xff0c;荧幕显示的广告词&#xff0c;给我们呈现出动态的视觉效果。下面&#xff0c;则以最简单的显示日期为例…

python图标的演变_Python3 生成icon图标

首先安装所使用的库 pillow&#xff0c; pillow 是用来取代 PIL 的&#xff0c; pip3 install pillow 安装成功图&#xff1a;A866FFD7-2283-4BFB-8313-DBDEE909A579.png 简单的代码&#xff1a; from __future__ import print_function import os, sys from PIL import Image …

IDEA 热部署 仅支持jdk1.6,1.7

第一安装 dcevm 下载地址http://ssw.jku.at/dcevm/binaries/ java -jar dcevm-0.2-win.jar &#xff0c;选择需要安装该补丁的jdk&#xff0c;点击按钮Install即可 第二&#xff1a;IDEA 在Debug模式下运行&#xff0c;这时随便修改文件&#xff0c;自动发布到tomcat中 超级快…

php中perl配置,Windows下 Apache、PHP和Perl的安装配置

在安装AWStats7.0和 JAWStats之前需要配置其环境&#xff0c;而运行AWStats需要perl支持&#xff0c;运行JAWStats需要PHP支持&#xff0c;这篇文章将具体介绍其环境的安装配置。环境Windows 2003Apache2.2Per5.12lPHP5(开源)Apache&#xff1a;http://httpd.apache.org/Perl&a…

arraylist 初始化_ArrayList(JDK1.8)源码解析

既然是看源码&#xff0c;那我们要怎么看一个类的源码呢&#xff1f;这里我推荐的方法是&#xff1a;1)看继承结构看这个类的层次结构&#xff0c;处于一个什么位置&#xff0c;可以在自己心里有个大概的了解。2)看构造方法在构造方法中&#xff0c;看做了哪些事情&#xff0c;…

php Pthread 多线程 (二) Worker和Threaded

<?php //Worker是具有持久化上下文(执行环境)的线程对象 //Worker对象start()后&#xff0c;会执行run()方法&#xff0c;run()方法执行完毕&#xff0c;线程也不会消亡 class MySqlWorker extends Worker {private $name ;private $db null;public function __construct…

ios yymodel 将字典转数组模型_TensorNet——基于TensorFlow的大规模稀疏特征模型分布式训练框架

TensorNet是什么&#xff1f;TensorNet是一个构建在TensorFlow之上针对广告推荐等大规模稀疏场景优化的分布式训练框架。TensorNet的目标是让所有使用TensorFlow的开发者可以快速的、方便的训练出稀疏参数超过百亿的超大模型。训练带有大规模稀疏特征模型的主要挑战在广告、搜索…

mysql 索引及索引创建原则

是什么 索引用于快速的查询某些特殊列的某些行。如果没有索引&#xff0c; MySQL 必须从第一行开始&#xff0c;然后通过搜索整个表来查询有关的行。表越大&#xff0c;查询的成本越大。如果表有了索引的话&#xff0c;那么 MySQL 可以很快的确定数据的位置&#xff0c;而不用查…

【链表】Add Two Numbers

题目&#xff1a; You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. Input: (2 -> 4 -> 3) (5…

ecs服务器数据迁移_如何非常方便地从Windows文件服务器把数据完整地迁移到ONTAP Select...

这是一个续篇&#xff0c;如果你依然爱你的Windows文件服务器或者使用Windows文件服务没有任何问题的话&#xff0c;请忽略我。续自&#xff1a;从Windows文件服务器&#xff0c;到ONTAP Select软件定义存储感谢联想凌拓合作伙伴新锐英诚的帮助&#xff0c;我们成功地做到了从海…