Assignment: DC Motor: Actuation Assignment 1
Collaborators:
Description
I wanted to make something active and interesting using the motor. I decided to try to actuate a cheap spider ring. I tried using cork, using rubber bands, using posterboard, but nothing worked quite right. The problem was that the motor did not have sufficient torque, so by the time I cranked it up high enough to overcome rotational inertia and get the spiders moving, they would end up spinning wildly then getting tangled up in the motor.
In the end, I realized that my best option was not to use the full rotational functionality of the motor, but to allow partial rotation and gravity to counteract each other and provide a sort of jerky motion to the system. In order to do this, I needed a relatively large inertial problem for the motor and the proper code. I settled on a piece of cork (to transfer most of the rotational force of the motor) attached to a coffee stirrer, that acted as the rail on which I hung my spiders. After that, it was just a matter of finding the proper amount of motor output to use and the delays to incorporate.
Components Used
Images and Video
![]()
DC Motor connection (software controls actuation, so there is no input device)
![]()
An overview of the setup
![]()
A closeup of the motor setup.
Spider-ring puppet show - DC Motor in action
A video of the system in action.
Arduino Code
/*
* Make a DC motor sporadically rotate an object
* with non-trivial rotation inertia. Designed
* for an array of plastic spiders hanging from
* string for Lab assignment 6.
*
* Seth Horrigan
*/
int motorPin = 9; // select the pin for the Motor
void setup() {
Serial.begin(9600);
}
void loop() {
//Write between 75 and 125 to DC Motor
analogWrite(motorPin, 100);
//Turn the motor on for 100-250 ms
delay(150 + random(200));
analogWrite(motorPin, 0);
//Turn the motor off for 100-2600 ms
delay(100 + random(2500));
}