8个LED的音量表 的思考
本帖最后由 hi55234 于 2015-2-26 23:46 编辑原帖:http://www.dianziaihaozhe.com/mulu/guowai/2627.html
下面的音量表电路采用两个四电压比较器(LM339),照亮了一系列的8个LED指示灯,指示音量。每个8比较器的偏置电压的增加由分压器设定为使右下LED点亮时,首先输入的是约400毫伏,或约22毫瓦的峰值在8欧姆系统。分压器的电压被设定为使得每个LED代表大约两倍的功率电平之前,当所有的LED被点亮时,这样的比例范围是从22毫瓦到大约2.5瓦特。灵敏度可与输入控制降低到读更高的水平。
我还没有建立或测试该电路,功率电平应该如下:
1个LED = 22MW
2个LED = 42MW
3个LED = 90mW的
4个LED =为175mW
5个LED =达320mW
6个LED =为650mW
7个LED = 1.2瓦
8个LED =2.5瓦特
————————————————————————————————————————————————
衍生,楼主想直接测3.5耳机音频孔出来的电压,就用这个电路,但根据其他论坛大神的描述,峰值电压最高不过1Vpp,均值不过700mVpp,显然不太适合则个阻值,目测原文作者的阻值是接在功放出口的,所以能达到这么大
现在,楼主想改成同相输入端为10mV、20mV、30mV、40mV、50mV、60mV、70mV、80mV,这种小电压的
那么问题来了,Vcc端5V,要分出80mV的,根据串联分压来说,如果R1为1200欧(8个150欧),那么R2需要73800欧
坑爹啊~~~楼主压根就没这么多的电阻(73800约要16个4.7k电阻)怎么办?
苦思冥想后,祭出一个神气,5.1V的稳压二极管,然后串联一个4.7K+1.57K(3个4.7K并联)+8个150欧
进而实现了,实测5.1V稳压管实际降压大概4.48V,剩下0.5V左右就比较好分了
http://www.tudou.com/listplay/NCZI5vbIFQE/IUKGSm4mutQ.html
——————————————————————————————————————————
另外,再附上1种单片机读音频的电路
有arduino直接一个AD输入,8个IO接8个LED就解决了,何必纠结 你这个东西叫做电平表,像你这样拿运放猛造的很罕见,一般就是一个LM386运放,再加一个LM3915就成了。
/*
纯串口控制
加入脱机控制
*/
//电机的高电平持续时间 us
int maichongjiangeMax=357;
int maichongjiangeMin=120;
//电机的高电平持续时间的初始值 120us
int maichongjiange=357;
// EN+,脱机,高电平有效
// CW+,方向
// CLK+,频率(转速)
int EN=10;
int CW=11;
int CLK=12;
//脉冲的占空比为1/maichongzhankongbi
int maichongzhankongbi=4;
////////////////////////////////////////////
int tempint;
int maichongjsq=0;//脉冲计数器
unsigned long time2=micros();
void setup(){
Serial.begin(9600);
pinMode(EN, OUTPUT);// EN+,脱机,高电平有效
pinMode(CW, OUTPUT);// CW+,方向
pinMode(CLK, OUTPUT);// CLK+,频率(转速)
digitalWrite(EN, HIGH);//电机默认脱机
digitalWrite(CW, LOW);//
digitalWrite(CLK, LOW);
for(int col=2;col<10;col++)pinMode(col, INPUT_PULLUP);
}
void loop(){
while (Serial.available() > 0) {
//丧心病狂的单字节控制,0延迟,纯ASCII分拆
//定义1 0-9表示转速,每一个表示10%
//定义2 A正转、B反转
//定义3 C联机、D脱机
tempint=Serial.read();
//调速度
if(tempint>47 && tempint< 58) maichongjiange = 625/(1.75+3.25*(tempint-48)/10);//0-1023
//调方向
else if(tempint==65)digitalWrite(CW, 0);
else if(tempint==66)digitalWrite(CW, 1);
//脱机
else if(tempint==67)digitalWrite(EN, 0);
else if(tempint==68)digitalWrite(EN, 1);
//E jiansu F jiasu
else if(tempint==69){
maichongjiange=maichongjiange+3;
if(maichongjiange>maichongjiangeMax)maichongjiange=maichongjiangeMax;
}
else if(tempint==70){
maichongjiange=maichongjiange-3;
if(maichongjiange<maichongjiangeMin)maichongjiange=maichongjiangeMin;
}
Serial.println(maichongjiange);
tempint=0;
}
for(int col=10;col>1;col--){
tempint= digitalRead(col);
if(tempint==LOW){
Serial.print("Max:");
Serial.println(col);
col=0;
}
}
//在脉冲频率无变化的时候驱动电机正常运行
maichongqudong();
}
void maichongqudong()//脉冲驱动
{
//步进电机控制脉冲
if (micros()-time2 > maichongjiange){
maichongjsq++;//每过一个“脉冲间隔”时间段,则“脉冲计数器”自增1
maichongjsq=maichongjsq%maichongzhankongbi;//对“脉冲计数器”取模,这个取摸结果实质就是对占空比的调节(占空比为1/模),以4为例,则“脉冲计数器”的变化为:0——1——2——3——0
if(maichongjsq==0)digitalWrite(CLK, HIGH);//输出控制步进电机的电平
else digitalWrite(CLK, LOW);
time2= micros();
}
}
本帖最后由 hi55234 于 2015-3-1 13:16 编辑
http://www.tudou.com/listplay/NCZI5vbIFQE/2P5KP6n270o/ 本帖最后由 hi55234 于 2015-3-1 13:16 编辑
音频电压控制电机精细版_修正音频电压与转速的关系
http://www.tudou.com/programs/view/KtN3iQ68DkY/
在16欧耳机内阻的情况下涵盖41-59db,共18db的音频变化,范围太窄,这个需要改进
页:
[1]