สอบถามทีครับ ทำไมผมกด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();
}
}
สอบถามทีครับ ทำไมผมกด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();
}
}