Arduino中文教程---认识模拟输入并制作声控电灯

in #utopian-io6 years ago (edited)

What Will I Learn?(将会学到什么)

  • Arduino的模拟输入
  • 连接声音传感器并获取声音数值
  • DIY一个声控开关电灯

图片.png

Requirements(所需元件)

  • Arduino UNO 开发板
  • MIC声音传感器
  • LED与电阻、跳线

Difficulty(难度)

  • 中等

Tutorial Contents(教程内容)

一、如何获取Arduino的模拟输入

Arduino的引脚上有标志带A的都是可以用户获取和输入模拟信号的

图片.png

模拟信号:

可以理解为连续的信号。

数字信号:

可以理解为断续的0和1信号。

两者的区别可以参照下图

图片.png

操作模拟引脚一般用如下两个函数:

  • analogRead() 读取对应模拟引脚的模拟数值
  • analogWrite() 写入模拟数值

二、Arduino如何连接声音传感器并获取传感器数据

使用的传感器为:MIC声音传感器

MIC传感器是对外界的声音进行检测,然后进行放大300倍的效果,然后输出模拟数值,适用于制作声控机器人、声控开关、声控报警等的制作。

图片.png

MIC传感器有3个引脚

  • 蓝色的引脚:用于传感器获取的声音数值进行模拟输出
  • 红色的引脚:用于连接电源的正极,也就是arduino的 vcc或者5v
  • 灰色的引脚:用于连接电源的负极,也就是arduino 的gnd

接线如下:

MIC传感器arduino
蓝色A0
红色vcc
灰色gnd

图片.png

获取传感器数据:

​ setup函数初始化:

void setup()
{
   Serial.begin(9600); // 打开串口,设置波特率为9600 bps
}

​ loop主体函数:

  int val;
  val=analogRead(0);   //传感器接于模拟口0

​ 将获取到的数值打印到串口方便调试:

 Serial.println(val,DEC);//从串口发送数据并换行        

​ 整合到loop函数:

void loop()
{
   int val;
   val=analogRead(0);   //传感器接于模拟口0
   Serial.println(val,DEC);//从串口发送数据并换行        
   delay(100);
}

​ 全部程序:

void setup()
{
   Serial.begin(9600); // 打开串口,设置波特率为9600 bps
}
void loop()
{
   int val;
   val=analogRead(0);   //传感器接于模拟口0
   Serial.println(val,DEC);//从串口发送数据并换行        
   delay(100);
}

打开串口监视框:(点击IDE的右上角)

图片.png

三、制作声控电灯

  • 连接LED并实现数字引脚控制LED

    图片.png

    设置该数字引脚为输出模式:

    void setup() {
      pinMode(5, OUTPUT);
    }
    

    通过控制电平控制亮灭:

     digitalWrite(5, HIGH);
     digitalWrite(5, LOW);
    
    
  • 结合声音传感器控制LED

    • 需求分析:当当前环境声音值大于100时,LED亮,小于100时,LED灭
    void loop()
    {
       int val;
       val=analogRead(0);   //传感器接于模拟口0
       Serial.println(val,DEC);//从串口发送数据并换行      
       if(val > 100){
          digitalWrite(5, HIGH);
       }
       else
       {
          digitalWrite(5, LOW);
       }
       delay(100);
    }
    

Curriculum(系列课程)



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Your contribution cannot be approved because it does not follow the Utopian Rules.

  • Since there are no physical work involved here and all of it is graphical representation, the tutorial won’t be accepted. We are restricting the Arduino tutorials to physical work involved.
    You can contact us on Discord.
    [utopian-moderator]

Coin Marketplace

STEEM 0.28
TRX 0.12
JST 0.033
BTC 70013.82
ETH 3766.83
USDT 1.00
SBD 3.80