Hi, I have a project wherein the servo will be triggered after a pre set time using a Real Time Clock. The servo motor will "turn off" after 60 seconds. But the servo motor is still generating heat. Why is that? Here's my code.
C:
#include <DS1307.h>
#include <Servo.h>
Servo myservo;
int setHour = 22;
int setMin = 26;
int pos=0;
int uled = 9;
DS1307 rtc(SDA, SCL);
Time t;
void start();
void setup()
{
pinMode(uled, OUTPUT);
Serial.begin(9600);
rtc.begin();
myservo.attach(9);
}
void loop()
{
t = rtc.getTime();
Serial.print(rtc.getDOWStr());
Serial.print(" ");
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
Serial.println(rtc.getTimeStr());
if (t.hour == setHour && t.min == setMin)
{
start();
}
else if (t.hour != setHour && t.min != setMin)
{
delay(250);
myservo.detach();
}
}
void start()
{
{
for (pos = 0; pos <= 60; pos += 1) {
myservo.write(pos);
delay(10);
}
for (pos = 60; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(10);
}
}
}