สอบถามทีครับ ทำไมผมกดswitch widget ในblynk แล้วทำไมservoไม่หมุนเลยครับ

สอบถามทีครับ ทำไมผมกดswitch widget ในblynk แล้วทำไมservoไม่หมุนเลยครับ 
void setup()
{
  Serial.begin(115200);
  Blynk.begin(BLYNK_AUTH, ssid, pass);
  servo1.attach(servoPin1);
  servo2.attach(servoPin2);
  servo3.attach(servoPin3);
  servo4.attach(servoPin4);
  pinMode(servoPin1, OUTPUT);
  pinMode(servoPin2, OUTPUT);
  pinMode(servoPin3, OUTPUT);
  pinMode(servoPin4, OUTPUT);
  pinMode(irSensorPin, INPUT);
  // Initialize lastRotationTime
  lastRotationTime = millis();
}
BLYNK_CONNECTED()
{
  Serial.println("Connected to Blynk server!");
  delay(5000);
  Serial.println("Pir Ready!!");
}
void loop()
{
  Blynk.run();
  if (isRotating) {
    unsigned long currentTime = millis();
    if (currentTime - rotationStartTime >= rotationDuration)
    {
      servo1.write(0);
      servo2.write(0);
      servo3.write(0);
      servo4.write(0);
      isRotating = false;
    }
  }
  if (digitalRead(irSensorPin) == LOW)
  {
    Serial.println("Object detected by IR sensor!");
    Line_Notify1(message1);
    delay(5000);
  }
}
BLYNK_WRITE(V2)
{
  int buttonState = param.asInt();
  if (buttonState == LOW && !isRotating && millis() - lastRotationTime >= rotationDuration)
  {
    Serial.println("Button 1 pressed, starting servo rotation.");
    servo1.write(45);
    isRotating = true;
    rotationStartTime = millis();
    lastRotationTime = millis();
  }
}
BLYNK_WRITE(V3)
{
  int buttonState = param.asInt();
  if (buttonState == LOW && !isRotating && millis() - lastRotationTime >= rotationDuration)
  {
    Serial.println("Button 2 pressed, starting servo rotation.");
    servo2.write(45);
    isRotating = true;
    rotationStartTime = millis();
    lastRotationTime = millis();
  }
}
BLYNK_WRITE(V4)
{
  int buttonState = param.asInt();
  if (buttonState == LOW && !isRotating && millis() - lastRotationTime >= rotationDuration)
  {
    Serial.println("Button 3 pressed, starting servo rotation.");
    servo3.write(45);
    isRotating = true;
    rotationStartTime = millis();
    lastRotationTime = millis();
  }
}
BLYNK_WRITE(V5)
{
  int buttonState = param.asInt();
  if (buttonState == LOW && !isRotating && millis() - lastRotationTime >= rotationDuration)
  {
    Serial.println("Button 4  pressed, starting servo rotation.");
    servo4.write(45);
    isRotating = true;
    rotationStartTime = millis();
    lastRotationTime = millis();
  }
}
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่