我有6个传感器连接到图钉A0
,A1
,A2
,A3
,A4
,A5
,我正在尝试从每个传感器获取读数。我在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(" ");
}
}
答案 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
看起来很好。你的代码是正确的。你的接线肯定有问题。