motor portion of pinball project for ECE 4180 Final Project

Dependencies:   mbed Servo Motor PinDetect

Committer:
Varoon5
Date:
Tue Apr 30 04:42:11 2019 +0000
Revision:
1:f1c96924258d
Parent:
0:7bbc230e00d6
4180 final project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:7bbc230e00d6 1 // Sweep the motor speed from full-speed reverse (-1.0) to full speed forwards (1.0)
simon 0:7bbc230e00d6 2
simon 0:7bbc230e00d6 3 #include "mbed.h"
simon 0:7bbc230e00d6 4 #include "Motor.h"
Varoon5 1:f1c96924258d 5 #include "PinDetect.h"
Varoon5 1:f1c96924258d 6 #include "Servo.h"
simon 0:7bbc230e00d6 7
Varoon5 1:f1c96924258d 8 Servo myservo(p21);
Varoon5 1:f1c96924258d 9 Motor m1(p24, p17, p18); // pwm, fwd, rev
Varoon5 1:f1c96924258d 10 Motor m2(p25, p19, p20); // pwm, fwd, rev
Varoon5 1:f1c96924258d 11 PinDetect pb1(p7);
Varoon5 1:f1c96924258d 12 PinDetect pb2(p8);
Varoon5 1:f1c96924258d 13 DigitalOut myled(LED1);
Varoon5 1:f1c96924258d 14 DigitalOut myled2(LED2);
Varoon5 1:f1c96924258d 15 DigitalOut myled3(LED3);
Varoon5 1:f1c96924258d 16 DigitalOut myled4(LED4);
Varoon5 1:f1c96924258d 17
Varoon5 1:f1c96924258d 18 void pb1_hit_callback (void) {
Varoon5 1:f1c96924258d 19 myled3 = !myled3;
Varoon5 1:f1c96924258d 20 m1.speed(0.5);
Varoon5 1:f1c96924258d 21 wait(0.05);
Varoon5 1:f1c96924258d 22 m1.speed(0.0);
Varoon5 1:f1c96924258d 23 wait(0.05);
Varoon5 1:f1c96924258d 24 m1.speed(-0.5);
Varoon5 1:f1c96924258d 25 wait(0.05);
Varoon5 1:f1c96924258d 26 m1.speed(0.0);
Varoon5 1:f1c96924258d 27 }
Varoon5 1:f1c96924258d 28
Varoon5 1:f1c96924258d 29 void pb2_hit_callback (void) {
Varoon5 1:f1c96924258d 30 myled4 = !myled4;
Varoon5 1:f1c96924258d 31 m2.speed(0.5);
Varoon5 1:f1c96924258d 32 wait(0.05);
Varoon5 1:f1c96924258d 33 m2.speed(0.0);
Varoon5 1:f1c96924258d 34 wait(0.05);
Varoon5 1:f1c96924258d 35 m2.speed(-0.5);
Varoon5 1:f1c96924258d 36 wait(0.05);
Varoon5 1:f1c96924258d 37 m2.speed(0.0);
Varoon5 1:f1c96924258d 38 }
simon 0:7bbc230e00d6 39
simon 0:7bbc230e00d6 40 int main() {
Varoon5 1:f1c96924258d 41 // Use internal pullups for pushbutton
Varoon5 1:f1c96924258d 42 pb1.mode(PullUp);
Varoon5 1:f1c96924258d 43 pb2.mode(PullUp);
Varoon5 1:f1c96924258d 44 // Delay for initial pullup to take effect
Varoon5 1:f1c96924258d 45 wait(.01);
Varoon5 1:f1c96924258d 46 // Setup Interrupt callback functions for a pb hit
Varoon5 1:f1c96924258d 47 pb1.attach_deasserted(&pb1_hit_callback);
Varoon5 1:f1c96924258d 48 pb2.attach_deasserted(&pb2_hit_callback);
Varoon5 1:f1c96924258d 49 // Start sampling pb inputs using interrupts
Varoon5 1:f1c96924258d 50 pb1.setSampleFrequency();
Varoon5 1:f1c96924258d 51 pb2.setSampleFrequency();
Varoon5 1:f1c96924258d 52
Varoon5 1:f1c96924258d 53 while (1) {
Varoon5 1:f1c96924258d 54 myservo = 0.0;
Varoon5 1:f1c96924258d 55 wait(0.5);
Varoon5 1:f1c96924258d 56 myservo = -1.0;
Varoon5 1:f1c96924258d 57 wait(0.5);
simon 0:7bbc230e00d6 58 }
simon 0:7bbc230e00d6 59 }