OzerDrive / Mbed 2 deprecated mbed_blinky

Dependencies:   mbed Motor

main.cpp

Committer:
mksaga
Date:
2019-05-01
Revision:
8:e0cd3bd2d051
Parent:
7:dbe5b06987d7
Child:
9:a9d4cb88f0b0

File content as of revision 8:e0cd3bd2d051:

/**
AUTO-PILLOW : ESE 350 Spring 2019
Fatih Ozer and Mohamed Aly
idea from Dr. Nalaka

last updated: 01 May 2019
*/

#include "mbed.h"

DigitalOut motor_pin_1(p23);
DigitalOut motor_pin_2(p22);
DigitalOut motor_enable(p21);

DigitalOut solenoid1(p12);
DigitalOut solenoid2(p11);
DigitalOut solenoid3(p7);
DigitalOut solenoid4(p5);

AnalogIn flexN(p19);
AnalogIn flexE(p16);
AnalogIn flexS(p17);
AnalogIn flexW(p20);
AnalogIn flexC(p18);

void run_pump(int secs)
{
    motor_enable = 1;
    motor_pin_1 = 0;
    motor_pin_2 = 1;
    
    int i = 0;
    while(i < secs * 105) { i++; wait_ms(10);}//printf("%d | ", i);}
    motor_pin_2 = 0;
}

void open_v1() {solenoid1 = 1;}
void seal_v1() {solenoid1 = 0;}

void open_v2() {solenoid2 = 1;}
void seal_v2() {solenoid2 = 0;}

void open_v3() {solenoid3 = 1;}
void seal_v3() {solenoid3 = 0;}

void open_v4() {solenoid4 = 1;}
void seal_v4() {solenoid4 = 0;}

void activate_v(int id) {
    if (id == 1) {
        seal_v2();seal_v3();seal_v4();open_v1();
    } else if (id == 2) {
        seal_v1();seal_v3();seal_v4();open_v2();  
    } else if (id == 3) {
        seal_v1();seal_v2();seal_v4();open_v3();  
    } else if (id == 4) {
        seal_v1();seal_v3();seal_v2();open_v4();  
    } 
}

int main() {
    //run_pump(10);
    float fN;
    float fE;
    float fS;
    float fW;
    float fC;
    
    while(1) { 
        /*
        open_v1();wait(1);
        seal_v1();wait(1);
        open_v2();wait(1);
        seal_v2();wait(1);
        open_v3();wait(1);
        seal_v3();wait(1);
        open_v4();wait(1);
        run_pump(5);
        seal_v4();wait(1);
        */
        /*
        activate_v(1);
        run_pump(5);
        wait(1);
        */
        
        //activate_v(4);
        /*
        open_v4();
        wait(1);
        seal_v4();
        wait(1);
        */
        
        /*
        fN = flexN.read();
        fE = flexE.read();
        fS = flexS.read();
        fW = flexW.read();
        fC = flexC.read();
        //wait(1);
        printf("       %1.2f\n", fN);
        printf("%1.2f   %1.2f    %1.2f\n", fW, fC, fE);
        printf("       %1.2f\n\n", fS);
        wait_ms(2000);
        */
        //activate_v(1);
        //while(1) { run_pump(15); }
        
        for (int i=1; i<=4; i++) {
            activate_v(i);
            run_pump(5);
            wait(1);
        }
        
        
        
    }
    
    /*
    wait(5);
    open_v1();
    run_pump(4);
    seal_v1();
    run_pump(5);
    */
    /*
    while(1) {
        solenoid = 1;
        wait(1);
        solenoid = 0;
        wait(1);
        printf("\nhere for barakah\n");
    }
    */
    printf("\nhere for barakah\n");
}

//https://core-electronics.com.au/tutorials/solenoid-control-with-arduino.html
//https://itp.nyu.edu/physcomp/labs/motors-and-transistors/dc-motor-control-using-an-h-bridge/