0

所以我目前有一个 pic32 arduino。我对这些东西很陌生,所以任何提示都将不胜感激。

我有一个传感器,它有 3 个引脚、5VDC、接地和传感器输出。我将传感器输出和接地接头连接到 处的两个针槽PORT0

HIGH出于某种原因,即使传感器没有连接,程序总是读取传感器是 。

如果我将输出连接到带有 LED 的面包板,我可以看到 LED 开关打开和关闭。

这是我的代码:

const int sensor = 0; //sensor port
int sensorState = LOW;

void setup(){ 
pinMode(ledPin, OUTPUT);
pinMode(piezo, OUTPUT);
pinMode(sensor,  INPUT);
Serial.begin(9600);
}

void loop(){
sensorState = digitalRead(sensor);
if(sensorState == HIGH)
   alarm();
digitalWrite(ledPin, sensorState);
Serial.println(sensorState);
}
4

1 回答 1

1

您可能启用了内部上拉电阻,所以当没有连接时,它会读取为高电平。

此外,这两种说法是矛盾的:

出于某种原因,即使传感器未连接,程序总是读取传感器为高电平。

如果我将输出连接到带有 LED 的面包板,我可以看到 LED 开关打开和关闭。

所以程序总是读高,但 LED 会打开或关闭?哪一个?

如果您手动将引脚拉到地,您的程序是否会按照预期的方式做出反应?如果是这样,那么你应该看看你的传感器电路。

你的传感器电路听起来很奇怪——你说

我有一个传感器,它有 3 个引脚、5VDC、接地和传感器输出。我将传感器输出和接地接头连接到 PORT0 的两个引脚插槽

那么传感器输出和接地连接到引脚零?5v 应该去 5v,地应该去地,传感器输出应该去引脚零。

于 2013-06-13T13:55:06.267 回答