BME3915(NBDJZ)
/
LDRTest
main.cpp@2:dd5a887a6990, 2019-04-17 (annotated)
- Committer:
- cdaszynski
- Date:
- Wed Apr 17 16:26:10 2019 +0000
- Revision:
- 2:dd5a887a6990
- Parent:
- 1:f6c866aedc5e
WorkingLEDCODE
Who changed what in which revision?
User | Revision | Line number | New 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 | */ |