標(biāo)題: Arduino數(shù)字信號檢測 [打印本頁]

作者: Jo_990624    時間: 2018-6-13 10:04
標(biāo)題: Arduino數(shù)字信號檢測
int in_1 = 2;  //定義引腳為D2
int in_2 = 4;  //定義引腳為D4

int LED_G = 12;
int LED_R = 13;
int beep = 8;
int beep_en = 1;
int IO_x = 0;

int T = 1500;  //Period of the input signal (microsecond)

unsigned long duration_H;  //定義duration變量為無符號長整數(shù)型變量
unsigned long duration_L;  //定義duration變量為無符號長整數(shù)型變量
boolean value_1;
boolean value_2;


void setup()
{
  //Serial.begin(9600);  //串口波特率為9600
  pinMode(in_1, INPUT); //設(shè)置引腳為輸入模式
  pinMode(in_2, INPUT); //設(shè)置引腳為輸入模式
  pinMode(LED_G,OUTPUT);
  pinMode(LED_R,OUTPUT);
  pinMode(beep,OUTPUT);
}

void loop()
{  
  digitalWrite(LED_R,HIGH);
  digitalWrite(LED_G,LOW);  
  digitalWrite(beep,LOW);


  while(1)
  {
    //initiate
     value_1=digitalRead(in_1);//讀取電壓值
     value_2=digitalRead(in_2);//讀取電壓值
    if(value_1== HIGH)    //IO_1
    {
      IO_x = 1;
      if(beep_en > 0)      //enable beep
      {

        digitalWrite(LED_R,LOW);
        digitalWrite(LED_G,HIGH);  
        digitalWrite(beep,HIGH);
        delay(500);
        beep_en = 0;
        digitalWrite(beep,LOW);

      }
     else
      {
        digitalWrite(LED_R,LOW);
        digitalWrite(LED_G,HIGH);  
        digitalWrite(beep,LOW);   
      }   
    }

    else if(value_2==HIGH)
    {
      IO_x= 0;
      digitalWrite(LED_R,LOW);
      digitalWrite(LED_G,HIGH);
           while(1)
          {
          digitalWrite(LED_G,HIGH);
          digitalWrite(LED_R,LOW);
          duration_H = pulseIn(in_2, HIGH,T);
          if(duration_H <1)  break;
          }        
    }
     else if (IO_x>0)          //function 1
    {
        digitalWrite(LED_R,LOW);
        digitalWrite(LED_G,HIGH);  
        digitalWrite(beep,LOW);

    }
    else                        //function 2 and start
    {
      //does not work
      digitalWrite(LED_G,LOW);
      digitalWrite(LED_R,HIGH);  
      digitalWrite(beep,LOW);
    }
  }
}






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1