fan program

Dependencies:   Motor Servo mbed

Committer:
chadlewellyn
Date:
Tue Oct 20 04:17:05 2015 +0000
Revision:
0:62f2dd7d4bc2
fan program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chadlewellyn 0:62f2dd7d4bc2 1 #include "mbed.h"
chadlewellyn 0:62f2dd7d4bc2 2 #include "Motor.h"
chadlewellyn 0:62f2dd7d4bc2 3 #include "Servo.h"
chadlewellyn 0:62f2dd7d4bc2 4
chadlewellyn 0:62f2dd7d4bc2 5 int main()
chadlewellyn 0:62f2dd7d4bc2 6 {
chadlewellyn 0:62f2dd7d4bc2 7
chadlewellyn 0:62f2dd7d4bc2 8 Motor fan(p25, p27, p28); //pins that listen for commands for the motor
chadlewellyn 0:62f2dd7d4bc2 9
chadlewellyn 0:62f2dd7d4bc2 10 DigitalIn SW1(p16); //reads inputs of switches
chadlewellyn 0:62f2dd7d4bc2 11 DigitalIn SW2(p17);
chadlewellyn 0:62f2dd7d4bc2 12 DigitalIn SW3(p18);
chadlewellyn 0:62f2dd7d4bc2 13 DigitalIn SW4(p19);
chadlewellyn 0:62f2dd7d4bc2 14 DigitalIn SW5(p20);
chadlewellyn 0:62f2dd7d4bc2 15
chadlewellyn 0:62f2dd7d4bc2 16 BusOut LEDs(p5, p6, p7, p8, p11); //sends commands to LED lights
chadlewellyn 0:62f2dd7d4bc2 17
chadlewellyn 0:62f2dd7d4bc2 18 Servo servo1(p21); //assigns name to servo at pin 21
chadlewellyn 0:62f2dd7d4bc2 19 servo1 = 0; //sets servo to 0
chadlewellyn 0:62f2dd7d4bc2 20 servo1.calibrate(0.0009, 45); //calibrates servo
chadlewellyn 0:62f2dd7d4bc2 21
chadlewellyn 0:62f2dd7d4bc2 22 Servo servo2(p22); //assigns name to servo at pin 22
chadlewellyn 0:62f2dd7d4bc2 23 servo2 = 0; //sets servo to 0
chadlewellyn 0:62f2dd7d4bc2 24 servo2.calibrate(0.0009, 90); //calibrates servo
chadlewellyn 0:62f2dd7d4bc2 25
chadlewellyn 0:62f2dd7d4bc2 26 float i, j; //float variables
chadlewellyn 0:62f2dd7d4bc2 27 int led_value = 1; //makes integer variable and assigns it a value of 1
chadlewellyn 0:62f2dd7d4bc2 28 LEDs.write(led_value); //assigns LEDs the value of 1
chadlewellyn 0:62f2dd7d4bc2 29
chadlewellyn 0:62f2dd7d4bc2 30 while(1) { //infinate while loop
chadlewellyn 0:62f2dd7d4bc2 31
chadlewellyn 0:62f2dd7d4bc2 32 int S1 = SW1.read(); //assigns switch values to integer variables
chadlewellyn 0:62f2dd7d4bc2 33 int S2 = SW2.read();
chadlewellyn 0:62f2dd7d4bc2 34 int S3 = SW3.read();
chadlewellyn 0:62f2dd7d4bc2 35 int S4 = SW4.read();
chadlewellyn 0:62f2dd7d4bc2 36 int S5 = SW5.read();
chadlewellyn 0:62f2dd7d4bc2 37
chadlewellyn 0:62f2dd7d4bc2 38
chadlewellyn 0:62f2dd7d4bc2 39 if (S1 == 0 && S2 == 0 && S3 == 0 && S4 == 0 && S5 == 0) { //No switches on, centered position and no rotation
chadlewellyn 0:62f2dd7d4bc2 40 servo1 = 0.5; //servo is positioned in the middle
chadlewellyn 0:62f2dd7d4bc2 41 fan.speed(0); //fan is not moving
chadlewellyn 0:62f2dd7d4bc2 42 }
chadlewellyn 0:62f2dd7d4bc2 43
chadlewellyn 0:62f2dd7d4bc2 44
chadlewellyn 0:62f2dd7d4bc2 45
chadlewellyn 0:62f2dd7d4bc2 46 else if (S1 == 1 && S2 ==0 && S3 == 0 && S4 == 0 && S5 == 0) { //Low speed
chadlewellyn 0:62f2dd7d4bc2 47 servo1 = 0.5; //servo is in the middle
chadlewellyn 0:62f2dd7d4bc2 48 fan.speed(0.6); //fan is on a slow speed
chadlewellyn 0:62f2dd7d4bc2 49 if (led_value < 16) { //Light pattern #1
chadlewellyn 0:62f2dd7d4bc2 50 led_value = led_value * 2;
chadlewellyn 0:62f2dd7d4bc2 51 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 52 wait(0.55);
chadlewellyn 0:62f2dd7d4bc2 53 }
chadlewellyn 0:62f2dd7d4bc2 54 else {
chadlewellyn 0:62f2dd7d4bc2 55 led_value = 1; //Light pattern resets
chadlewellyn 0:62f2dd7d4bc2 56 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 57 wait(0.55);
chadlewellyn 0:62f2dd7d4bc2 58 }
chadlewellyn 0:62f2dd7d4bc2 59 }
chadlewellyn 0:62f2dd7d4bc2 60
chadlewellyn 0:62f2dd7d4bc2 61 else if (S1 == 1 && S2 == 0 && S3 == 0 && S4 == 1 && S5 == 0) { // Low speed & oscillation
chadlewellyn 0:62f2dd7d4bc2 62 for (i = 0; i <= 1; i += 0.005) {
chadlewellyn 0:62f2dd7d4bc2 63 fan.speed (0.6); //fan speed is slow
chadlewellyn 0:62f2dd7d4bc2 64 servo1 = i; //servo moves a small amount every .025 seconds
chadlewellyn 0:62f2dd7d4bc2 65 wait(0.025);
chadlewellyn 0:62f2dd7d4bc2 66 }
chadlewellyn 0:62f2dd7d4bc2 67 for (i = 1; i >= 0; i -= 0.005) {
chadlewellyn 0:62f2dd7d4bc2 68 fan.speed (0.6); //fan speed is slow
chadlewellyn 0:62f2dd7d4bc2 69 servo1 = i; //servo moves back small amount every .025 seconds
chadlewellyn 0:62f2dd7d4bc2 70 wait(0.025);
chadlewellyn 0:62f2dd7d4bc2 71 }
chadlewellyn 0:62f2dd7d4bc2 72 }
chadlewellyn 0:62f2dd7d4bc2 73 else if (S1 == 1 && S2 == 0 && S3 == 0 && S4 == 0 && S5 == 1) { //Low speed & mist
chadlewellyn 0:62f2dd7d4bc2 74 for (j = 0; j <= 1; j += 1) { //pulls the string quickly which squeezes the bottle trigger and creates mist
chadlewellyn 0:62f2dd7d4bc2 75 servo1 = 0.5; //servo is in the middle
chadlewellyn 0:62f2dd7d4bc2 76 fan.speed(0.6); //fan is at low speed
chadlewellyn 0:62f2dd7d4bc2 77 servo2 = j; //other servo pulls trigger on mist bottle
chadlewellyn 0:62f2dd7d4bc2 78 wait(2);
chadlewellyn 0:62f2dd7d4bc2 79 }
chadlewellyn 0:62f2dd7d4bc2 80 for (j = 1; j >= 0; j -= 0.05) {
chadlewellyn 0:62f2dd7d4bc2 81 servo1 = 0.5; //servo is in the middle
chadlewellyn 0:62f2dd7d4bc2 82 fan.speed(0.6); //fan is at low speed
chadlewellyn 0:62f2dd7d4bc2 83 servo2 = j; //other servo slowly releases trigger
chadlewellyn 0:62f2dd7d4bc2 84 wait(0.25);
chadlewellyn 0:62f2dd7d4bc2 85 }
chadlewellyn 0:62f2dd7d4bc2 86 }
chadlewellyn 0:62f2dd7d4bc2 87 else if (S1 == 0 && S2 == 1 && S3 == 0 && S4 == 0 && S5 == 0) { // Med speed
chadlewellyn 0:62f2dd7d4bc2 88 servo1 = 0.5; //servo is in the middle
chadlewellyn 0:62f2dd7d4bc2 89 fan.speed(0.8); //fan is at medium speed
chadlewellyn 0:62f2dd7d4bc2 90
chadlewellyn 0:62f2dd7d4bc2 91 led_value = 16; //LED pattern #2 (racetrack)
chadlewellyn 0:62f2dd7d4bc2 92 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 93 wait(0.125);
chadlewellyn 0:62f2dd7d4bc2 94 led_value = 8;
chadlewellyn 0:62f2dd7d4bc2 95 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 96 wait(0.125);
chadlewellyn 0:62f2dd7d4bc2 97 led_value = 4;
chadlewellyn 0:62f2dd7d4bc2 98 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 99 wait(0.125);
chadlewellyn 0:62f2dd7d4bc2 100 led_value = 2;
chadlewellyn 0:62f2dd7d4bc2 101 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 102 wait(0.125);
chadlewellyn 0:62f2dd7d4bc2 103 led_value = 1;
chadlewellyn 0:62f2dd7d4bc2 104 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 105 wait(0.125);
chadlewellyn 0:62f2dd7d4bc2 106
chadlewellyn 0:62f2dd7d4bc2 107 led_value = 2;
chadlewellyn 0:62f2dd7d4bc2 108 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 109 wait(0.125);
chadlewellyn 0:62f2dd7d4bc2 110 led_value = 4;
chadlewellyn 0:62f2dd7d4bc2 111 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 112 wait(0.125);
chadlewellyn 0:62f2dd7d4bc2 113 led_value = 8;
chadlewellyn 0:62f2dd7d4bc2 114 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 115 wait(0.125);
chadlewellyn 0:62f2dd7d4bc2 116 led_value = 16;
chadlewellyn 0:62f2dd7d4bc2 117 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 118 }
chadlewellyn 0:62f2dd7d4bc2 119
chadlewellyn 0:62f2dd7d4bc2 120 else if (S1 == 0 && S2 ==1 && S3 == 0 && S4 == 1 && S5 == 0) { //Med speed & oscillation
chadlewellyn 0:62f2dd7d4bc2 121 for (i = 0; i <= 1; i += 0.005) { //rotates fan slowly and smoothly
chadlewellyn 0:62f2dd7d4bc2 122 fan.speed (0.8); //fan speed is medium
chadlewellyn 0:62f2dd7d4bc2 123 servo1 = i; //fan oscillates
chadlewellyn 0:62f2dd7d4bc2 124 wait(0.025);
chadlewellyn 0:62f2dd7d4bc2 125 }
chadlewellyn 0:62f2dd7d4bc2 126 for (i = 1; i >= 0; i -= 0.005) {
chadlewellyn 0:62f2dd7d4bc2 127 fan.speed (0.8); //fan speed is medium
chadlewellyn 0:62f2dd7d4bc2 128 servo1 = i; //fan oscillates
chadlewellyn 0:62f2dd7d4bc2 129 wait(0.025);
chadlewellyn 0:62f2dd7d4bc2 130 }
chadlewellyn 0:62f2dd7d4bc2 131 }
chadlewellyn 0:62f2dd7d4bc2 132
chadlewellyn 0:62f2dd7d4bc2 133 else if (S1 == 0 && S2 == 1 && S3 == 0 && S4 == 0 && S5 == 1) { //Med speed & mist
chadlewellyn 0:62f2dd7d4bc2 134 for (j = 0; j <= 1; j += 1) { //pulls the string quickly which squeezes the bottle trigger and creates mist
chadlewellyn 0:62f2dd7d4bc2 135 servo1 = 0.5; //does not oscillate
chadlewellyn 0:62f2dd7d4bc2 136 fan.speed(0.8); //fan speed is medium
chadlewellyn 0:62f2dd7d4bc2 137 servo2 = j; //spays mist
chadlewellyn 0:62f2dd7d4bc2 138 wait(2);
chadlewellyn 0:62f2dd7d4bc2 139 }
chadlewellyn 0:62f2dd7d4bc2 140 for (j = 1; j >= 0; j -= 0.05) { //Releases string slowly
chadlewellyn 0:62f2dd7d4bc2 141 servo1 = 0.5; //does not oscillate
chadlewellyn 0:62f2dd7d4bc2 142 fan.speed(0.8); //fan speed is medium
chadlewellyn 0:62f2dd7d4bc2 143 servo2 = j; //Releases string slowly
chadlewellyn 0:62f2dd7d4bc2 144 wait(0.25);
chadlewellyn 0:62f2dd7d4bc2 145 }
chadlewellyn 0:62f2dd7d4bc2 146 }
chadlewellyn 0:62f2dd7d4bc2 147
chadlewellyn 0:62f2dd7d4bc2 148 else if (S1 == 0 && S2 == 0 && S3 ==1 && S4 == 0 && S5 == 0) { //Fast speed
chadlewellyn 0:62f2dd7d4bc2 149 servo1 = 0.5; //does not oscillate
chadlewellyn 0:62f2dd7d4bc2 150 fan.speed(0.99); //fan speed is high
chadlewellyn 0:62f2dd7d4bc2 151
chadlewellyn 0:62f2dd7d4bc2 152 int power;
chadlewellyn 0:62f2dd7d4bc2 153 power = rand() % 5; // LED pattern #3 Random LED generator
chadlewellyn 0:62f2dd7d4bc2 154 led_value = (pow(2, (float)power));
chadlewellyn 0:62f2dd7d4bc2 155 LEDs.write(led_value);
chadlewellyn 0:62f2dd7d4bc2 156 wait(0.05);
chadlewellyn 0:62f2dd7d4bc2 157 }
chadlewellyn 0:62f2dd7d4bc2 158
chadlewellyn 0:62f2dd7d4bc2 159 else if (S1 == 0 && S2 == 0 && S3 == 1 && S4 == 1 && S5 == 0) { //Fast speed & oscillation
chadlewellyn 0:62f2dd7d4bc2 160 for (i = 0; i <= 1; i += 0.005) {
chadlewellyn 0:62f2dd7d4bc2 161 fan.speed (0.99); //fan speed is high
chadlewellyn 0:62f2dd7d4bc2 162 servo1 = i; //fan oscillates
chadlewellyn 0:62f2dd7d4bc2 163 wait(0.025);
chadlewellyn 0:62f2dd7d4bc2 164 }
chadlewellyn 0:62f2dd7d4bc2 165 for (i = 1; i >= 0; i -= 0.005) {
chadlewellyn 0:62f2dd7d4bc2 166 fan.speed (0.99); //fan speed is high
chadlewellyn 0:62f2dd7d4bc2 167 servo1 = i; //fan oscillates
chadlewellyn 0:62f2dd7d4bc2 168 wait(0.025);
chadlewellyn 0:62f2dd7d4bc2 169 }
chadlewellyn 0:62f2dd7d4bc2 170 }
chadlewellyn 0:62f2dd7d4bc2 171 else if (S1 == 0 && S2 == 0 && S3 == 1 && S4 == 0 && S5 == 1) { //fast speed & mist
chadlewellyn 0:62f2dd7d4bc2 172 for (j = 0; j <= 1; j += 1) { //pulls the string quickly which squeezes the bottle trigger and creates mist
chadlewellyn 0:62f2dd7d4bc2 173 servo1 = 0.5; //does not oscillate
chadlewellyn 0:62f2dd7d4bc2 174 fan.speed(0.99); //fan speed is high
chadlewellyn 0:62f2dd7d4bc2 175 servo2 = j; //spays mist
chadlewellyn 0:62f2dd7d4bc2 176 wait(2);
chadlewellyn 0:62f2dd7d4bc2 177 }
chadlewellyn 0:62f2dd7d4bc2 178 for (j = 1; j >= 0; j -= 0.05) {
chadlewellyn 0:62f2dd7d4bc2 179 servo1 = 0.5; //does not oscillate
chadlewellyn 0:62f2dd7d4bc2 180 fan.speed(0.99); //fan speed is high
chadlewellyn 0:62f2dd7d4bc2 181 servo2 = j; //releases string slowly
chadlewellyn 0:62f2dd7d4bc2 182 wait(0.25);
chadlewellyn 0:62f2dd7d4bc2 183 }
chadlewellyn 0:62f2dd7d4bc2 184 }
chadlewellyn 0:62f2dd7d4bc2 185
chadlewellyn 0:62f2dd7d4bc2 186
chadlewellyn 0:62f2dd7d4bc2 187 }
chadlewellyn 0:62f2dd7d4bc2 188 }