这个示例将演示如何用tone()命令来制作一个可以随着灯光敏感变化发出不同声响的喇叭。
硬件需求
—Arduino控制板
—8欧喇叭
—光敏电阻
—4.7K欧电阻
—100欧电阻
—面包板
—面包线
电路
喇叭正极通过100欧电阻接入9号引脚,负极接入GND。光敏电阻一端接5V,另一端接A0,并联通过4.7K欧电阻接入GND。
代码
这个示例的代码非常简单。只是用了模拟输入,然以后用map函数映映射一个范围。人耳可以听到的平率是20-20000Hz,但是120-1500是比较悦耳的。
你需要获得实际模拟输入的范围,这个电路中,模拟输入范围是400-1000,。用map()函数来改变数值,对应你的传感器范围。
void setup() {
//设置串口通信频率
Serial.begin(9600);
}
void loop() {
// 读取模拟值
int sensorReading = analogRead(A0);
// 把读取到的值打印在串口监视器上
Serial.println(sensorReading);
// map模拟输入范围 (这个案例中, 光敏电阻范围400 - 1000 )
// 对应到输出音律 (120 - 1500Hz)
// 在下面的公式里面改变最大最小值(从你实际传感器中获取)
int thisPitch = map(sensorReading, 400, 1000, 120, 1500);
// 发出音律
tone(9, thisPitch, 10);
delay(1); // 间隔1毫秒
}
//设置串口通信频率
Serial.begin(9600);
}
void loop() {
// 读取模拟值
int sensorReading = analogRead(A0);
// 把读取到的值打印在串口监视器上
Serial.println(sensorReading);
// map模拟输入范围 (这个案例中, 光敏电阻范围400 - 1000 )
// 对应到输出音律 (120 - 1500Hz)
// 在下面的公式里面改变最大最小值(从你实际传感器中获取)
int thisPitch = map(sensorReading, 400, 1000, 120, 1500);
// 发出音律
tone(9, thisPitch, 10);
delay(1); // 间隔1毫秒
}
请先
!