5.26 综合案例2.0-简易声控灯

最新案例教程点击下方链接跳转,CSDN已停止更新

点击跳转HaaS506官方最新案例







简介

使用简单代码还原楼道声控灯,通过检测声音来开启电灯.

24行代码写一个声控灯,只有python能做到,其实还能精简,硬件源码都开放

准备

本案例需要的硬件

器材数量
HaaS506 - M601/M3201
声音检测模块1
220v电灯泡1
高电平触发继电器1
杜邦线若干

硬件连接图

在这里插入图片描述

功能实现

1.继电器使用说明

  • GPIO18引脚低电平电压0V,拉高后电压为3.2V。继电器正极连接电压为3.3V。所以继电器设置为低电平或高电平触发均可。
  • SI引脚控制左边继电器通断,S2控制右边继电器。
    请添加图片描述

2.简易代码

main.py

from driver import ADC
from driver import GPIO
import utime as time
import _thread

voice=ADC()
voice.open('ADC1')
def voice_thread():
    global value
    while True:
        value=voice.readVoltage()
        time.sleep_ms(1)

if __name__ == '__main__':
    p18=GPIO()
    p18.open('p18')
    p18.write(0)
    _thread.start_new_thread(voice_thread, ())
    while True:
        time.sleep_ms(1)
        if value > 720:
            p18.write(1)
            time.sleep(5)
            p18.write(0)

board.json

{
  "name": "haas506",
  "version": "2.0.0",
  "io": {
    "p18": {
      "type": "GPIO",
      "port": 18,
      "dir": "output",
      "pull": "pullup"
      },
    "ADC0": {
      "type": "ADC",
      "port": 0,
      "sampling": 12000000
    },
    "ADC1": {
      "type": "ADC",
      "port": 1,
      "sampling": 12000000
    }
  },
  "debugLevel": "ERROR",
  "repl": "enable",
  "replPort": 0
}

3.测试代码

增加记录最大值,及打印log功能。
main.py

from driver import ADC
from driver import GPIO
import utime as time
import _thread

voice=ADC()
voice.open('ADC1')
mx = 0
mx1 = 0
def voice_thread():
    global value,mx,mx1
    while True:
        value=voice.readVoltage()
        time.sleep_ms(1)
        #记录并打印最大值
        if value > mx:
            mx = value
        if mx !=mx1:
            print(value)
            mx1 = mx

if __name__ == '__main__':
    p18=GPIO()
    p18.open('p18')
    p18.write(0)
    _thread.start_new_thread(voice_thread, ())
    while True:
        time.sleep_ms(1)
        if value > 720:
            p18.write(1)
            time.sleep(5)
            p18.write(0)
            #重置最大值
            mx = 0

board.json

{
  "name": "haas506",
  "version": "2.0.0",
  "io": {
    "p18": {
      "type": "GPIO",
      "port": 18,
      "dir": "output",
      "pull": "pullup"
      },
    "ADC0": {
      "type": "ADC",
      "port": 0,
      "sampling": 12000000
    },
    "ADC1": {
      "type": "ADC",
      "port": 1,
      "sampling": 12000000
    }
  },
  "debugLevel": "ERROR",
  "repl": "enable",
  "replPort": 0
}

3.1测试log

记录当前最大音量,等量之后重置数值。便于设置临界音量值。


[14:20:50.534]收←◆\0
[14:20:54.337]收←◆POWERONREASON:0x000b,parse:,powerkey,pinReset,charge.

[14:20:55.354]收←◆714

[14:20:55.454]收←◆716

[14:20:55.954]收←◆717

[14:20:57.855]收←◆719

[14:20:59.575]收←◆720

[14:21:00.795]收←◆722

[14:21:05.795]收←◆709
714

[14:21:05.835]收←◆716

[14:21:06.035]收←◆717

[14:21:06.235]收←◆719

[14:21:09.135]收←◆720

[14:21:16.375]收←◆731

[14:21:21.375]收←◆709

[14:21:21.395]收←◆712
714

[14:21:21.455]收←◆716

[14:21:21.495]收←◆717

[14:21:23.835]收←◆719

[14:21:27.575]收←◆723

[14:21:27.655]收←◆728

[14:21:32.577]收←◆709
712

[14:21:32.625]收←◆716

[14:21:32.674]收←◆717

[14:21:33.214]收←◆719

[14:21:44.534]收←◆720

[14:22:30.255]收←◆722

[14:22:35.255]收←◆711
716

[14:22:35.334]收←◆717

[14:22:35.574]收←◆719

[14:24:16.854]收←◆720

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值