1回答

1收藏

【赚周年币】技术帖——Fireduino学习2、Analog I/O

#线上活动 #线上活动 2452 人阅读 | 1 人回复 | 2016-12-27

今天学习下 Analog I/O,要学习的几个函数:
analogReference()
说明

  选择ADC的基准电压(等同于可以输入电压的最大值)。Fireduino只能够选择内部基准电压,并且只有一个基准电压可以选取,为2.56V。
语法

   analogReference(INTERNAL2V56)
参数

   INTERNAL2V56 :  内部基准源,2.56V(默认)
返回值
   无
注意事项

   由于ADC的基准只有一项,实际上可以不进行配置。如果有进行配置其他选项的话,那么该配置语句是无效的,基准并不会因此改变。
analogRead()

说明

   读取模拟引脚的输入电压测量值(不可大于基准电压)。   Fireduino一共有8个10bit的ADC(逐次逼近型)输入口,分别是A0~A7。调用此函数的时候,ADC会将基准电压分成1024份,然后一份一份的叠加,   直到最接近当前模拟引脚的电压为止,此时叠加的值就是电压测量值。   所以实际上引脚上的电压值为:V = value/1024*Vef(V:实际测量电压值,value为电压测量值,即此函数的返回值,Vef为基准电压,2.56V)。
语法
   analogRead(pin)
参数
   pin:需要进行ADC采集的模拟输入引脚。(A0~A7)
返回值
   ADC测量值,取值为0~1023。   获取当前电压值的方法是:当前电压值 = (ADC测量值/1023)*  ADC基准电压值。
注意事项
   如果ADC采集对应的模拟输入引脚没有接入任何电流,那么由analogRead()返回的值将根据多项因素(例如其他模拟输入引脚,你的手靠近板子等)产生波动。
我们使用Analog I/O来进行ADC的数据采集。
  1. int analogPin = A0;
  2. int val = 0;

  3. void setup() {
  4.   // put your setup code here, to run once:
  5.   Serial.begin(9600);
  6.   Serial.println("setup");
  7. }

  8. void loop() {
  9.   // put your main code here, to run repeatedly:
  10.   float voltage;
  11.   val = analogRead(analogPin);
  12.   voltage = val/1023.0 * 2.55;
  13.   Serial.print("adc_value is ");
  14.   Serial.println(voltage);
  15.   delay(1000);
  16. }
复制代码
输出结果:


评分

参与人数 1 +15 收起 理由
loveeeboard + 15

查看全部评分

喜欢在构思妙想,电子产品DIY是工作,也是一种爱好。
分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

toofree

发表于 2016-12-27 23:30:32 | 只看该作者

消灭零回复,没有板板试
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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