作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有代码可以从 arduino 播放一点声音。这首歌是用数值编码的。但是如何让它在 arduino 中播放得更响亮呢?
#include <PCM.h>
int switchPin = 8;
const unsigned char sample[] PROGMEM = {
140, 124, 130, 126, 129, 126, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 128, 128, 128,
};
void setup()
{
pinMode(switchPin, INPUT);
}
void loop()
{
if(digitalRead(switchPin) == HIGH)
{
startPlayback(sample, sizeof(sample));
}
}
最佳答案
此示例代码使用了一个使用 PCM technique 的子例程控制数字引脚打开和关闭的时间间隔(并假设这些输出引脚连接到一个简单的扬声器)。请记住,声音的频率是产生音调的原因,而音量是这些频率的振幅。所以你要问的是,要使声音更大,如何增加信号的幅度。但是由于这个简单的演示只能改变数字信号切换的时间(频率)而不是振幅(一个位是打开或关闭。一个位永远不会“真正打开” [上限在这里表示大喊大叫 :-) ] ) 所以你唯一的选择是在 Arduino 和扬声器之间添加另一层硬件以增加音调的幅度 - 也就是放大器。这可以是一些简单的东西,如 this design tutorial 中描述的运算放大器。或将扬声器替换为扬声器的输入插孔。
关于c - 在处理过程中,如何通过这段代码使音量变大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9165949/
COW 不是奶牛,是 Copy-On-Write 的缩写,这是一种是复制但也不完全是复制的技术。 一般来说复制就是创建出完全相同的两份,两份是独立的: 但是,有的时候复制这件事没多大必要
我是一名优秀的程序员,十分优秀!