标题: Arduino数字信号检测 [打印本页]

作者: Jo_990624    时间: 2018-6-13 10:04
标题: Arduino数字信号检测
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变量为无符号长整数型变量
unsigned long duration_L;  //定义duration变量为无符号长整数型变量
boolean value_1;
boolean value_2;


void setup()
{
  //Serial.begin(9600);  //串口波特率为9600
  pinMode(in_1, INPUT); //设置引脚为输入模式
  pinMode(in_2, INPUT); //设置引脚为输入模式
  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.51hei.com/bbs/) Powered by Discuz! X3.1