查看: 74|回复: 4

[技术] 【赚周年币】技术贴-----(4)FireduinoADC采集学习

[复制链接]

56

主题

1

好友

1807

积分

进士

Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    6 小时前
  • 签到天数: 570 天

    [LV.9]以坛为家II

    爱板会员勋章 活跃会员勋章 发帖机器勋章 在线达人勋章

    发表于 2016-12-9 13:04:56 |显示全部楼层
    本帖最后由 wambob 于 2016-12-9 13:23 编辑

    http://www.eeboard.com/bbs/thread-57695-1-1.html
         上篇用模拟驱动了OLED,接着学习ADC采集,并显示到OLED上。
         粗心的,导致ADC采集数据不对。
         先看看Fireduino上的ADC介绍吧,不能把它当成以前的mcu来看了。
    1. 选择ADC的基准电压(等同于可以输入电压的最大值)。Fireduino只能够选择内部基准电压,并且只有一个基准电压可以选取,为2.56V。
    复制代码
    例程里的是2.55v。
            读取模拟引脚的输入电压测量值(不可大于基准电压)。
           Fireduino一共有8个10bit的ADC(逐次逼近型)输入口,分别是A0~A7。调用此函数的时候,ADC会将基准电压分成1024份,然后一份一份的叠加,
          直到最接近当前模拟引脚的电压为止,此时叠加的值就是电压测量值。
          所以实际上引脚上的电压值为:V = value/1024*Vef(V:实际测量电压值,value为电压测量值,即此函数的返回值,Vef为基准电压,2.56V)。
       使用的API
    1. analogRead(pin)
    复制代码
    这和Arduino的相同。
    返回值ADC测量值,取值为0~1023。   获取当前电压值的方法是:当前电压值 = (ADC测量值/1023)*  ADC基准电压值。 当输入端悬空时,显示采集出的干扰值。
    1.JPG

    使用板载的电位器吧,注意不让引出头的电压大于2.55V。
    2.JPG

    主程序
    1. #include "SSD1306.h"
    2. char  dushu[100] ;
    3. uint8_t i;
    4. uint32_t val=0;

    5. int analogPin = A1;
    6. void setup()
    7. {  /* add setup code here */
    8.   Serial.begin(9600);
    9.         OLED_pin_Init();  
    10.   oled_init();   
    11. }

    12. void loop()
    13. {
    14.   /* add main program code here */  
    15.    OLED_Clear();
    16.    //memset(dushu,0,100);
    17.    float voltage;                  //  variable for save the voltage of pin A0
    18.    val = analogRead(analogPin);    // read the input pin
    19.    //voltage = (float)val / 1023.0 * 2.55;
    20.    sprintf(dushu,"%7.6f" , (float)val / 1023.0 * 2.55);   
    21.    //printf("%7.6f", (float)val / 1023.0 * 2.55 );
    22.    OLED_ShowString(0,0,"Fireduino",24);
    23.    //OLED_ShowString(10,25,"Hello World!",16);
    24.    OLED_ShowString(10,30,dushu,16);   
    25.    OLED_Refresh_Gram();//更新显示到OLED     
    26.    delay(1000);+-
    27.    
    28.   
    29. }
    复制代码
    下载代码时,XP系统的串口有时不好使,想死机那样,使用升级模式下载非常好,但是每次都得按Update和reset。
    Fireduino_1306.rar (8.18 KB, 下载次数: 1)
    Untitled-1.gif



    已有 1 人评分周年币 收起 理由
    loveeeboard + 15

    总评分: 周年币 + 15   查看全部评分

    回复

    使用道具 举报

    20

    主题

    0

    好友

    2630

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    开心
    18 小时前
  • 签到天数: 1151 天

    [LV.10]以坛为家III

    爱板会员勋章 活跃会员勋章 发帖机器勋章 在线达人勋章

    发表于 2016-12-9 13:26:03 |显示全部楼层
    两块板配合用很好
    回复

    使用道具 举报

    56

    主题

    1

    好友

    1807

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    6 小时前
  • 签到天数: 570 天

    [LV.9]以坛为家II

    爱板会员勋章 活跃会员勋章 发帖机器勋章 在线达人勋章

    发表于 2016-12-9 13:31:17 |显示全部楼层
    toofree 发表于 2016-12-9 13:26
    两块板配合用很好

    ,懒得给电位器接线了
    回复

    使用道具 举报

    5

    主题

    1

    好友

    712

    积分

    举人

    Rank: 4

  • TA的每日心情
    开心
    前天 09:18
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2016-12-9 14:17:43 |显示全部楼层
    谢谢分享                     
    回复

    使用道具 举报

    1552

    主题

    25

    好友

    9631

    积分

    状元

    Rank: 6Rank: 6

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 865 天

    [LV.10]以坛为家III

    活跃会员勋章 发帖机器勋章 在线之王勋章

    发表于 2016-12-9 14:22:05 |显示全部楼层
    不错,这个AD确实和别的arduino板卡不同,资料还是要仔细看的
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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

    手机版|爱板网 |网站地图  

    GMT+8, 2017-1-16 19:01 , Processed in 0.145969 second(s), 18 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部