hi55234 发表于 2015-2-26 19:23:42

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种单片机读音频的电路

Ansifa 发表于 2015-2-27 15:13:07

有arduino直接一个AD输入,8个IO接8个LED就解决了,何必纠结

喵了咪的薛定谔 发表于 2015-2-27 21:07:13

你这个东西叫做电平表,像你这样拿运放猛造的很罕见,一般就是一个LM386运放,再加一个LM3915就成了。

hi55234 发表于 2015-2-28 00:09:53




/*
纯串口控制
加入脱机控制
*/


//电机的高电平持续时间 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 11:46:52

本帖最后由 hi55234 于 2015-3-1 13:16 编辑

http://www.tudou.com/listplay/NCZI5vbIFQE/2P5KP6n270o/

hi55234 发表于 2015-3-1 13:14:14

本帖最后由 hi55234 于 2015-3-1 13:16 编辑

音频电压控制电机精细版_修正音频电压与转速的关系
http://www.tudou.com/programs/view/KtN3iQ68DkY/
在16欧耳机内阻的情况下涵盖41-59db,共18db的音频变化,范围太窄,这个需要改进
页: [1]
查看完整版本: 8个LED的音量表 的思考