
PKU-电子系统基础训练-实验五Code-声光检测与控制
发布日期:2021-05-08 03:42:13
浏览次数:28
分类:精选文章
本文共 2569 字,大约阅读时间需要 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灯的亮度自动随音量调整。