Code for mbed on robot that polls DigitalIn pins to control robot movement via 2 DC motors

Dependencies:   mbed Motor

Committer:
aschwartz44
Date:
Fri Dec 06 04:17:08 2019 +0000
Revision:
0:1dadb580b75f
Publish repo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aschwartz44 0:1dadb580b75f 1 #include "mbed.h"
aschwartz44 0:1dadb580b75f 2 #include "Motor.h"
aschwartz44 0:1dadb580b75f 3
aschwartz44 0:1dadb580b75f 4 Motor leftWheel(p23, p16, p15); //pwm, fwd(Digital), rev(Digital)
aschwartz44 0:1dadb580b75f 5 Motor rightWheel(p24, p18, p17); //pwm, fwd(Digital), rev(Digital)
aschwartz44 0:1dadb580b75f 6 DigitalIn fwd(p5);
aschwartz44 0:1dadb580b75f 7 DigitalIn rev(p6);
aschwartz44 0:1dadb580b75f 8 DigitalIn turnL(p7);
aschwartz44 0:1dadb580b75f 9 DigitalIn turnR(p8);
aschwartz44 0:1dadb580b75f 10
aschwartz44 0:1dadb580b75f 11 DigitalOut led1(LED1);
aschwartz44 0:1dadb580b75f 12 DigitalOut led2(LED2);
aschwartz44 0:1dadb580b75f 13 DigitalOut led3(LED3);
aschwartz44 0:1dadb580b75f 14 DigitalOut led4(LED4);
aschwartz44 0:1dadb580b75f 15
aschwartz44 0:1dadb580b75f 16
aschwartz44 0:1dadb580b75f 17 void moveForward(float time)
aschwartz44 0:1dadb580b75f 18 {
aschwartz44 0:1dadb580b75f 19 leftWheel.speed(0.6);
aschwartz44 0:1dadb580b75f 20 rightWheel.speed(0.6);
aschwartz44 0:1dadb580b75f 21 wait(time);
aschwartz44 0:1dadb580b75f 22 leftWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 23 rightWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 24 }
aschwartz44 0:1dadb580b75f 25
aschwartz44 0:1dadb580b75f 26 void moveBackward(float time)
aschwartz44 0:1dadb580b75f 27 {
aschwartz44 0:1dadb580b75f 28 leftWheel.speed(-0.6);
aschwartz44 0:1dadb580b75f 29 rightWheel.speed(-0.6);
aschwartz44 0:1dadb580b75f 30 wait(time);
aschwartz44 0:1dadb580b75f 31 leftWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 32 rightWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 33 }
aschwartz44 0:1dadb580b75f 34
aschwartz44 0:1dadb580b75f 35 void turnLeft(float time)
aschwartz44 0:1dadb580b75f 36 {
aschwartz44 0:1dadb580b75f 37 leftWheel.speed(-0.6);
aschwartz44 0:1dadb580b75f 38 rightWheel.speed(0.6);
aschwartz44 0:1dadb580b75f 39 wait(time);
aschwartz44 0:1dadb580b75f 40 leftWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 41 rightWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 42 }
aschwartz44 0:1dadb580b75f 43
aschwartz44 0:1dadb580b75f 44 void turnRight(float time)
aschwartz44 0:1dadb580b75f 45 {
aschwartz44 0:1dadb580b75f 46 leftWheel.speed(0.6);
aschwartz44 0:1dadb580b75f 47 rightWheel.speed(-0.6);
aschwartz44 0:1dadb580b75f 48 wait(time);
aschwartz44 0:1dadb580b75f 49 leftWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 50 rightWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 51 }
aschwartz44 0:1dadb580b75f 52
aschwartz44 0:1dadb580b75f 53 int main()
aschwartz44 0:1dadb580b75f 54 {
aschwartz44 0:1dadb580b75f 55 led1 = 0;
aschwartz44 0:1dadb580b75f 56 led2 = 0;
aschwartz44 0:1dadb580b75f 57 led3 = 0;
aschwartz44 0:1dadb580b75f 58 led4 = 0;
aschwartz44 0:1dadb580b75f 59 leftWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 60 rightWheel.speed(0.0);
aschwartz44 0:1dadb580b75f 61
aschwartz44 0:1dadb580b75f 62 while (1)
aschwartz44 0:1dadb580b75f 63 {
aschwartz44 0:1dadb580b75f 64 if (fwd)
aschwartz44 0:1dadb580b75f 65 {
aschwartz44 0:1dadb580b75f 66 led2 = 1;
aschwartz44 0:1dadb580b75f 67 led3 = 1;
aschwartz44 0:1dadb580b75f 68 moveForward(0.2);
aschwartz44 0:1dadb580b75f 69 led2 = 0;
aschwartz44 0:1dadb580b75f 70 led3 = 0;
aschwartz44 0:1dadb580b75f 71 }
aschwartz44 0:1dadb580b75f 72 if (rev)
aschwartz44 0:1dadb580b75f 73 {
aschwartz44 0:1dadb580b75f 74 led1 = 1;
aschwartz44 0:1dadb580b75f 75 led4 = 1;
aschwartz44 0:1dadb580b75f 76 moveBackward(0.2);
aschwartz44 0:1dadb580b75f 77 led1 = 0;
aschwartz44 0:1dadb580b75f 78 led4 = 0;
aschwartz44 0:1dadb580b75f 79 }
aschwartz44 0:1dadb580b75f 80 if (turnL)
aschwartz44 0:1dadb580b75f 81 {
aschwartz44 0:1dadb580b75f 82 led1 = 1;
aschwartz44 0:1dadb580b75f 83 led2 = 1;
aschwartz44 0:1dadb580b75f 84 turnLeft(0.2);
aschwartz44 0:1dadb580b75f 85 led1 = 0;
aschwartz44 0:1dadb580b75f 86 led2 = 0;
aschwartz44 0:1dadb580b75f 87 }
aschwartz44 0:1dadb580b75f 88 if (turnR)
aschwartz44 0:1dadb580b75f 89 {
aschwartz44 0:1dadb580b75f 90 led3 = 1;
aschwartz44 0:1dadb580b75f 91 led4 = 1;
aschwartz44 0:1dadb580b75f 92 turnRight(0.2);
aschwartz44 0:1dadb580b75f 93 led3 = 0;
aschwartz44 0:1dadb580b75f 94 led4 = 0;
aschwartz44 0:1dadb580b75f 95 }
aschwartz44 0:1dadb580b75f 96 }
aschwartz44 0:1dadb580b75f 97 }