树莓派GPIO的应用---------智能红绿灯系统

一:树莓派、Python简介
1,树莓派: Raspberry Pi(中文名为“树莓派”,简写为 RPi,)是为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,其系统基于 Linux。树莓派自发布以来受到了广大创客以及教育从业者的青睐,更是由于便携、可拓展性强并拥有相对强大的功能,在电子、编程爱好者中得到了广泛的应用。现在最常用的型号为3B+型,并且在2019年6月更是发布了树莓派4代,拥有更强的功率以及拓展功能。下图为树莓派4代配置。

2,Python:面向对象的解释型计算机程序设计语言,语法简洁清晰,有丰富和强大的库,适用于Web开发和爬虫,同时因为语法简单,可用于青少年编程学习。


二:原理
1,树莓派GPIO
GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态(是高电平或是低电平)。GPIO是个比较重要的概念,可以通过GPIO口和硬件进行数据交互,控制硬件工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如开关)等。
2,发光二极管原理
发光二极管两端分别为阴极和阳极,阳极(引脚长一点)接VCC,阴极接GND,能点亮发光二极管。

3,数码管原理
数码管大体分为七位数码管和八位数码管(区别在于有没有小数点位),数码管可以看成由多个发光二极管组成,同时控制不同的发光二极管工作。
当前实验为5161AS数码管~

4,开关原理
普通机械式开关,按下去连通,松开手后断开连接。通过上拉和下拉电阻控制检测端的高低电平。
如下图所示:上半部分为上拉电阻接法,PIN为检测端,开关不按下去检测到高电平,开关按下去检测到低电平;下半部分为下拉电阻接法,PIN为检测端,开关不按下去检测到低电平,开关按下去检测到高电平。

三、代码及概览图

import RPi.GPIO as GPIO
import timeLED_R = 17  # PGIO  P17
LED_G = 27  #P27
LED_Y = 22  #p22KEY = 26    #P26PIN = [5,6,13,19,12,16,20,21]
#      a b  c  d  e  f  g  dp
num1 = [6,13]                 #number1
num2 = [5,6,19,12,20]
num3 = [5,6,13,19,20]
num4 = [6,13,16,20]
num5 = [5,13,19,16,20]
num6 = [5,13,19,12,16,20]
num7 = [5,6,13]
num8 = [5,6,13,19,12,16,20]
num9 = [5,6,13,19,16,20]
num0 = [5,6,13,19,12,16]
PINS = [num0,num1,num2,num3,num4,num5,num6,num7,num8,num9]GPIO.setmode(GPIO.BCM)GPIO.setup(LED_R,GPIO.OUT)     #set LED_R (P17) as OUT
GPIO.setup(LED_G,GPIO.OUT)
GPIO.setup(LED_Y,GPIO.OUT)GPIO.setup(KEY,GPIO.IN)        #set KEY (P26) as INON = True
for g in PINS:GPIO.setup(g,GPIO.OUT)try:while(True):GPIO.output(LED_R,not ON)        #Reset all LEDGPIO.output(LED_G,not ON)GPIO.output(LED_Y,not ON)GPIO.output(LED_R,ON)        #set LED red ON,number nine to zerofor i in range(10):GPIO.output(PINS[9-i],ON)for j in range(10):if (GPIO.input(KEY) == True):        #if  button is pressed ,LED green ON and red offGPIO.output(LED_G,ON)GPIO.output(LED_R,not ON)time.sleep(3)GPIO.output(LED_G,not ON)GPIO.output(LED_R,ON)time.sleep(0.1)GPIO.output(PINS[9-i],not ON)GPIO.output(LED_R,not ON)GPIO.output(LED_Y,ON)        #set LED yellow ON,number three to zerofor i in range(3):GPIO.output(PINS[2-i],ON)time.sleep(1)GPIO.output(PINS[2-i],not ON)GPIO.output(LED_Y,not ON)GPIO.output(LED_G,ON)     #set LED green ON,number five to zerofor i in range(6):GPIO.output(PINS[5-i],ON)time.sleep(1)GPIO.output(PINS[5-i],not ON)GPIO.output(LED_G,not ON)
finally:GPIO.cleanup()

四、实现的功能
1,红绿灯功能:红色、黄色、绿色发光二极管循环亮,红灯9秒,黄灯三秒,绿灯5秒。灯亮期间数码管倒计时显示数字。
2,按钮功能:在红色灯期间可以按下按钮开关,按下一次后,红色灯关闭,暂停倒计时;同时绿色灯亮,持续三秒钟,三秒钟后红色灯亮,并继续倒计时。

