Ghost shaker
Description: In this assignment I used a wooden stick and an earplug attached to the servo motor. I then covered it with a ghost doll I made. The ghost moves forward very slowly, he actually dances better than walks.
Materials:
-arduino
-breadboard
-servo motor
-potentiometer
-wires
CODE
int servoPin = 7; // Control pin for servo motor
int pulseWidth = 0; // Amount to pulse the servo long lastPulse = 0; // the time in millisecs of the last pulse int refreshTime = 20; // the time in millisecs needed in between pulses int val; // variable used to store data from serial port
int minPulse = 500; // minimum pulse width int maxPulse = 2250; // maximum pulse width
void setup() { pinMode(servoPin, OUTPUT); // Set servo pin as an output pin pulseWidth = minPulse; // Set the motor position to the minimum Serial.begin(9600); // connect to the serial port Serial.println("Servo control program ready"); }
void loop() { val = Serial.read(); // read the serial port if (val >= '1' && val <= '9' ) { val = val - '0'; // convert val from character variable to number variable val = val - 1; // make val go from 0-8 pulseWidth = (val * (maxPulse-minPulse) / 8) + minPulse; // convert val to microseconds Serial.print("Moving servo to position "); Serial.println(pulseWidth,DEC); } updateServo(); // update servo position }
// called every loop(). // uses global variables servoPin, pulsewidth, lastPulse, & refreshTime void updateServo() { // pulse the servo again if rhe refresh time (20 ms) have passed: if (millis() - lastPulse >= refreshTime) { digitalWrite(servoPin, HIGH); // Turn the motor on delayMicroseconds(pulseWidth); // Length of the pulse sets the motor position digitalWrite(servoPin, LOW); // Turn the motor off lastPulse = millis(); // save the time of the last pulse } }
YOUTUBE VIDEO:
http://www.youtube.com/watch?v=HWUAH2ZXqr4
- Login to post comments
Drupal theme by Kiwi Themes.