
PKU-电子系统基础训练-实验五Code-声光检测与控制
发布日期:2021-05-08 03:42:13
浏览次数:25
分类:精选文章
本文共 2657 字,大约阅读时间需要 8 分钟。
PKU-电子系统基础训练-实验五 Code-声光检测与控制
实验目标与内容
1. 声控灯
通过声波传感器控制LED灯的开关动作,实现声音变化控制灯亮度的功能。
2. 音乐节奏灯
通过声波传感器检测音乐中的节奏变化,实现LED灯随音乐节奏变化亮度的控制。
3. 自动路灯
利用光电传感器检测环境亮度,实现LED路灯自动开关的控制。
4. 自动楼道灯
结合光电传感器和声波传感器,实现楼道灯在光照和声音变化时进行自动控制。
5. 音乐灯系统
通过声音传感器检测音量变化,实现LED灯的亮度自动随音量调整。
本次实验通过声光检测技术,结合Arduino编程实现了多种智能控制系统,涵盖了声音传感器与LED灯控制、光电传感器与路灯控制等多种应用场景。
1. 声控灯代码示例
int digitalPinIn = 8;int digitalPinOut = 4;int value;void setup() { pinMode(digitalPinIn, INPUT); pinMode(digitalPinOut, OUTPUT);}void loop() { value = digitalRead(digitalPinIn); if (value == HIGH) { digitalWrite(digitalPinOut, HIGH); } else { digitalWrite(digitalPinOut, LOW); } delay(500);}
代码功能:通过声波传感器检测声音变化,将声波信号转换为控制信号,驱动LED灯进行开关控制。
2. 音乐节奏灯代码示例
// 代码参考声控灯,稍微改写控制灯串部分即可完成// 代码主要修改了对灯泡控制逻辑的实现
代码功能:通过声音传感器检测音乐中的节奏变化,驱动LED灯随音乐节奏变化实现亮度调节。
3. 自动路灯代码示例
int led = 4;int analogpin = A0;int value;void setup() { pinMode(led, OUTPUT); pinMode(analogpin, INPUT); Serial.begin(9600);}void loop() { value = analogRead(analogpin); if (value > 130) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } delay(1000);}// 迗然雷达测距代码#include "pitches.h"#include "math.h"int value;int pin = 4;int analogpin = A0;int melody = NOTE_C2;int duration;int pause;void setup() { pinMode(pin, OUTPUT); Serial.begin(9600);}void loop() { value = analogRead(analogpin); Serial.println(value); duration = value; pause = duration * 3.30; tone(pin, melody, duration); delay(pause);}
代码功能:通过光电传感器检测环境亮度,驱动LED路灯进行自动开关控制,同时支持声波测距功能实现音乐灯光效果。
4. 自动楼道灯代码示例
int digitalpin = 8;int led = 4;int analogpin = A0;double value;int value1;void setup() { pinMode(digitalpin, INPUT); pinMode(led, OUTPUT); Serial.begin(9600);}void loop() { value = digitalRead(8); value1 = analogRead(analogpin); Serial.println(value); Serial.println(value1); if (value == HIGH && value1 > 300) { digitalWrite(led, HIGH); delay(2000); } else { digitalWrite(led, LOW); }}
代码功能:通过光电传感器和声波传感器实现楼道灯在光照和声音变化时进行自动控制。
5. 音乐灯系统代码示例
int Pin = 8;int led = 4;int soundPin = A0;int soundVal = 0;void setup() { pinMode(led, OUTPUT); Serial.begin(9600);}void loop() { soundVal = analogRead(soundPin); int brightness = max(0, min(soundVal - 300, 255)); Serial.println(brightness); digitalWrite(led, brightness); delay(100);}
代码功能:通过声音传感器检测音量变化,驱动LED灯的亮度自动随音量调整。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月20日 19时19分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
2019-03-06
【Flink】Flink 底层RPC框架分析
2019-03-06
MySQL错误日志(Error Log)
2019-03-06
解决:angularjs radio默认选中失效问题
2019-03-06
windows环境下安装zookeeper(仅本地使用)
2019-03-06
缓冲区溢出实例(一)--Windows
2019-03-06
Hadoop学习笔记—Yarn
2019-03-06
Jenkins - 部署在Tomcat容器里的Jenkins,提示“反向代理设置有误”
2019-03-06
wxWidgets源码分析(3) - 消息映射表
2019-03-06
wxWidgets源码分析(5) - 窗口管理
2019-03-06
wxWidgets源码分析(8) - MVC架构
2019-03-06
wxWidgets源码分析(9) - wxString
2019-03-06
[梁山好汉说IT] 梁山好汉和抢劫银行
2019-03-06
[源码解析] 消息队列 Kombu 之 基本架构
2019-03-06
[源码分析] 消息队列 Kombu 之 启动过程
2019-03-06
wx.NET CLI wrapper for wxWidgets
2019-03-06
ASP.NET MVC Action Filters
2019-03-06
Powershell中禁止执行脚本解决办法
2019-03-06