Skip to content

Instantly share code, notes, and snippets.

@lilykonings
Last active November 30, 2016 14:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lilykonings/e6c03b7d7d463ba3e53ffc9c975e62e2 to your computer and use it in GitHub Desktop.
Save lilykonings/e6c03b7d7d463ba3e53ffc9c975e62e2 to your computer and use it in GitHub Desktop.
intro to arduino: wagging a dog tail
#include <Servo.h>
int servoPin = 9;
int neutral = 0;
int happy = 1;
int scared = 2;
int attentive = 3;
class Dog {
Servo servo;
int state;
public:
Dog() {
state = neutral;
}
void Attach(int pin) {
servo.attach(pin);
}
void Detach() {
servo.detach();
}
void Default() {
servo.write(40);
}
void Happy() {
int angle;
for(angle = 130; angle < 180; angle++) {
servo.write(angle);
delay(10);
}
for(angle = 180; angle > 130; angle--) {
servo.write(angle);
delay(10);
}
}
void Scared() {
servo.write(0);
}
void Attentive() {
servo.write(110);
}
};
Dog spike;
void setup() {
Serial.begin(9600);
spike.Attach(servoPin);
spike.Default();
}
void loop() {
if (spike.state == happy) {
spike.Happy();
} else if (spike.state == scared) {
spike.Scared();
} else if (spike.state == attentive) {
spike.Listen();
} else {
spike.Default();
}
}
void serialEvent() {
while (Serial.available()) {
int new_state = Serial.parseInt();
if (Serial.read() == '\n') {
spike.state = new_state;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment