所需材料

一个已经安装配置好了的树莓派

连接控制树莓派所用的其他必须设备

200Ω电阻 x 8

led x 8

面包板及连接线若干

电路连接

电路图

按照电路图所示,在面包板上进行连接。

编写程序

安装RPi.GPIO

首先得确定RPi.GPIO已安装。最新的系统已经自带了,如果没有的可以使用命令

sudo apt-get update

sudo apt-get install python-dev python-rpi.gpio

来安装

编写模块

用文本编辑器新建一个led.py文件。(高手们都用vi,我只会用nano…)

cd

mdir GPIO

cd GPIO

nano led.py

python代码如下:

import RPi.GPIO as GPIO

import time

channels = [16,18,22,24,26,19,21,23]

def init():

GPIO.setmode(GPIO.BOARD)

for x in channels:

GPIO.setup(x,GPIO.OUT)

pass

def on(i):

GPIO.output(channels[i], GPIO.HIGH)

def off(i):

GPIO.output(channels[i], GPIO.LOW)

def ctrl(data):

for i in channels:

GPIO.output(i, data & 0×1)

data = data >> 1

pass

def test():

for i in xrange(512):

ctrl(i)

time.sleep(0.1)

def clean():

GPIO.cleanup()

你可以在树莓派上直接编辑这个文件,也可以将文件在电脑上编辑好,然后用SFTP或者Linux下的scp命令传到树莓派上。

调用模块

你可以编写一个test.py调用刚刚编写好的led模块:

import led

led.init()

led.test()

led.clean()

也可以直接在python shell中操作,这里是我在python shell中调用写好的模块的一个例子

要注意的是,GPIO操作需要管理员权限,因此要用sudo。譬如视频中我在启动python shell的时候前边加了sudo:

sudo python

而在运行自己写的test.py的时候也要加sudo:

sudo python test.py

知识补充:

RPi.GPIO模块函数说明:

RPi.GPIO.setmode(naming_system)

设置将GPIO针的命名方式。naming_system可用的取值有 RPi.GPIO.BCM 和 RPi.GPIO.BOARD,分别代表boardcom命名系统和树莓派板子上的命名系统。而因为使用BCM 的时候(据说)不同的版本BVM针脚定义不一样,所以同一套程序在多个树莓派系统上使用的时候建议用BOARD。

RPi.GPIO.setup(channel, state)

将标号为channel的针设置为state模式。channel取值为1~26,state取值为RPi.GPIO.IN 或者RPi.GPIO.OUT,分别表示输入和输出。例如 RPi.GPIO.setup(1, RPi.GPIO.IN)表示将1号针设置为输入模式;RPi.GPIO.setup(3, RPi.GPIO.OUT)表示将3号针设置为输出模式。具体哪个号是哪根取决于setmode()中设置成什么。

RPi.GPIO.output(channel, state)

将标号为channel的针设置为state指定的电平。channel取值为1~26,state取值为RPi.GPIO.HIGH 和RPi.GPIO.LOW,或者1和0,或者True和False,表示高电平和低电平。例如RPi.GPIO.output(1, 1) 表示把1号针设置为高电平,RPi.GPIO.output(3, Flase) 表示将3号针设置为低电平。具体哪个号是哪根取决于setmode()中设置成什么。

RPi.GPIO.input(channel)

获取将标号为channel的针的电平砖头。channel取值为1~26。例如RPi.GPIO.input(1) 表示获取1号针的状态。

RPi.GPIO.cleanup()

清除掉之前RPi.GPIO.setup()设置的状态。退出程序之前一定要调用,否则下次调用的时候会报错。

led.py模块说明

channel 中保存的是连接中使用的针的标号,按顺序。

init() 是初始化GPIO接口的代码,使用控制lcd去前要调用。主要工作是设置接口命名模式和 将channel中的针设置为输出模式

on() / off() 是将channel 中第i个针设置为高电平/低电平

ctrl() 是根据参数设置全8根针的电平。参数的低0位、低1位、低2位…分别表示channel下标为0、1、2…的针的电平状况,1为高电平、0为低电平

test() 是测试函数。用8位二进制表示8个灯的状态,每隔0.1秒到下一个状态: 0000 0000, 0000 0001, 0000 0010, 0000 0011,0000 0100 … 实际上就是从0数到255

clean() 是对 RPi.GPIO.cleanup() 的一个封装

在树莓派上进行python编程_在树莓派上用Python控制LED相关推荐

  1. 如何在树莓派上进行python编程_《树莓派Python编程指南》怎么样_目录_pdf在线阅读 - 课课家教育...

    计算机已经不再只是用来工作的方盒子.任何拥有一个可编程处理中心的东西都可以称作计算机.游戏终端.智能手机.全球卫星定位系统(GPS)单元.平板电脑以及其他许多令人难以置信的设备都说明了这一点.它们都是 ...

  2. 大学生计算机python_人人都能学计算机:计算机科学入门与Python编程_学堂在线章节测试答案...

    查看答案 人人都能学计算机:计算机科学入门与Python编程_学堂在线章节测试答案 单击图层调板下方的新图层按钮可以产生新图层.A:错B:对 在图示的薄壁杆件截面图形中,形心与弯曲中心重合的截面有() ...

  3. 如何零基础学习python语言_零基础如何学习Python编程

    Python是一门简单优雅的计算机程序设计语言,相比于C语言.Java语言,Python编程具有以下特点: 1. Python语法简单,代码可读性高,容易入门: 2. Python代码具有一定的规范性 ...

  4. python编程用什么电脑好-初学Python编程看哪些书比较好?

    原标题:初学Python编程看哪些书比较好? 我推荐你一些学习Python编程适合看的书,你可以试着看看是不是可以看懂,是不是感兴趣......书中藏着你想要的答案,下面就为大家揭秘学习Python编 ...

  5. 《Python编程初学者指南》——1.2 Python简介

    本节书摘来自异步社区<Python编程初学者指南>一书中的第1章,第1.2节,作者[美]Michael Dawson,王金兰 译,更多章节内容可以访问云栖社区"异步社区" ...

  6. python编程入门指南-最简单的Python编程入门指南,没基础也能快速入门Python编程...

    原标题:最简单的Python编程入门指南,没基础也能快速入门Python编程 对Python这门编程语言来讲,几乎是没什么不能做到的.最难的不过是如何入门,也就是你进入Python编程的第一步. 其实 ...

  7. 视频教程-Python编程的术与道:Python语言入门-Python

    Python编程的术与道:Python语言入门 大学教授,美国归国博士.博士生导师:人工智能公司专家顾问:长期从事人工智能.物联网.大数据研究:已发表学术论文100多篇,授权发明专利10多项 白勇 ¥ ...

  8. 视频教程-Python编程的术与道:Python语言进阶-Python

    Python编程的术与道:Python语言进阶 大学教授,美国归国博士.博士生导师:人工智能公司专家顾问:长期从事人工智能.物联网.大数据研究:已发表学术论文100多篇,授权发明专利10多项 白勇 ¥ ...

  9. 如何在树莓派上进行python编程_设置并使用树莓派进行Python和C语言编程 (下)

    Python部落(www.freelycode.com)组织翻译, 禁止转载 关键字 条件关键字 下表列出了和条件语句有关的关键字和它们的简要描述 if用来决定将要执行哪条语句 else 可选,条件为 ...

最新文章

  1. 浅谈分布式系统一致性之3PC协议
  2. 取代现有电商和实体店菜市场的新模式
  3. JQuery中serialize()、serializeArray()和param()方法
  4. 【CSS练习】常用的CSS字段
  5. nginx 负载均衡 404_nginx配置负载均衡
  6. 20155222卢梓杰 《Java程序设计》第1周学习总结
  7. kafka java编程demo_Kafka简单客户端编程实例
  8. P1080 国王游戏
  9. 网上购物与开店赢家随身查
  10. 二叉树遍历算法的应用
  11. linux系统串口dmx512,基于stm32实现DMX512协议发送与接收详解
  12. web前端实习一个月的心得体会
  13. sicily 1608
  14. matlab读取mp3文件并且播放
  15. HDU-4540 威威猫系列故事——打地鼠
  16. 用c语言实现图的基本存储,图的邻接矩阵存储(C语言实现)
  17. acm 对拍程序 步骤展示
  18. java中虚数咋表示,虚数的定义(高中虚数i的运算公式举例)
  19. iOS Umeng分享/第三方授权登录
  20. 超大容量低速冷冻离心机XL720R

热门文章

  1. 编写跨浏览器兼容的 CSS 代码的金科玉律
  2. 问题二:用C++输出第一张图片
  3. NLP自然语言处理-Pytorch情感分析简介
  4. 深度学习推荐模型-DIN
  5. 大数据可视化技术的挑战及应对
  6. 自动控制原理_电容补偿的作用与自动控制原理
  7. java 类型转换方法_Java中的实用类型转换的方法
  8. 用函数实现字符串拼接_JDK拍了拍你:字符串拼接一定记得用MessageFormat#format
  9. matlab上机操作作业指导书,LED自动固晶基本操作1
  10. mac apache php.ini,Mac自带的Apache使用详解