for循环中的analogread()函数

时间:2014-01-22 05:56:39

标签: arduino

我有6个传感器连接到图钉A0A1A2A3A4A5,我正在尝试从每个传感器获取读数。我在for循环中有一个analogread()函数,它不起作用。

如果我只是在A0处触发传感器,即使它们未被触发,所有其他传感器也将具有与该传感器相同的读数。我使用电压表来测试每个引脚的电压,并且在触发A0传感器时仅获得A0的电压。所以我认为这是一个编码问题。

这是我的代码:

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0~5:
  for(int i = 0; i < 6; i++){
    int sensorValue0 = analogRead(i);  
    delay(700);

    // Convert the analog reading (which goes from 0 - 1023) to voltage range (0 - 5V);
    float voltage0 = sensorValue0 * (5.0 / 1023.0);

    // print out the value you read:
    Serial.print(voltage0);Serial.print("    i = ");
    Serial.print(i);Serial.print("   ; ");
    if (i == 5) Serial.println("     ");
  }  
}

1 个答案:

答案 0 :(得分:0)

我只是设置了一些分压器,它们由各种R1和R2 = 1k的组合组成,并将它们连接到Arduino的模拟输入端。使用您的代码,我收到了以下数据(S0 =原始读数,V0 =计算电压)

R1    S0    V0
220   841   4.11
470   695   3.40
1k    511   2.50
2k2   318   1.55
4k7   179   0.87
6k8   128   0.63       

看起来很好。你的代码是正确的。你的接线肯定有问题。