找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5454|回复: 0
收起左侧

python开发实例:TPYBoard开发板DIY声光电控开关

[复制链接]
ID:130183 发表于 2016-11-21 16:57 | 显示全部楼层 |阅读模式
本帖最后由 bodasister 于 2016-11-21 16:58 编辑

        声光控开关在我们日常生活中已经非常普遍了,几乎每个小区的楼道里都能有声光控开关的影子。现在也逐渐出现了声光控的小夜灯,晚上起夜再也不用担心太黑、刺眼、找不到开关了!下面就教大家用Python开发板——TPYBoard来做一个简易的声光控小灯吧!

详细的教程实例请参考TPYBoard官网网站:http://www.micropython.net.cn

QQ图片20161119144607.jpg

视频演示请参考QQ交流群:157816561

https://v.qq.com/x/page/f0348ry1xyi.html

这次用的到主要MCU依然是能跑Python的开发板TPYBoard,这款DIY套件在TPYBoard官网上有售,感兴趣的朋友可以买回来DIY哦!

购买网址


150723_ig4Y_2849130.png

1.实验目的

1. 学习在PC机系统中扩展简单I/O 接口的方法。

   2. 进一步学习编制数据输出程序的设计方法。

   3. 学习光敏传感器模块的工作原理。

   4. 学习声音传感器模块的工作原理。

   5. 学习TPYboard与声音传感器与光敏传感器的接线方法以及利用声音与光控制发光二极管亮灭。

2.所需元器件

  TPYBoard板子一块

   声音传感器一个

   光敏传感器一个

   面包板一块

   发光二极管若干

   数据线一条

   杜邦线若干

3.光敏传感器模块工作原理

   1.光敏电阻模块对环境光线最敏感,一般用来检测周围环境的光线的亮度,触发单片机或继电器模块等;

   2.模块在环境光线亮度达不到设定阈值时,DO端输出高电平,当外界环境光线亮度超过设定阈值时,DO端输出低电平;

   3.DO输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的光线亮度改变;


   4.DO输出端可以直接驱动本店继电器模块,由此可以组成一个光控开关。

1479545872307793.png

光敏传感器

4.声音传感器模块工作原理

   1.声音模块对环境声音强度最敏感,一般用来检测周围环境的声音强度。

   2.模块在环境声音强度达不到设定阈值时,OUT输出高电平,当外界环境声音强度超过设定阈值时,模块OUT输出低电平;

   3.小板数字量输出OUT可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的声音;


   4.小板数字量输出OUT可以直接驱动本店继电器模块,由此可以组成一个声控开关;

1479545901165245.png

5.硬件接线方法

上面我们已经知道光敏传感器跟声音传感器的工作原理,以及三根针脚的作用,那么我们只需讲电源正极与电源负极跟我们TPYBoard的3.3V跟GND连接起来,然后将光敏传感器与声音传感器的信号输出针脚连接到我们TPYBoard,本人声音传感器信号输出引脚连接的是TPYBoard的Y1针脚,光敏传感器信号输出引脚连接TOYBoard的Y2针脚,这样传感器就连接完毕,然后我们将发光数码管的正极插入面包板正极上,负极插入面包板的纵向插孔里(a,b,c,d,e,f,g,h,i,j),然后用杜邦线将负极连接到TPYBoard的GND上,灯的正极连接到我们TOYBoard的X1针脚,然后我们声音大小以及光亮强度来控制X1针脚输出高电平或者低电平来控制发光二极管的亮灭,接线ok后,编写main.py,这样我们的DIY声光电控开关就完成了。


6.源代码

  1. <font color="#444444"><font color="#3d464d"># main.py -- put your code here!
  2. import pyb
  3. from pyb import Pin

  4. voice = Pin('Y1',Pin.IN)
  5. light = Pin('Y2',Pin.IN)
  6. led = pyb.Pin("X1",pyb.Pin.OUT_PP)

  7. while 1:
  8.     if light.value()==1:
  9.         if voice.value()==1:
  10.             led.value(0)
  11.             pyb.LED(2).off()
  12.             pyb.LED(3).off()
  13.             pyb.LED(4).on()     
  14.         else:
  15.             pyb.LED(3).off()
  16.             pyb.LED(4).off()
  17.             led.value(1)
  18.             pyb.LED(2).on()
  19.             pyb.delay(5000)
  20.     else:
  21.         pyb.LED(3).on()
  22.         pyb.LED(2).off()
  23.         pyb.LED(4).off()
  24.         led.value(0)</font></font>
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表