2019年7月3日 星期三

IR控制四個開關_v2

#include <IRremote.h>
long sw1=0xFF30CF;
long sw2=0xFF18E7;
long sw3=0xFF7A85;
long sw4=0xFF10EF;
int i;
int RECV_PIN = 2; // 使用數位腳位2接收紅外線訊號
IRrecv irrecv(RECV_PIN); // 初始化紅外線訊號輸入
decode_results results; // 儲存訊號的結構
const int led[4]={3,4,5,6};
void setup()
{
  Serial.begin(9600);
  irrecv.blink13(true); // 設為true的話,當收到訊號時,腳位13的LED便會閃爍
  irrecv.enableIRIn(); // 啟動接收
  for(i=0;i<4;i++)
    pinMode(led[i],OUTPUT);
}

void loop() {
  if (irrecv.decode(&results))          // 接收紅外線訊號並解碼
  {
    irrecv.resume();                   // 準備接收下一個訊號
    if(results.value==sw1)
    {
      for(i=0;i<4;i++)
      {
        digitalWrite(led[i],HIGH);delay(1000);
        digitalWrite(led[i],LOW);     
      }
    }
    else if(results.value==sw2)
    {
      for(i=3;i>=0;i--)
      {
        digitalWrite(led[i],HIGH);delay(1000);
        digitalWrite(led[i],LOW);     
      }
    }
    else if(results.value==sw3)
    {
      for(i=0;i<4;i++)
      {
        digitalWrite(led[i],HIGH);delay(1000);
        digitalWrite(led[i],LOW);     
      }
      for(i=3;i>=0;i--)
      {
        digitalWrite(led[i],HIGH);delay(1000);
        digitalWrite(led[i],LOW);     
      }
    }
    else if(results.value==sw4)digitalWrite(led[3],!digitalRead(led[3]));
  }
}

沒有留言:

張貼留言

algorithm

 #include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv)  { for(int j=2;j<=100;j++)//j...