arduino中模拟信号的测量

这是我学习所用的开发板,首先,我们用单芯线将5V和A0连接起来:

以下是代码

#define analogInPin 0    //Analog signal input pin 
int sensorValue = 0;    //Store the most recent measured numeric variables
void setup()
{
  Serial.begin(9600);    //RS-232 set the computer output frequency
}

void loop()
{
   //read analog signal value of pin
   sensorValue = analogRead(analogInPin);
   //show on the Serial Monitor
   Serial.print("Value = ");
   Serial.println(sensorValue);
   
   delay(1000);
}

运行结果:

最后是验证公式:

待测信号=测量值/1023×参考电压(5V)


接下来我们将3.3V和A0引脚连接起来进行测试但是,显示的Value值很不稳定。

此时,我们可以通过取平均值de办法解决,代码如下:

#define analogInPin 0    //Analog signal input pin 
int sensorValue = 0;    //Store the most recent measured numeric variables
void setup()
{
  Serial.begin(9600);    //RS-232 set the computer output frequency
}

void loop()
{
   //read analog signal value of pin
   sensorValue = analogRead(analogInPin);
   sensorValue += analogRead(analogInPin);
   sensorValue += analogRead(analogInPin);
   sensorValue += analogRead(analogInPin);
   sensorValue += analogRead(analogInPin);
   sensorValue += analogRead(analogInPin);
   sensorValue += analogRead(analogInPin);
   sensorValue += analogRead(analogInPin);
   //show on the Serial Monitor
   Serial.print("Value = ");
   Serial.println(sensorValue/8);
   
   delay(1000);
}

当然,还有一种信任制的方法:

sensorValue = 0.7*sensorValue + 0.3 * analogRead(analogInPin);

第一次取得的值占7成,第二次取得的值占3成。若各占5成,就等同于取平均值的方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值