motor portion of pinball project for ECE 4180 Final Project

Dependencies:   mbed Servo Motor PinDetect

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 // Sweep the motor speed from full-speed reverse (-1.0) to full speed forwards (1.0)
00002 
00003 #include "mbed.h"
00004 #include "Motor.h"
00005 #include "PinDetect.h"
00006 #include "Servo.h"
00007 
00008 Servo myservo(p21);
00009 Motor m1(p24, p17, p18); // pwm, fwd, rev
00010 Motor m2(p25, p19, p20); // pwm, fwd, rev
00011 PinDetect pb1(p7);
00012 PinDetect pb2(p8);
00013 DigitalOut myled(LED1);
00014 DigitalOut myled2(LED2);
00015 DigitalOut myled3(LED3);
00016 DigitalOut myled4(LED4); 
00017 
00018 void pb1_hit_callback (void) {
00019     myled3 = !myled3;
00020     m1.speed(0.5); 
00021     wait(0.05);
00022     m1.speed(0.0);
00023     wait(0.05);
00024     m1.speed(-0.5); 
00025     wait(0.05);
00026     m1.speed(0.0);
00027 }
00028 
00029 void pb2_hit_callback (void) {
00030     myled4 = !myled4;
00031     m2.speed(0.5); 
00032     wait(0.05);
00033     m2.speed(0.0);
00034     wait(0.05);
00035     m2.speed(-0.5); 
00036     wait(0.05);
00037     m2.speed(0.0);
00038 }
00039 
00040 int main() {
00041     // Use internal pullups for pushbutton
00042     pb1.mode(PullUp);   
00043     pb2.mode(PullUp);  
00044     // Delay for initial pullup to take effect
00045     wait(.01);
00046     // Setup Interrupt callback functions for a pb hit
00047     pb1.attach_deasserted(&pb1_hit_callback);
00048     pb2.attach_deasserted(&pb2_hit_callback);
00049     // Start sampling pb inputs using interrupts
00050     pb1.setSampleFrequency();
00051     pb2.setSampleFrequency();
00052     
00053     while (1) {
00054         myservo = 0.0;
00055         wait(0.5);
00056         myservo = -1.0;
00057         wait(0.5);
00058     }
00059 }