Dependencies:   mbed Servo

Committer:
cdaszynski
Date:
Wed Apr 17 16:26:10 2019 +0000
Revision:
2:dd5a887a6990
Parent:
1:f6c866aedc5e
WorkingLEDCODE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cdaszynski 2:dd5a887a6990 1 #include "mbed.h"
cdaszynski 0:560e97bbc0c0 2 #include <stdio.h>
cdaszynski 1:f6c866aedc5e 3 #include "Servo.h"
cdaszynski 0:560e97bbc0c0 4
cdaszynski 1:f6c866aedc5e 5 AnalogIn ldr(A3); //no filter
cdaszynski 1:f6c866aedc5e 6 AnalogIn ldrfilter(A6); //filter
cdaszynski 1:f6c866aedc5e 7 //DigitalOut myLED(LED3);
cdaszynski 1:f6c866aedc5e 8 //DigitalOut output(D3);
cdaszynski 1:f6c866aedc5e 9 Servo myservo(D3);
cdaszynski 1:f6c866aedc5e 10
cdaszynski 1:f6c866aedc5e 11 //VALFILTER is the value read in at the filtered photoresistor
cdaszynski 1:f6c866aedc5e 12 //VAL is the value read in at the regular photoresistor
cdaszynski 0:560e97bbc0c0 13
cdaszynski 2:dd5a887a6990 14 int main()
cdaszynski 2:dd5a887a6990 15 {
cdaszynski 1:f6c866aedc5e 16 myservo.write(0);
cdaszynski 2:dd5a887a6990 17
cdaszynski 1:f6c866aedc5e 18 float valfilter[50],val[50],voltfilter[50],volt[50];
cdaszynski 1:f6c866aedc5e 19 int countfilter = 0;
cdaszynski 1:f6c866aedc5e 20 int countnorm = 0;
cdaszynski 2:dd5a887a6990 21 for(int i=0; i<50; i++) {
cdaszynski 1:f6c866aedc5e 22 valfilter[i]= ldrfilter.read();
cdaszynski 0:560e97bbc0c0 23 val[i]= ldr.read();
cdaszynski 1:f6c866aedc5e 24 voltfilter[i]=(valfilter[i]*3.6);
cdaszynski 0:560e97bbc0c0 25 volt[i]=(val[i]*3.6);
cdaszynski 1:f6c866aedc5e 26 printf("Filter: %f %f NoFilter: %f %f\r\n",voltfilter[i],valfilter[i],volt[i],val[i]);
cdaszynski 1:f6c866aedc5e 27 //myLED=0;
cdaszynski 1:f6c866aedc5e 28 //output = 1;
cdaszynski 2:dd5a887a6990 29 if (valfilter[i] > .82 && valfilter[i] < .87) {
cdaszynski 2:dd5a887a6990 30 countfilter = countfilter + 1;
cdaszynski 2:dd5a887a6990 31 }
cdaszynski 2:dd5a887a6990 32 if (val[i] > .7 && val[i] <= .85) {
cdaszynski 2:dd5a887a6990 33 countnorm = countnorm + 1;
cdaszynski 2:dd5a887a6990 34 }
cdaszynski 2:dd5a887a6990 35 printf("Filter Count: %i NoFilter: %i \r\n", countfilter, countnorm);
cdaszynski 2:dd5a887a6990 36 }
cdaszynski 1:f6c866aedc5e 37
cdaszynski 2:dd5a887a6990 38 if (countfilter >= 45 && countnorm >= 40) {
cdaszynski 1:f6c866aedc5e 39 printf("MY SERVO SHOULD HAVE MOVED ITS FULL RANGE!!!");
cdaszynski 1:f6c866aedc5e 40 myservo.write(1);
cdaszynski 1:f6c866aedc5e 41 //output.write(1);
cdaszynski 1:f6c866aedc5e 42 //wait(500);
cdaszynski 2:dd5a887a6990 43 //output = 1;
cdaszynski 1:f6c866aedc5e 44 //wait(500);
cdaszynski 2:dd5a887a6990 45 } else {
cdaszynski 1:f6c866aedc5e 46 //output.write(0);
cdaszynski 1:f6c866aedc5e 47 myservo.write(0);
cdaszynski 1:f6c866aedc5e 48 printf("MY SERVO SHOULD NOT MOVE, ONLY POSITION TO 0");
cdaszynski 1:f6c866aedc5e 49 //wait(500);
cdaszynski 1:f6c866aedc5e 50 //output = 0;
cdaszynski 1:f6c866aedc5e 51 //wait(500);
cdaszynski 0:560e97bbc0c0 52 }
cdaszynski 2:dd5a887a6990 53
cdaszynski 0:560e97bbc0c0 54 }
cdaszynski 0:560e97bbc0c0 55
cdaszynski 1:f6c866aedc5e 56
cdaszynski 0:560e97bbc0c0 57 /*
cdaszynski 0:560e97bbc0c0 58 #include "mbed.h"
cdaszynski 0:560e97bbc0c0 59
cdaszynski 0:560e97bbc0c0 60 DigitalOut led(LED1);
cdaszynski 0:560e97bbc0c0 61 AnalogIn mic1(A3);
cdaszynski 0:560e97bbc0c0 62 AnalogIn light1(A1);
cdaszynski 0:560e97bbc0c0 63 PwmOut servo(A4);
cdaszynski 0:560e97bbc0c0 64
cdaszynski 0:560e97bbc0c0 65 bool soundOn ()
cdaszynski 0:560e97bbc0c0 66 {
cdaszynski 2:dd5a887a6990 67 float amp;
cdaszynski 0:560e97bbc0c0 68 amp = (mic1.read())*3.3;
cdaszynski 0:560e97bbc0c0 69 printf("Sound: %f\n", amp);
cdaszynski 0:560e97bbc0c0 70 if(amp > 1.2)
cdaszynski 0:560e97bbc0c0 71 {
cdaszynski 0:560e97bbc0c0 72 return true;
cdaszynski 0:560e97bbc0c0 73 }
cdaszynski 0:560e97bbc0c0 74 else
cdaszynski 0:560e97bbc0c0 75 {
cdaszynski 0:560e97bbc0c0 76 return false;
cdaszynski 0:560e97bbc0c0 77 }
cdaszynski 0:560e97bbc0c0 78 }
cdaszynski 0:560e97bbc0c0 79 bool lightOn ()
cdaszynski 0:560e97bbc0c0 80 {
cdaszynski 0:560e97bbc0c0 81 float lchk;
cdaszynski 2:dd5a887a6990 82 lchk = 3.3 - (light1.read()*3.3);
cdaszynski 0:560e97bbc0c0 83 if(lchk > 1)
cdaszynski 0:560e97bbc0c0 84 {
cdaszynski 0:560e97bbc0c0 85 return true;
cdaszynski 0:560e97bbc0c0 86 }
cdaszynski 2:dd5a887a6990 87 else
cdaszynski 0:560e97bbc0c0 88 {
cdaszynski 2:dd5a887a6990 89 return false;
cdaszynski 0:560e97bbc0c0 90 }
cdaszynski 0:560e97bbc0c0 91 }
cdaszynski 0:560e97bbc0c0 92
cdaszynski 0:560e97bbc0c0 93 int main()
cdaszynski 0:560e97bbc0c0 94 {
cdaszynski 0:560e97bbc0c0 95 int start = 0;
cdaszynski 0:560e97bbc0c0 96 int light, sound;
cdaszynski 0:560e97bbc0c0 97 while(start == 0)
cdaszynski 0:560e97bbc0c0 98 {
cdaszynski 0:560e97bbc0c0 99 if(soundOn() == true)
cdaszynski 0:560e97bbc0c0 100 sound = 1;
cdaszynski 0:560e97bbc0c0 101 if(lightOn() == true)
cdaszynski 0:560e97bbc0c0 102 light = 1;
cdaszynski 0:560e97bbc0c0 103 if(light == 1 && sound == 1)
cdaszynski 0:560e97bbc0c0 104 {
cdaszynski 0:560e97bbc0c0 105 servo.write(0.5);
cdaszynski 0:560e97bbc0c0 106 }
cdaszynski 0:560e97bbc0c0 107 }
cdaszynski 0:560e97bbc0c0 108 }
cdaszynski 0:560e97bbc0c0 109 */