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);
}
}
}
|