查看: 2850|回复: 9

[已解决] LPC842 Lite 用mbed测量电压为什么不行?

[复制链接]
  • TA的每日心情
    郁闷
    2018-2-7 18:18
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    13

    主题

    126

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1628
    最后登录
    2021-7-13
    发表于 2016-10-25 22:22:34 | 显示全部楼层 |阅读模式
    10NXP金币
    本帖最后由 pythonworld 于 2016-10-26 19:44 编辑

    LPC824 Lite 用mbed测量电压为什么不行?没有接任何输入时测试显示为3.3V左右.接入ADXL335输出总是大于2V.
    不知道为什么?难道还需要额外的设置?
    #include "mbed.h"

    DigitalOut myled1(P0_13);
    DigitalOut myled2(P0_16);
    DigitalOut myled3(P0_17);
    Serial uart(P0_4, P0_0);

    AnalogIn myadc1(P0_6);
    AnalogIn myadc2(P0_14);
    AnalogIn myadc3(P0_23);


    int main()
    {
        while(1) {
            
            uart.printf("Value 1: %2.3f V\r\n" ,myadc1.read()*3300/1000);
            uart.printf("Value 2: %2.3f V\r\n" ,myadc2.read()*3300/1000);
            uart.printf("Value 3: %2.3f V\r\n" ,myadc3.read()*3300/1000);
            
            myled1 = 1;
            myled2 = 0;
            myled3 = 1;
            
            wait(1);
            
            myled1 = 0;
            myled2 = 1;
            myled3 = 0;
            
            wait(0.2);
        }
    }


    最佳答案

    查看完整内容

    不是的,悬空管脚上的电压受许多因素影响,查手册,ADn入口的Idd仅仅为60~90uA,这么小的电流说明输入口的内阻不高,一点点外部干扰都成为被测电压,你可以尝试用手指按住输入管脚并地,电压就会掉下来的。所以空着管脚不能说明问题,必须连接点什么吧?你说呢?还有个问题,悬空ADC输入管脚电压高,与采用什么SDK、MBED、寄存器直写;C语言、汇编、Basic等无关。 ...
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-10-25 22:22:35 | 显示全部楼层
    本帖最后由 zhjb1 于 2016-10-28 06:38 编辑
    pythonworld 发表于 2016-10-27 21:07
    Value 1: 0.036 V 接地电压为0.036V,正常应该是0V
    Value 2: 3.300 V 引脚空悬,电压不应该这么高
    Value 3: ...

    不是的,悬空管脚上的电压受许多因素影响,查手册,ADn入口的Idd仅仅为60~90uA,这么小的电流说明输入口的内阻不高,一点点外部干扰都成为被测电压,你可以尝试用手指按住输入管脚并地,电压就会掉下来的。所以空着管脚不能说明问题,必须连接点什么吧?你说呢?还有个问题,悬空ADC输入管脚电压高,与采用什么SDK、MBED、寄存器直写;C语言、汇编、Basic等无关。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-10-26 07:36:57 | 显示全部楼层
    本帖最后由 zhjb1 于 2016-10-26 07:41 编辑

    MBED默认的ADC是浮点数,数值在0~1之间,按照上式,结果为0,需要转换或者直接显示浮点数。直接显示成:uart.printf("Value 1: .5f V\r\n" ,myadc1.read());
    看看结果正确否,再转换。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-2-7 18:18
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    13

    主题

    126

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1628
    最后登录
    2021-7-13
     楼主| 发表于 2016-10-26 19:38:31 | 显示全部楼层
    zhjb1 发表于 2016-10-26 07:36
    MBED默认的ADC是浮点数,数值在0~1之间,按照上式,结果为0,需要转换或者直接显示浮点数。直接显示成:uar ...

    程序输出显示结果:
    Value 1: 3.300 V
    Value 2: 2.671 V 连接adxl334 轴输出,正常值在2V一下
    Value 3: 3.300 V
    还是不行,不知道是哪的原因。
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-10-26 21:03:44 | 显示全部楼层
    本帖最后由 zhjb1 于 2016-10-26 21:31 编辑
    pythonworld 发表于 2016-10-26 19:38
    程序输出显示结果:
    Value 1: 3.300 V
    Value 2: 2.671 V 连接adxl334 轴输出,正常值在2V一下

    不要后边的算数,直接输出浮点数看看正常否。楼主,我按照你的公式,输出是可以调的,大约是0.5xxxx~3.2xxxx范围。
    不同的是,我用的P0_20,P0_21,P0_22,P0_23这4个口。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-2-7 18:18
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    13

    主题

    126

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1628
    最后登录
    2021-7-13
     楼主| 发表于 2016-10-26 21:27:43 | 显示全部楼层
    zhjb1 发表于 2016-10-26 21:03
    不要后边的算数,直接输出浮点数看看正常否

    Value 1: 0.012 V 接地后
    Value 2: 1.000 V
    Value 3: 1.000 V
    输出结果,还是不行?奇怪。难道IO口设置为上拉了?
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-10-26 21:34:57 | 显示全部楼层
    本帖最后由 zhjb1 于 2016-10-26 21:38 编辑
    pythonworld 发表于 2016-10-26 21:27
    Value 1: 0.012 V 接地后
    Value 2: 1.000 V
    Value 3: 1.000 V

    可以先尝试外接电阻给一个电压检测,因为程序没有问题,板子要是好的,只能认为你的adxl334可能不太正常吧。
    可以将铜箔切断,外接电位器给电压试试。看a2

    按照你的公式得到的结果

    按照你的公式得到的结果
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-2-7 18:18
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    13

    主题

    126

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1628
    最后登录
    2021-7-13
     楼主| 发表于 2016-10-27 21:07:13 | 显示全部楼层
    zhjb1 发表于 2016-10-26 21:34
    可以先尝试外接电阻给一个电压检测,因为程序没有问题,板子要是好的,只能认为你的adxl334可能不太正常吧 ...

    Value 1: 0.036 V 接地电压为0.036V,正常应该是0V
    Value 2: 3.300 V 引脚空悬,电压不应该这么高
    Value 3: 1.799 V P0_23接电位器电压可以调节

    我估计mbed模拟输入端口设置为上拉而非高阻模式了。不知道对不对!
    谢谢!
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-2-7 18:18
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    13

    主题

    126

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1628
    最后登录
    2021-7-13
     楼主| 发表于 2016-10-28 12:43:22 | 显示全部楼层
    zhjb1 发表于 2016-10-28 06:27
    不是的,悬空管脚上的电压受许多因素影响,查手册,ADn入口的Idd仅仅为60~90uA,这么小的电流说明输入口的 ...

    问题已经解决了,把端口设置为非上下拉方式就可以了。详细的稍后说明。
    谢谢!
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-2-7 18:18
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    13

    主题

    126

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1628
    最后登录
    2021-7-13
     楼主| 发表于 2016-11-6 07:04:54 | 显示全部楼层
    对于模拟输入端口设置为非上下拉就可以了.程序如下:
    DigitalIn myinput1(P0_6);
    DigitalIn myinput2(P0_14);
    DigitalIn myinput3(P0_22);

    Serial uart(P0_4, P0_0);

    AnalogIn myadc1(A0);
    AnalogIn myadc2(A1);
    AnalogIn myadc3(A3);


    int main()
    {

        double x, y, z, result;
        myinput1.mode(PullNone);
        myinput2.mode(PullNone);
        myinput3.mode(PullNone);
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-2 21:50 , Processed in 0.147469 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表