I did it

Dependencies:   Motor Servo mbed

main.cpp

Committer:
goodguy8791
Date:
2017-10-05
Revision:
0:8c126e8b4c23

File content as of revision 0:8c126e8b4c23:

// Demonstrates the use of Bluetooth with each of the systems functionalities:
// Cup dispenser, dispensing drink 1, dispensing drink 2, and conveyor belt.
// This code:
// - dispenses a cup when button 1 is pressed
// - dispenses drink 1 when button 2 is pressed
// - dispenses drink 2 when button 3 is pressed
// - moves converyor belt for 4 seconds when button 4 is pressed

#include "mbed.h"
#include "Motor.h"
#include "Servo.h"

Servo poker(p22);
DigitalIn stby(p25);
Motor tread(p24, p12, p11);         // pwm, fwd, rev (H-bridge)
Motor pump(p26, p13, p14);          // pwm, fwd, rev (H-bridge)
DigitalOut tread2(p21);             // MOSFET
BusOut myled(LED1,LED2,LED3,LED4);  // check for which button is pressed
Serial blue(p28,p27);               // Bluetooth
float cupos = 0;
void cupdispense();
void drink1();
void drink2();
void treads(float time); 

int main()
{
    stby.mode(PullUp);
    poker = cupos;
    char bnum=0;
    char bhit=0;
    while(1) {
        if (cupos >=1){
            cupos = 0;
            poker = cupos;
        }
        if (blue.getc()=='!') {
            if (blue.getc()=='B') { //button data packet
                bnum = blue.getc(); //button number
                bhit = blue.getc(); //1=hit, 0=release
                if (blue.getc()==char(~('!' + 'B' + bnum + bhit))) { //checksum OK?
                    myled = bnum - '0'; //current button number will appear on LEDs
                    switch (bnum) {
                        //case '1': //number button 1
//                            if (bhit=='1') {
//                                //add hit code here
//                                cupdispense();
//                                
//                            } else {
//                                //add release code here
//                            }
//                            break;
                        case '2': //number button 2
                            if (bhit=='1') {
                                //add hit code here
                                drink1();
                            } else {
                                //add release code here
                            }
                            break;
                        case '3': //number button 3
                            if (bhit=='1') {
                                //add hit code here
                                drink2();
                            } else {
                                //add release code here
                            }
                            break;
                        case '4': //number button 4
                            if (bhit=='1') {
                                //add hit code here
                                treads(4);
                            } else {
                                //add release code here
                            }
                            break;
                        
                        default:
                            break;
                    }
                }
            }
        }
    }
}

void cupdispense(){
    //cupos += .3;
//    poker = cupos;
//    wait(0.1);
for(float p=0; p<1; p += 0.05) {
        poker = p;
        wait(1);
    }
    poker = 0;
}

void drink1(){
    pump.speed(1);
    wait(2);
    pump.speed(0);

}

void drink2(){
    pump.speed(-1);
    wait(2);
    pump.speed(0);
}

void treads(float time) {
    tread.speed(1);
    tread2 = 1;
    wait(time);
    tread.speed(0);
    tread2 = 0;
}