Arduino 專案筆記 | 升降減速帶

2020-10-03 12:01:38

//#include <Servo.h>
//Servo myservo; 
//int potpin = 0;

int val ;   
int WaterPin = 3;//雨水感測器
int LED_Pin = 5;//LED燈
int Switch = 6;//繼電器引腳 繼電器輸出端 :COM - VCC;NC - 電磁閥;NO - 懸空
boolean  flag = true;

void blink_LED();
void setup() {
  Serial.begin(9600);
//  myservo.attach(6); //servo pin 9
//  myservo.write(90);  //角度為90度

  pinMode(WaterPin,INPUT);
  pinMode(LED_Pin,OUTPUT);
  pinMode(Switch,OUTPUT);
  digitalWrite(LED_Pin,LOW);
  digitalWrite(Switch,HIGH);
}

void loop() {
  val = digitalRead(WaterPin);
  Serial.print("WaterPin:");
  Serial.println(val);

  if(val == LOW && flag == true)
 {   // myservo.write(3); 
      //雨天,電磁閥接常閉COM-NC,繼電器LOW觸發,所以電磁閥斷開,回到原始狀態,上頂加速帶。
      digitalWrite(Switch,LOW); //  繼電器低電平觸發,COM-NO常開接通,電磁閥不工作,減速帶上升。
                   
      delay(200);         
      while(1)
      { blink_LED();        
        if(digitalRead(WaterPin)==HIGH)
        {
          digitalWrite(LED_Pin,LOW);
          //digitalWrite(Switch,HIGH);  //  晴天,COM-NO斷開,電磁閥接常閉COM-NC,所以電磁閥接通,電磁閥下縮。
          break;
        }
       }

       flag = false;
    }
    if(val == HIGH && flag == false)
    {  
        digitalWrite(Switch,HIGH);  //  晴天,COM-NO斷開,電磁閥接常閉COM-NC,所以電磁閥接通,電磁閥下縮。
//      myservo.write(90); 
        flag = true;
      }
      delay(10);               
}

void blink_LED()
{
    digitalWrite(LED_Pin,LOW);
    delay(200);
    digitalWrite(LED_Pin,HIGH);
    delay(200);  
}