-1
私はArduino UnoでIRセンサーを使用しようとしていますが、IR信号をデコードせずにHIGHまたはLOW信号のみで状態を1または0にする必要があります。モーションセンサーもありますが、 。ArduinoのIRセンサーからHIGHまたはLOW信号を受信するにはどうすればよいですか?
int ledPin = 13; // choose the pin for the LED
int inputPin = 2; // choose the input pin (for PIR sensor)
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status
int relayPin = 4; //PIN FOR RELAY OPERATION
int irPin = 7; //IR Sensor pin
int lightState = 0;
int irVal = 0;
void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare sensor as input
pinMode(relayPin, OUTPUT);
pinMode(irPin, INPUT);
Serial.begin(9600);
}
void loop() {
irVal = digitalRead(irPin);
if (irVal == HIGH) {
lightState = 1;
Serial.println("IR received");
while(irVal == HIGH) {
irVal = digitalRead(irPin);
if(irVal == HIGH) {
irVal = LOW;
} else {
irVal = HIGH;
}
}
}
問題は何ですか? –
どのタイプのIRセンサーを使用していますか? Arduinoの0〜1023の間の0〜5Vの戻り値を持つアナログセンサー。アナログセンサを使用してバイナリをHIGH/LOWにしたい場合は、センサ値をスレッショルドにしてブール値を返す関数が必要です。 – Mepix