motor portion of pinball project for ECE 4180 Final Project
Dependencies: mbed Servo Motor PinDetect
Revision 1:f1c96924258d, committed 2019-04-30
- Comitter:
- Varoon5
- Date:
- Tue Apr 30 04:42:11 2019 +0000
- Parent:
- 0:7bbc230e00d6
- Commit message:
- 4180 final project
Changed in this revision
diff -r 7bbc230e00d6 -r f1c96924258d PinDetect.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PinDetect.lib Tue Apr 30 04:42:11 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/AjK/code/PinDetect/#cb3afc45028b
diff -r 7bbc230e00d6 -r f1c96924258d Servo.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Servo.lib Tue Apr 30 04:42:11 2019 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/simon/code/Servo/#36b69a7ced07
diff -r 7bbc230e00d6 -r f1c96924258d main.cpp --- a/main.cpp Tue Nov 23 16:19:19 2010 +0000 +++ b/main.cpp Tue Apr 30 04:42:11 2019 +0000 @@ -2,12 +2,58 @@ #include "mbed.h" #include "Motor.h" +#include "PinDetect.h" +#include "Servo.h" -Motor m(p23, p6, p5); // pwm, fwd, rev +Servo myservo(p21); +Motor m1(p24, p17, p18); // pwm, fwd, rev +Motor m2(p25, p19, p20); // pwm, fwd, rev +PinDetect pb1(p7); +PinDetect pb2(p8); +DigitalOut myled(LED1); +DigitalOut myled2(LED2); +DigitalOut myled3(LED3); +DigitalOut myled4(LED4); + +void pb1_hit_callback (void) { + myled3 = !myled3; + m1.speed(0.5); + wait(0.05); + m1.speed(0.0); + wait(0.05); + m1.speed(-0.5); + wait(0.05); + m1.speed(0.0); +} + +void pb2_hit_callback (void) { + myled4 = !myled4; + m2.speed(0.5); + wait(0.05); + m2.speed(0.0); + wait(0.05); + m2.speed(-0.5); + wait(0.05); + m2.speed(0.0); +} int main() { - for (float s= -1.0; s < 1.0 ; s += 0.01) { - m.speed(s); - wait(0.02); + // Use internal pullups for pushbutton + pb1.mode(PullUp); + pb2.mode(PullUp); + // Delay for initial pullup to take effect + wait(.01); + // Setup Interrupt callback functions for a pb hit + pb1.attach_deasserted(&pb1_hit_callback); + pb2.attach_deasserted(&pb2_hit_callback); + // Start sampling pb inputs using interrupts + pb1.setSampleFrequency(); + pb2.setSampleFrequency(); + + while (1) { + myservo = 0.0; + wait(0.5); + myservo = -1.0; + wait(0.5); } }