fix servo glitches on low voltage

This commit is contained in:
2019-08-06 11:49:56 +03:00
parent e3e5b2cc5d
commit 6e451b3b9a

View File

@@ -8,16 +8,22 @@ Pen::Pen(int pin, int posEngaged, int posDisengaged)
void Pen::engage() { void Pen::engage() {
if (!engaged) { if (!engaged) {
servo.write(posEngaged); servo.attach(pin);
delay(5); delay(5);
servo.write(posEngaged);
delay(200);
servo.detach();
} }
engaged = true; engaged = true;
} }
void Pen::disengage() { void Pen::disengage() {
if (engaged) { if (engaged) {
servo.write(posDisengaged); servo.attach(pin);
delay(5); delay(5);
servo.write(posDisengaged);
delay(200);
servo.detach();
} }
engaged = false; engaged = false;
} }
@@ -25,8 +31,9 @@ void Pen::disengage() {
void Pen::init() { void Pen::init() {
servo.attach(pin); servo.attach(pin);
servo.write(posDisengaged); servo.write(posDisengaged);
delay(5); delay(200);
engaged = false; engaged = false;
servo.detach();
} }
bool Pen::getEngaged() { return engaged; } bool Pen::getEngaged() { return engaged; }