【赚周年币】技术帖——Fireduino学习2、Analog I/O
#线上活动
2452 人阅读
|
1 人回复
|
2016-12-27
TA的每日心情 | 怒 2023-7-25 22:49 |
|---|
签到天数: 385 天 连续签到: 1 天 [LV.9]以坛为家II
状元
- 积分
- 5382
|
|
今天学习下 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的数据采集。- int analogPin = A0;
- int val = 0;
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- Serial.println("setup");
- }
- void loop() {
- // put your main code here, to run repeatedly:
- float voltage;
- val = analogRead(analogPin);
- voltage = val/1023.0 * 2.55;
- Serial.print("adc_value is ");
- Serial.println(voltage);
- delay(1000);
- }
复制代码 输出结果:
|
评分
-
查看全部评分
|
|
喜欢在构思妙想,电子产品DIY是工作,也是一种爱好。
|
|
|
|
|
|
TA的每日心情 | 开心 昨天 00:06 |
|---|
签到天数: 4274 天 连续签到: 3 天 [LV.Master]伴坛终老
司徒
- 积分
- 49119
    

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