Orbital Shaker
From Hackteria Wiki
How to build it
Dimensions
Electronics
- Arduino
- l293 h-bridge
- Stepper motor, 17PM 1.8° see datasheet File:Stepper 17PM 18.pdf
Arduino Code
/* * CIRC-22 Controlling a Stepper Motor - Using an L293 * * A stepper motor will go forward one rotation then back another * Using the in built stepper motor library. * * Arduino Stepper Library Reference - http://www.arduino.cc/en/Reference/Stepper * * For more details and links visit: http://tinyurl.com/nsuwln */ #include <Stepper.h> #define STEPS 200 //the number of steps for one rotation (this is motor dependant) //if unsure 200 is a good starting point and the value can be determined //experimentally Stepper stepper(STEPS, 2, 3, 4, 5); //declares a stepper motor with coil A connected to out 1 and out 2 (arduino pin 2 and 3) //and coil B connected to out 3 and out 4 (arduino pin 4 and 5) int rounds = 2; int dir = 1; int count = 0; int val = 1; int wait = 500; const int enable12 = 9; //bridge 1 and 2 enable (pin 1 on the 16 pin IC) const int enable34 = 10; //bridge 3 and 4 enable (pin 9 on the 16 pin IC) void setup() { pinMode(enable12, OUTPUT); //Set the enable12 pin to Output pinMode(enable34, OUTPUT); //Set the enable34 pin to Output digitalWrite(enable12, HIGH); //Set the enable12 pin HIGH to turn the bridges on digitalWrite(enable34, HIGH); //Set the enable34 pin HIGH to turn the bridges on stepper.setSpeed(33); // set the speed of the motor to 50 RPMs Serial.begin(9600); } void loop() { val = (1+(analogRead(0)>>3)); stepper.setSpeed(val); // set the speed of the motor to 50 RPMs stepper.step(dir); //Rotate the motor forward 1 step in a direction if (count == STEPS * rounds) { dir = dir * -1; count = 0; delay(wait); } count = count + 1; }
Maybe try something with the AccelStepper Library? http://www.open.com.au/mikem/arduino/AccelStepper/classAccelStepper.html#details
More Shakers
Links
inspired by this entry on thingyverse by jmil http://www.thingiverse.com/thing:5045