• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

可调电压的实现

zwb 2016-03-22 浏览量:1682

需要实现一个小功能,需求是:

输入端为电压信号0.9V——4.5V, 输出端接一个灯,电压到3.4V时灯亮,电压到3.8V时灯闪烁。

具体怎么实现,望大神指导。

补充:各位的回复提供的思路都很好,受益很多。现在提高悬赏,要求完整的方案,包括代码。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个问题让我来用arduino解答,仅供参考。

    首先电源问题,如果楼主想产生最大4.5V的输入电源,使用电阻串联分压,只需要在上图中靠近电源那里串联一个1.1K的电阻即可,这样通过旋转电阻即可产生0-4.5V输入电源。

    至于控制led灯,只需要选择个数字输出口,这样根据电压值的ad采样控制即可。


    源代码:


    #define LedPin 1
    #define VolPin A0
    #define power 5.0
    #define threshold_value1  3.4  // 695= (3.4*1023)/5
    #define threshold_value2  3.8  // 777= (3.8*1023)/5
    
    int threshold_ad1 = 0;
    int threshold_ad2 = 0;
    int ad = 0;
    
    void setup()
    {
       threshold_ad1 =(int)((threshold_value1 * 1023)/power);
       threshold_ad2 =(int)((threshold_value2 * 1023)/power);
    
       pinMode(LedPin, OUTPUT);
       Serial.begin(115200);
    }
    
    void loop()
    {
       ad = analogRead(A0);
       Serial.print(ad);
    
       if(ad>=threshold_value2)
       {
          digitalWrite(LedPin, HIGH);
          delay(200);
          digitalWrite(LedPin, LOW);
          delay(200);
       }
       else if(ad=threshold_value1)
       {
          digitalWrite(LedPin, HIGH);
          delay(400);
       }
       else
       {
          digitalWrite(LedPin, LOW);
          delay(400);
       }
    }


    小于3.4V,灯不亮;3.4-3.8之间,灯常亮;大于3.8V,灯闪烁。满足楼主需求。

    如果楼主用其他MCU,原理一致,望楼主采纳。

    • 发布于 2016-03-22
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:11

  • 可以选择一款有ADC的小单片机来做电压检测,输出口连接一个发光二极管,稍微写一些代码就行了。
    • 发布于2016-03-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 这么宽电压的芯片MCU好像不知道有没有,TI的430有0.9V的,不过范围是0.9-1.65好像。

    你这个要再加工作电源了。

    还要产生3.8V的参考电压,看你提精度了,是分压还是用LDO之类的。


    • 发布于2016-03-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 标题有问题!!看要求并不是要实现可调电压输出!!而是要根据输入电压要决定灯的状态!!


    可以使用楼上的办法,可调电阻分压。一半MCU的ADC采集电压都是3.3V以下的。。首先将4.5V转换至3.3V以下,然后单片机采集改电压。。然后等效转换就行了

    • 发布于2016-03-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个很简单啊,用5V的单片机带ADC采集的,可以采集0-5V的模拟量看你精度要求,我之前用过STC12C2052AD的单片机是带两路8位AD采集的,16个引脚的,大概两块多钱:




    要精度高点的话有STC12C5A60S2,这个是带8路10位AD的,五块多钱,




    当然也可以选择其他系列,但是我觉得STC的单片机资源挺丰富的,而且官方提供的ISP下载工具自带测测程序,




    使用起来非常方便,楼主可以试下!


    至于要控制一个灯亮或者闪烁,那就更简单了……硬件电路搭建好了,直接控制IO口输出就好了:


    AD采集电路:




    LED灯输出控制:





    楼主可以在我提供的资料基础上稍做修改就可以变成你想要的了……


    • 发布于2016-03-22
    • 举报
    • 评论 0
    • 0
    • 0

  • stm8的片子更便宜,我买了块核心板才4块钱,AD啥的全都有。
    • 发布于2016-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 你怎么不说直接买个专门的模拟量采集板卡呢……
    • 发布于2016-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 确实,现成的东西一大把……我给的只是一个设计思路而已,呵呵……
    • 发布于2016-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 这里给的是atmel单片机实现思路,选择其他芯片也遵循类似的原理,况且代码都给出来了,方便楼主直接验证。搞不懂为什么要买模拟量采集卡,你的逻辑有点难懂呀。
    • 发布于2016-03-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

可调电压的实现