motor portion of pinball project for ECE 4180 Final Project
Dependencies: mbed Servo Motor PinDetect
Diff: main.cpp
- Revision:
- 1:f1c96924258d
- Parent:
- 0:7bbc230e00d6
--- 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); } }