应用树莓派GPIO完成智能红绿灯系统相关推荐

  1. 树莓派安装开源智能家居系统 Domoticz

    前言 最近闲来无事开始折腾自己的智能家居系统,对比了几种比较流行的开源智能家居系统,觉得 Domoticz 更适合,Domoticz的官方中文文档,虽然不是很完善但还是可以参考一下.需要注意的是下文用 ...

  2. 树莓派GPIO引脚控制红绿灯与轰鸣器

    参考: https://blog.csdn.net/weixin_44415639/article/details/114600919 https://blog.csdn.net/chenbo163/ ...

  3. 树莓派开发笔记(三)搭建智能家居系统(2) — Home Bridge + Home Assistant

    搭建智能家居系统 搭建智能家居系统(2) 添加设备 Command Line 传感器组件 Scrape Sensor 组件 小米设备接入 Zigbee 设备(网关类设备) Yeelight 灯具 Wi ...

  4. Home Assistant + 树莓派:强大的智能家居系统

    项目介绍:制作一个智能家居系统,可以通过web软件界面或天猫精灵控制家里的灯.空调等设备. 硬件:Raspberry Pi 4B 4GB.ESP8266.Grove Arduino Beginner ...

  5. 基于树莓派+STM32+OneNET云平台打造智能家居系统(一)硬件设计篇

      本次分享的是之前一个课程设计, 会分为几篇博文进行分享.智能家居是目前研究与发展的一大热点,本设计是结合STM32微处理器/树莓派(Raspberry Pi)3b+.温湿度传感器.继电器以及ESP ...

  6. 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit

    树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit 通过本篇教程,你将完成对 H ...

  7. 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant

    树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant 通过本篇教程,你将完成对 Home Assistant 的进一 ...

  8. 树莓派开发笔记(二)搭建智能家居系统(1) — Home Bridge + Home Assistant

    搭建智能家居系统 搭建智能家居系统(1) 介绍 软件安装 简便安装 Home Assistant Home Bridge Home Bridge - Home Assistant 相关配置 HASS ...

  9. 树莓派python智能家居英文参考文献_Home Assistant + 树莓派:强大的智能家居系统 · 小米篇...

    小米的智能家居设备物美价廉,博得了国内外不少用户的喜爱.不要不信,在 Home Assistant 官方论坛上,米家设备相关话题的热度一直居高不下. 通过之前的 安装篇 与 设备接入篇,相信大家对 H ...

  10. python 网关控制家居_在树莓派上搭建智能家居网关

    智能家居系统利用大量的物联网设备(如温湿度传感器.安防系统.照明系统)实时监控家庭内部状态,完成智能调节.人机互动.随着物联网技术的发展,其应用范围.数据规模.市场份额将进一步扩大,智能家居设备之间的 ...

最新文章

  1. hadoop错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
  2. html怎样添加日历控件,向日历控件中添加自定义内容
  3. NumPy来自现有数据的数组
  4. Xcode代码块功能
  5. C语言字符串相关一级指针内存模型
  6. python发邮件详解_python实现发送邮件详解
  7. 价格厚道!855最强机皇发布:看完心动了吗?
  8. 血脂测试软件,医院检查血脂一般用什么仪器
  9. history模式 nginx配置_Vue history模式Nginx配置
  10. 搜索(深度优先搜索与回溯) 经典例题题单+万字详解(C++)
  11. 项目开发文档编写规范
  12. kali linux win10桌面,一键伪装成Win 10,Kali Linux 2019年最终版重磅功能预览
  13. mysql 字段扩容_关于数据库扩容与缩容
  14. C#将数据导入固定word模板
  15. java 编程联系_《JAVA程序设计》结对编程联系_四则运算(第二周:整体性总结)...
  16. xp无法搜索计算机,xp系统的笔记本电脑为什么搜不到手机热点的信号
  17. 移动多媒体知识点期末总结
  18. 深富策略:周期股反弹有限 新能源是主基调
  19. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 30 章 可靠性和预写式日志_30.4. WAL配置...
  20. 基于QT的多线程视频监控的实现(一)

热门文章

  1. kali linux下查看IP地址及dhcp地址释放与重新获取
  2. 【Windows】hiberfil.sys相关操作
  3. WIN10下删除Hiberfil.sys文件
  4. 没有U盘怎么给电视盒子装软件?新手必看三种方法
  5. GkCTF2020逆向部分wp
  6. The kernel appears to have died. It will restart automatically
  7. Medical image segmentation
  8. IMU惯导相关开源项目整理
  9. 科学发展观与当代大学生
  10. PHP合并两张(多张)图片