最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Arduino中级教程 项目四 声控灯

Arduino 少儿编程 3067浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

 

本教程由DFRobot提供。

该教程为中级套件教程。购买地址:

https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-12108364412.9.uh4s3j&id=44531434864

 

小时候有没有对走廊的声控灯很感兴趣呢?会不会拼命的跺脚只为让那盏灯点亮。这节 我们就做个这样的声控灯。只有你轻轻拍下手, 灯就自动亮起来了,没了声音,灯就又自动 关了。这里用到的是个声音传感器,我们可以利用这个传感器做出更多互动作品,通过声音 触发来控制更多好玩儿的东西,比如说做个发光鼓等等。

 

所需元件

  • 1× 数字食人鱼红色LED 发光模块

Arduino中级教程 项目四 声控灯

  • 1× 模拟声音传感器

Arduino中级教程 项目四 声控灯

 

硬件连接

模拟声音传感器 -> 模拟0

数字食人鱼红色 LED发光模块 ->数字 13

Arduino中级教程 项目四 声控灯

图 4-1 声控灯

输入代码

样例代码 4-1:

//项目四 —— 声控灯

int soundPin = 0; //声音传感器接到模拟 0

int ledPin = 13; //LED 接到数字 13

void setup() {

pinMode(ledPin, OUTPUT);

// Serial.begin(9600); //用于调试

}

void loop(){

int soundState = analogRead(soundPin); //读取传感器的值

//Serial.println(soundState); //串口打印声音传感器的值

//如果声音值大于 10,亮灯,并持续 10s,否则关灯

if (soundState > 10) {

digitalWrite(ledPin, HIGH);

delay(10000);

}else{

digitalWrite(ledPin, LOW);

}

}

对着话筒拍下手,或者说句话,试试灯能不能点亮?

 

硬件分析(模拟输入—数字输出)

前面几次我们接触的都是数字传感器,这次我们要尝试使用模拟传感器了,还记得在一 开始说的数字与模拟的区别吗?(串口中认识“数字”与“模拟”一节)。数字,只有两个值 (0/1)。模拟,是线性的,理论上的无限值(0~1023)。

所以这里是个,模拟输入,数字输出的模式。

Arduino中级教程 项目四 声控灯

代码回顾

在 setup()中只设置了 LED 为输出,为什么没有设置声音传感器输入模式?这是因为 模拟口都是输入设置,所以不需要设置了。

声音传感器是输入设备,所以需要读取对应模拟口 0 的值。与读取数字口函数 digitalRead(pin)类似,所以模拟口读取函数是:

analogRead(pin)

这个函数用于从模拟引脚读值,pin 是指连接的模拟引脚。Arduino的模拟引脚连接到 一个了 10 位 A/D 转换,输入0~5V 的电压对应读到 0~1023 的数值,每个读到的数值对 应的都是一个电压值。比如 512 = 2.5V。

最后是一个 if 判断,判断是否到达你预设的值。

if (soundState > 10) {

}else{

}

需要修改预设值的话,可以打开串口监视器,看看你需要的声音强度的值在什么范围, 然后做相应调整就可以了。

 

 

您必须 登录 才能发表评论!