Python开发实例:TPYBoard开发板制作声光控开关
Python开发实例:TPYBoard开发板制作声光控开关
bodasisiter 发表于1年前
Python开发实例:TPYBoard开发板制作声光控开关
  • 发表于 1年前
  • 阅读 73
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

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

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

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

视频演示请参考QQ交流群:157816561:https://v.qq.com/x/page/f0348ry1xyi.html

     这次用的到主要MCU依然是能跑Python的开发板TPYBoard,这款DIY套件在TPYBoard官网上有售,感兴趣的朋友可以买回来DIY哦!https://item.taobao.com/item.htm?spm=a230r.1.14.126.XkR5T3&id=542025162641&ns=1&abbucket=12#detail

1.实验目的

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

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

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

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

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

2.所需元器件

   TPYBoard板子一块

   声音传感器一个

   光敏传感器一个

   面包板一块

   发光二极管若干

   数据线一条

   杜邦线若干

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

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

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

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

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

光敏传感器

 

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

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

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

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

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

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.源代码

# main.py -- put your code here!
import pyb
from pyb import Pin

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

while 1:
    if light.value()==1:
        if voice.value()==1:
            led.value(0)
            pyb.LED(2).off()
            pyb.LED(3).off()
            pyb.LED(4).on()     
        else:
            pyb.LED(3).off()
            pyb.LED(4).off()
            led.value(1)
            pyb.LED(2).on()
            pyb.delay(5000)
    else:
        pyb.LED(3).on()
        pyb.LED(2).off()
        pyb.LED(4).off()
        led.value(0)

 

共有 人打赏支持
粉丝 10
博文 69
码字总数 68596
×
bodasisiter
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: