0

だから私は現在pic32 arduinoを持っています。私はこのことにかなり慣れていないので、ヒントをいただければ幸いです。

3 つのピン、5VDC、グランド、およびセンサー出力を備えたセンサーがあります。センサー出力とグランド ヘッダーを の 2 つのピン スロットに接続しました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

内部プルアップ抵抗が有効になっている可能性があるため、何も接続されていない場合は高く表示されます。

また、次の 2 つのステートメントは矛盾しています。

何らかの理由で、センサーが接続されていない場合でも、プログラムは常にセンサーが HIGH であることを読み取ります。

出力を LED 付きのブレッドボードに接続すると、LED のオンとオフが切り替わるのがわかります。

プログラムは常にハイを読み取りますが、LED はオンまたはオフに切り替わりますか? どちらですか?

ピンを手動でグランドに引っ張った場合、プログラムは想定どおりに反応しますか? その場合は、センサー回路を確認する必要があります。

あなたのセンサー回路は奇妙に聞こえる - あなたは言う

3 つのピン、5VDC、グランド、およびセンサー出力を備えたセンサーがあります。センサー出力とグランド ヘッダーを PORT0 の 2 つのピン スロットに接続しました。

センサー出力とグランドはピンゼロに接続されていますか?5v は 5v に接続し、グランドはグランドに接続し、センサー出力はピン 0 に接続する必要があります。

于 2013-06-13T13:55:06.267 に答える