咳一声灯亮了,延时声控开关

温馨提示

第一节、简介

实物图:

麦克风是将声音信号转换为电信号的能量转换器件,是和喇叭(电→声)正好相反的器件。是声音设备的两个终端,麦克风是输入,喇叭是输出。又名咪芯,咪头,话筒,传声器。

第二节、外设功能框图分析

原理图:

R23和R20为分压电阻,CPU检测模拟信号转换为数字信号只支持0~1V,麦克风通过可变电阻R15调节,最大输出的为2V。

第三节、代码讲解

import java.io.IOException;

import tijos.framework.devicecenter.TiADC;
import tijos.framework.devicecenter.TiGPIO;
import tijos.framework.devicecenter.TiI2CMaster;
import tijos.framework.transducer.oled.TiOLED_UG2864;
import tijos.framework.transducer.relay.TiRelay1CH;
import tijos.framework.util.Delay;

/**
 * 咳一声灯亮了,延时声控开关
 * 
 * @author tijos
 *
 */
public class VoiceLight {

    public static void main(String[] args) {

        try {
            // GPIO资源分配,GPIO0的PIN2和PIN4脚
            TiGPIO gpio0 = TiGPIO.open(0, 2, 4);
            // GPIO资源分配,GPIO0的PIN4脚
            TiI2CMaster i2cm0 = TiI2CMaster.open(0);
            // I2C主机总线资源与屏幕对象绑定,屏幕地址:0x3C
            TiOLED_UG2864 oled = new TiOLED_UG2864(i2cm0, 0x3c);    
            // 屏幕开启并清屏
            oled.turnOn();
            oled.clear();
            oled.print(0, 0, "VoiceLight");

            // ADC资源分配,ADC0的CH0通道
            TiADC adc0 = TiADC.open(0, 0);
            // GPIO总线资源与继电器对象绑定
            TiRelay1CH relay = new TiRelay1CH(gpio0, 2);
            // 设置ADC参考电压1.0V,外部2倍分压
            adc0.setRefVoltageValue(1.0, 2);
            // 定义采集电压比较阈值:目前为15.0毫伏,需要根据实际情况调整
            double threshold = 15.0;
            // 循环检测
            while (true) {
                // 检测到按钮按下
                if (adc0.getVoltageValue(0) * 1000 > threshold) {
                    // 打开继电器
                    relay.turnOn();
                    // 延时10秒
                    oled.print(2, 0, "Open switch");
                    Delay.msDelay(10 * 1000);
                } else {
                    // 关闭继电器
                    relay.turnOff();
                    oled.print(2, 0, "Close switch");
                }
                // 检测间隔100ms
                Delay.msDelay(100);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

第四节、实验现象

声控灯现象,液晶屏显示继电器开关状态,当声音大到临界值,打来继电器和对应的指示灯,十秒后自动关闭。

第五节、参考资料

麦克风详解:https://wenku.baidu.com/view/933b0efdf80f76c66137ee06eff9aef8941e48ad.html