Arduino中文教程---认识模拟输入并制作声控电灯
What Will I Learn?(将会学到什么)
- Arduino的模拟输入
- 连接声音传感器并获取声音数值
- DIY一个声控开关电灯
Requirements(所需元件)
- Arduino UNO 开发板
- MIC声音传感器
- LED与电阻、跳线
Difficulty(难度)
- 中等
Tutorial Contents(教程内容)
一、如何获取Arduino的模拟输入
Arduino的引脚上有标志带A的都是可以用户获取和输入模拟信号的
模拟信号:
可以理解为连续的信号。
数字信号:
可以理解为断续的0和1信号。
两者的区别可以参照下图
操作模拟引脚一般用如下两个函数:
- analogRead() 读取对应模拟引脚的模拟数值
- analogWrite() 写入模拟数值
二、Arduino如何连接声音传感器并获取传感器数据
使用的传感器为:MIC声音传感器
MIC传感器是对外界的声音进行检测,然后进行放大300倍的效果,然后输出模拟数值,适用于制作声控机器人、声控开关、声控报警等的制作。
MIC传感器有3个引脚
- 蓝色的引脚:用于传感器获取的声音数值进行模拟输出
- 红色的引脚:用于连接电源的正极,也就是arduino的 vcc或者5v
- 灰色的引脚:用于连接电源的负极,也就是arduino 的gnd
接线如下:
MIC传感器 | arduino |
---|---|
蓝色 | A0 |
红色 | vcc |
灰色 | gnd |
获取传感器数据:
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的右上角)
三、制作声控电灯
连接LED并实现数字引脚控制LED
设置该数字引脚为输出模式:
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
Your contribution cannot be approved because it does not follow the Utopian Rules.
You can contact us on Discord.
[utopian-moderator]