所以我目前有一个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);
}
答案 0 :(得分:1)
您可能启用了内部上拉电阻,因此当未连接任何内容时,它将读为高电平。
此外,这两个陈述是矛盾的:
由于某种原因,即使未连接传感器,程序也会始终读取传感器为高电平。
如果我将输出连接到带LED的面包板,我可以看到LED打开和关闭。
所以程序总是读高,但LED会打开或关闭?哪一个?
如果您手动将引脚拉到地,您的程序是否会按照预期的方式做出反应?如果是,那么你应该看看你的传感器电路。
你的传感器电路听起来很奇怪 - 你说
我的传感器有3个引脚,5VDC,接地和传感器输出。我将传感器输出和接地接头连接到PORT0的两个引脚插槽
因此传感器输出和接地连接到引脚零点? 5v应该到5v,接地应该接地,传感器输出应该到零引脚。