User:S8brown

From Robert-Depot
Revision as of 18:48, 11 June 2009 by S8brown (talk | contribs)

Jump to: navigation, search

Hi I'm Seth.

For my midterm project, I created a tilt sensing motor. I made two tilt sensors out of ball bearings and bic pens and positioned them on either side of the motor at different angles. When the motor/device is tilted in one direction, it will spin clockwise, and when tilted the other direction, counter-clockwise. Originally I wanted to control a toy that would fall over and correct itself, but the motor it used takes a little more power than I was able to supply directly from the microprocessor, so this might be considered to be a prototype. As for the aesthetic of the device, it would be fitted to the duty it was designed to perform such as a handle for a fishing pole, etc. For testing, I affixed the components to a toilet paper tube with the tilt sensors pointing up a little bit so that they won't always be triggering.

(I let my friend borrow my Arduino, so there aren't any pictures of the "device" as a whole, but here are the main components!)

Photo.png

Photo2.png

And Here's the code!


   int turn1 = 12;            // choose the pins for controlling direction 
int turn2 = 13;
int tilt1 = 4; // choose the input pin (for the tilt sensors)
int tilt2 = 5;
int val1 = 0; // variable for reading the pin status
int val2 = 0;
   void setup() {
pinMode(turn1, OUTPUT); // declare turn pins as output
pinMode(turn2, OUTPUT);
pinMode(tilt1, INPUT); // declare tilt sensors as input
pinMode(tilt2, INPUT);
digitalWrite(0,HIGH); // write a HIGH to allow for current to flow through pin
digitalWrite(1,HIGH);
}
   void loop(){
     val1 = digitalRead(tilt1);  // read input value
     val2 = digitalRead(tilt2);
 
     if (val1 == HIGH) {         // if tilted, turn the motor!
       pinMode(turn1,OUTPUT);    // turn the pins on
       pinMode(turn2,OUTPUT);    
       digitalWrite(turn1, LOW);  // turn the motor!
       digitalWrite(turn2, HIGH);
     }
     if (val2 == HIGH) {         // if tilted, turn the motor!
       pinMode(turn1,OUTPUT);     // turn the pins on
       pinMode(turn2,OUTPUT);
       digitalWrite(turn1, HIGH);   // turn the motor the other way!
       digitalWrite(turn2, LOW);
     }
     if(val1 != HIGH && val2 != HIGH){ // if it's not tilted either way
       pinMode(turn1,INPUT);   // turn the output pins "off"
       pinMode(turn2,INPUT);
    }
   }


Other Projects