Blah. Read revision notes

Dependencies:   Motor Servo mbed

main.cpp

Committer:
christianjaunich
Date:
2014-10-20
Revision:
0:038660e2c0c5

File content as of revision 0:038660e2c0c5:

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

PwmOut speaker(p23); //Speaker Control //*** I changed this to 25.
BusOut myled(p5,p6,p7,p8,p11); //Data bus for LEDs
DigitalIn switch2(p16); //Switch 2
DigitalIn switch3(p17); //Switch 3
DigitalIn switch4(p18); //Switch 4
DigitalIn switch5(p19); //Switch 5
Motor motor1(p26,p29,p30); /// *** motor only seems to work on these pins. JP
Servo servo1(p21); //Flag Servo
Servo servo2(p22); //Salute Servo
int random;

int main()
{
    float servopos1=0.0; //Initializing servo position for servo1
    float servopos2=0.0; //Initializing servo position for servo2
    float motorspeed = 1; //Initializing motor speed
    int light=1; //Initializing value to be passed into LED bus
    float volume;

    while(1) {
        if((switch2==0)&&(switch3==0)&&(switch4)==0&&(switch5==0)) { //Turn off
            servopos1=0.0;
            servopos2=0.0;
            servo1=servopos1;
            servo2=servopos2;
            motor1.speed(0);
            speaker=0.0;
            light=0;
            myled=light;
        } else if((switch2==1)&&(switch3==0)&&(switch4==0)&&(switch5==0)) { //Flag raising, sounds, salute, lights
            light=1;
            speaker=0.25;
            wait(.5);
            speaker=.75;
            wait(.5);
            servopos1=.40; //Flag rotation
            servo1=servopos1;
            servo2=.5;
            if(servo1.read()==.40) {
                servo2=1.0;
            }
            while(light<32) { //Incrementing lights
                myled=light;
                light=(light*2)+1;
                wait(1.0/9.0);
            }
        } else if((switch2==0)&&(switch3==1)&&(switch4==0)&&(switch5==0)) { //Fan, lights, sounds
            motor1.speed(motorspeed); //Turns on Fan
            volume=25;
            for(light=1; light<16; light++) {
                myled=light;
                wait(.3);
                if((switch2==0)&&(switch3==0)&&(switch4==0)&&(switch5==0)) {
                    break;
                }
            }
            while(volume>0) { //Decreasing and Increasing volume in sequence
                volume=1;
                speaker = float(volume)/50.0;
                wait(.5);
                wait(.5);
                if(volume>0) {
                    volume-=2;
                } else if(volume<0) {
                    volume+=2;
                }

            }
        } else if((switch2==0)&&(switch3==0)&&(switch4==1)&&(switch5==0)) { //Siren, Building Lights
            // two tone police siren effect -  two periods or two frequencies
            speaker=0.25;
            wait(.5);
            speaker=.5;
            wait(.5);
            myled=light; //Increasing Lights
            light=(light*2)+1;
            wait(.5);
            if(light>=32) {
                light=1;
            }
        } else if((switch2==0)&&(switch3==0)&&(switch4==0)&&(switch5==1)) { //Salute and cut salute
            if(servopos2==0.0) {
                servopos2=.5;
                servo2=servopos2;
            }
        } else if(servopos2==.5) {
            servopos2=0;
            { //Cut salute
                servo2=servopos2;
            }
        }
    }
}