【赚周年币】技术贴-----(4)FireduinoADC采集学习
#线上活动
2417 人阅读
|
4 人回复
|
2016-12-09
TA的每日心情 | 奋斗 2020-5-27 15:41 |
|---|
签到天数: 868 天 连续签到: 1 天 [LV.10]以坛为家III
进士
- 积分
- 2900
    

|
|
本帖最后由 wambob 于 2016-12-9 13:23 编辑
https://www.cirmall.com/bbs/thread-57695-1-1.html
上篇用模拟驱动了OLED,接着学习ADC采集,并显示到OLED上。
粗心的,导致ADC采集数据不对。
先看看Fireduino上的ADC介绍吧,不能把它当成以前的mcu来看了。- 选择ADC的基准电压(等同于可以输入电压的最大值)。Fireduino只能够选择内部基准电压,并且只有一个基准电压可以选取,为2.56V。
复制代码 例程里的是2.55v。
读取模拟引脚的输入电压测量值(不可大于基准电压)。
Fireduino一共有8个10bit的ADC(逐次逼近型)输入口,分别是A0~A7。调用此函数的时候,ADC会将基准电压分成1024份,然后一份一份的叠加,
直到最接近当前模拟引脚的电压为止,此时叠加的值就是电压测量值。
所以实际上引脚上的电压值为:V = value/1024*Vef(V:实际测量电压值,value为电压测量值,即此函数的返回值,Vef为基准电压,2.56V)。
使用的API这和Arduino的相同。
返回值ADC测量值,取值为0~1023。 获取当前电压值的方法是:当前电压值 = (ADC测量值/1023)* ADC基准电压值。 当输入端悬空时,显示采集出的干扰值。
使用板载的电位器吧,注意不让引出头的电压大于2.55V。
主程序- #include "SSD1306.h"
- char dushu[100] ;
- uint8_t i;
- uint32_t val=0;
- int analogPin = A1;
- void setup()
- { /* add setup code here */
- Serial.begin(9600);
- OLED_pin_Init();
- oled_init();
- }
- void loop()
- {
- /* add main program code here */
- OLED_Clear();
- //memset(dushu,0,100);
- float voltage; // variable for save the voltage of pin A0
- val = analogRead(analogPin); // read the input pin
- //voltage = (float)val / 1023.0 * 2.55;
- sprintf(dushu,"%7.6f" , (float)val / 1023.0 * 2.55);
- //printf("%7.6f", (float)val / 1023.0 * 2.55 );
- OLED_ShowString(0,0,"Fireduino",24);
- //OLED_ShowString(10,25,"Hello World!",16);
- OLED_ShowString(10,30,dushu,16);
- OLED_Refresh_Gram();//更新显示到OLED
- delay(1000);+-
-
-
- }
复制代码 下载代码时,XP系统的串口有时不好使,想死机那样,使用升级模式下载非常好,但是每次都得按Update和reset。
|
评分
-
查看全部评分
|
|
|
|
|
|
|
|
TA的每日心情 | 开心 8 小时前 |
|---|
签到天数: 4272 天 连续签到: 1 天 [LV.Master]伴坛终老
司徒
- 积分
- 49080
    

|
沙发
toofree
发表于 2016-12-9 13:26:03
|
只看该作者
|
|
|
|
|
|
|
|
TA的每日心情 | 奋斗 2020-5-27 15:41 |
|---|
签到天数: 868 天 连续签到: 1 天 [LV.10]以坛为家III
进士
- 积分
- 2900
    

|
板凳
wambob
发表于 2016-12-9 13:31:17
|
只看该作者
toofree 发表于 2016-12-9 13:26 ![]()
两块板配合用很好
,懒得给电位器接线了 |
|
|
|
|
|
|
|
|
TA的每日心情 | 擦汗 2017-10-15 13:21 |
|---|
签到天数: 183 天 连续签到: 1 天 [LV.7]常住居民III
进士
- 积分
- 1300
|
地板
jackten
发表于 2016-12-9 14:17:43
|
只看该作者
|
|
|
|
|
|
|
|
TA的每日心情 | 衰 2025-9-24 08:50 |
|---|
签到天数: 1493 天 连续签到: 1 天 [LV.10]以坛为家III
翰林
- 积分
- 13489
  
|
5#
wudianjun2001
发表于 2016-12-9 14:22:05
|
只看该作者
|
不错,这个AD确实和别的arduino板卡不同,资料还是要仔细看的 |
|
|
|
|
|
|
|
|