naveen
Dependencies: GPS TextLCD mbed
Fork of AnalogIn-HelloWorld by
main.cpp@2:f1a2f4029bd6, 2015-04-19 (annotated)
- Committer:
- sathguru
- Date:
- Sun Apr 19 11:01:15 2015 +0000
- Revision:
- 2:f1a2f4029bd6
- Parent:
- 0:101a12a915c6
6 sensor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sam_grove | 0:101a12a915c6 | 1 | /* mbed Example Program |
sam_grove | 0:101a12a915c6 | 2 | * Copyright (c) 2006-2014 ARM Limited |
sam_grove | 0:101a12a915c6 | 3 | * |
sam_grove | 0:101a12a915c6 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
sam_grove | 0:101a12a915c6 | 5 | * you may not use this file except in compliance with the License. |
sam_grove | 0:101a12a915c6 | 6 | * You may obtain a copy of the License at |
sam_grove | 0:101a12a915c6 | 7 | * |
sam_grove | 0:101a12a915c6 | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
sam_grove | 0:101a12a915c6 | 9 | * |
sam_grove | 0:101a12a915c6 | 10 | * Unless required by applicable law or agreed to in writing, software |
sam_grove | 0:101a12a915c6 | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
sam_grove | 0:101a12a915c6 | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
sam_grove | 0:101a12a915c6 | 13 | * See the License for the specific language governing permissions and |
sam_grove | 0:101a12a915c6 | 14 | * limitations under the License. |
sam_grove | 0:101a12a915c6 | 15 | */ |
sam_grove | 0:101a12a915c6 | 16 | |
sam_grove | 0:101a12a915c6 | 17 | #include "mbed.h" |
sam_grove | 0:101a12a915c6 | 18 | |
sam_grove | 0:101a12a915c6 | 19 | // Initialize a pins to perform analog input and digital output fucntions |
sathguru | 2:f1a2f4029bd6 | 20 | AnalogIn ph(A0); |
sathguru | 2:f1a2f4029bd6 | 21 | AnalogIn CuAm(A1); |
sathguru | 2:f1a2f4029bd6 | 22 | AnalogIn Na(A2); |
sathguru | 2:f1a2f4029bd6 | 23 | AnalogIn Cutemp(A3); |
sathguru | 2:f1a2f4029bd6 | 24 | AnalogIn Disoxy(A4); |
sathguru | 2:f1a2f4029bd6 | 25 | AnalogIn flu(A5); |
sathguru | 2:f1a2f4029bd6 | 26 | Serial uart(p28, p27); //Pin 28 TX, pin 27 RX. |
sathguru | 2:f1a2f4029bd6 | 27 | |
sathguru | 2:f1a2f4029bd6 | 28 | char a; |
sathguru | 2:f1a2f4029bd6 | 29 | |
sam_grove | 0:101a12a915c6 | 30 | DigitalOut dout(LED1); |
sathguru | 2:f1a2f4029bd6 | 31 | #include "TextLCD.h" |
sathguru | 2:f1a2f4029bd6 | 32 | DigitalOut myled(LED1); |
sathguru | 2:f1a2f4029bd6 | 33 | DigitalOut myled1(LED2); |
sathguru | 2:f1a2f4029bd6 | 34 | DigitalOut myled2(LED3); |
sathguru | 2:f1a2f4029bd6 | 35 | DigitalOut myled3(LED4); |
sathguru | 2:f1a2f4029bd6 | 36 | TextLCD lcd(p26, p25, p24, p23, p22, p21); // rs, e, d4-d7 |
sam_grove | 0:101a12a915c6 | 37 | |
sathguru | 2:f1a2f4029bd6 | 38 | float ph1,Am,Ni1,temp,Do,Sod,fl; |
sathguru | 2:f1a2f4029bd6 | 39 | float CuAm1; |
sathguru | 2:f1a2f4029bd6 | 40 | |
sathguru | 2:f1a2f4029bd6 | 41 | void send_ph(unsigned int s) |
sathguru | 2:f1a2f4029bd6 | 42 | { |
sathguru | 2:f1a2f4029bd6 | 43 | unsigned int a; |
sathguru | 2:f1a2f4029bd6 | 44 | unsigned char b,c,d,e,f; |
sathguru | 2:f1a2f4029bd6 | 45 | a=s/10; |
sathguru | 2:f1a2f4029bd6 | 46 | b=s%10; |
sathguru | 2:f1a2f4029bd6 | 47 | c=a%10; |
sathguru | 2:f1a2f4029bd6 | 48 | d=a/10; |
sathguru | 2:f1a2f4029bd6 | 49 | e=d%10; |
sathguru | 2:f1a2f4029bd6 | 50 | f=d/10; |
sathguru | 2:f1a2f4029bd6 | 51 | putchar(f+0x30); |
sathguru | 2:f1a2f4029bd6 | 52 | putchar(e+0x30); |
sathguru | 2:f1a2f4029bd6 | 53 | putchar(c+0x30); |
sathguru | 2:f1a2f4029bd6 | 54 | putchar(b+0x30); |
sathguru | 2:f1a2f4029bd6 | 55 | putchar(0x0A); |
sathguru | 2:f1a2f4029bd6 | 56 | } |
sathguru | 2:f1a2f4029bd6 | 57 | |
sathguru | 2:f1a2f4029bd6 | 58 | |
sathguru | 2:f1a2f4029bd6 | 59 | float map(float x, float in_min, float in_max, float out_min, float out_max) |
sathguru | 2:f1a2f4029bd6 | 60 | { |
sathguru | 2:f1a2f4029bd6 | 61 | return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; |
sathguru | 2:f1a2f4029bd6 | 62 | } |
sam_grove | 0:101a12a915c6 | 63 | int main(void) |
sam_grove | 0:101a12a915c6 | 64 | { |
sathguru | 2:f1a2f4029bd6 | 65 | lcd.locate(0,0); |
sathguru | 2:f1a2f4029bd6 | 66 | lcd.printf(" Sensor \n"); |
sathguru | 2:f1a2f4029bd6 | 67 | lcd.locate(0,1); |
sathguru | 2:f1a2f4029bd6 | 68 | lcd.printf(" Monitoring1 \n"); |
sathguru | 2:f1a2f4029bd6 | 69 | wait(1); |
sathguru | 2:f1a2f4029bd6 | 70 | myled = 1; |
sathguru | 2:f1a2f4029bd6 | 71 | myled1=1; |
sathguru | 2:f1a2f4029bd6 | 72 | myled3=1; |
sathguru | 2:f1a2f4029bd6 | 73 | myled2=1; |
sathguru | 2:f1a2f4029bd6 | 74 | wait(0.5); |
sathguru | 2:f1a2f4029bd6 | 75 | myled = 0; |
sathguru | 2:f1a2f4029bd6 | 76 | myled = 0; |
sathguru | 2:f1a2f4029bd6 | 77 | myled1=0; |
sathguru | 2:f1a2f4029bd6 | 78 | myled3=0; |
sathguru | 2:f1a2f4029bd6 | 79 | myled2=0; |
sathguru | 2:f1a2f4029bd6 | 80 | |
sathguru | 2:f1a2f4029bd6 | 81 | wait(0.5); |
sathguru | 2:f1a2f4029bd6 | 82 | lcd.cls(); |
sam_grove | 0:101a12a915c6 | 83 | while (1) { |
sam_grove | 0:101a12a915c6 | 84 | // test the voltage on the initialized analog pin |
sam_grove | 0:101a12a915c6 | 85 | // and if greater than 0.3 * VCC set the digital pin |
sam_grove | 0:101a12a915c6 | 86 | // to a logic 1 otherwise a logic 0 |
sathguru | 2:f1a2f4029bd6 | 87 | //if(ain > 0.3f) { |
sathguru | 2:f1a2f4029bd6 | 88 | // dout = 1; |
sathguru | 2:f1a2f4029bd6 | 89 | //} else { |
sathguru | 2:f1a2f4029bd6 | 90 | // dout = 0; |
sathguru | 2:f1a2f4029bd6 | 91 | // }/ |
sam_grove | 0:101a12a915c6 | 92 | |
sam_grove | 0:101a12a915c6 | 93 | // print the percentage and 16 bit normalized values |
sathguru | 2:f1a2f4029bd6 | 94 | |
sathguru | 2:f1a2f4029bd6 | 95 | //lcd.printf(" Temperature \n"); |
sathguru | 2:f1a2f4029bd6 | 96 | ////////////////////////////////ph///////////////////////////////// |
sathguru | 2:f1a2f4029bd6 | 97 | lcd.locate(0,0); |
sathguru | 2:f1a2f4029bd6 | 98 | |
sathguru | 2:f1a2f4029bd6 | 99 | |
sathguru | 2:f1a2f4029bd6 | 100 | ph1=ph.read()*100; |
sathguru | 2:f1a2f4029bd6 | 101 | ph1=map(ph1,0,100,0,14); |
sathguru | 2:f1a2f4029bd6 | 102 | lcd.printf("PH:%2.0f",ph1); |
sathguru | 2:f1a2f4029bd6 | 103 | lcd.locate(0,0); |
sathguru | 2:f1a2f4029bd6 | 104 | |
sathguru | 2:f1a2f4029bd6 | 105 | lcd.locate(6,0); |
sathguru | 2:f1a2f4029bd6 | 106 | Am=CuAm.read()*100; |
sathguru | 2:f1a2f4029bd6 | 107 | |
sathguru | 2:f1a2f4029bd6 | 108 | Am=map(Am,0,100,0.05,0); |
sathguru | 2:f1a2f4029bd6 | 109 | if(Am<0.02) |
sathguru | 2:f1a2f4029bd6 | 110 | { |
sathguru | 2:f1a2f4029bd6 | 111 | lcd.printf("A:%2.3f", Am); |
sathguru | 2:f1a2f4029bd6 | 112 | } |
sathguru | 2:f1a2f4029bd6 | 113 | else |
sathguru | 2:f1a2f4029bd6 | 114 | { |
sathguru | 2:f1a2f4029bd6 | 115 | Am=0; |
sathguru | 2:f1a2f4029bd6 | 116 | lcd.printf("A:%2.3f", Am); |
sam_grove | 0:101a12a915c6 | 117 | } |
sathguru | 2:f1a2f4029bd6 | 118 | |
sathguru | 2:f1a2f4029bd6 | 119 | |
sathguru | 2:f1a2f4029bd6 | 120 | |
sathguru | 2:f1a2f4029bd6 | 121 | ///////////////// |
sathguru | 2:f1a2f4029bd6 | 122 | |
sathguru | 2:f1a2f4029bd6 | 123 | |
sathguru | 2:f1a2f4029bd6 | 124 | |
sathguru | 2:f1a2f4029bd6 | 125 | |
sathguru | 2:f1a2f4029bd6 | 126 | lcd.locate(0,1); |
sathguru | 2:f1a2f4029bd6 | 127 | Sod=Na.read()*100; |
sathguru | 2:f1a2f4029bd6 | 128 | |
sathguru | 2:f1a2f4029bd6 | 129 | Sod=map(Sod,0,100,0,1); |
sathguru | 2:f1a2f4029bd6 | 130 | if(Sod<0.75) |
sathguru | 2:f1a2f4029bd6 | 131 | { |
sathguru | 2:f1a2f4029bd6 | 132 | lcd.printf("S:%2.1f", Sod); |
sam_grove | 0:101a12a915c6 | 133 | } |
sathguru | 2:f1a2f4029bd6 | 134 | else |
sathguru | 2:f1a2f4029bd6 | 135 | { |
sathguru | 2:f1a2f4029bd6 | 136 | Sod=0; |
sathguru | 2:f1a2f4029bd6 | 137 | lcd.printf("S:%2.1f", Sod); |
sathguru | 2:f1a2f4029bd6 | 138 | } |
sathguru | 2:f1a2f4029bd6 | 139 | |
sathguru | 2:f1a2f4029bd6 | 140 | |
sathguru | 2:f1a2f4029bd6 | 141 | |
sathguru | 2:f1a2f4029bd6 | 142 | ////////////////////////ni/////////////////////// |
sathguru | 2:f1a2f4029bd6 | 143 | Do=Disoxy.read()*100; |
sathguru | 2:f1a2f4029bd6 | 144 | Do=map(Do,0,200,0,1); |
sathguru | 2:f1a2f4029bd6 | 145 | |
sathguru | 2:f1a2f4029bd6 | 146 | printf("%2.0f", Do); |
sathguru | 2:f1a2f4029bd6 | 147 | |
sathguru | 2:f1a2f4029bd6 | 148 | /////////////////////////////////////// |
sathguru | 2:f1a2f4029bd6 | 149 | |
sathguru | 2:f1a2f4029bd6 | 150 | lcd.locate(5,1); |
sathguru | 2:f1a2f4029bd6 | 151 | temp=Cutemp.read()*100; |
sathguru | 2:f1a2f4029bd6 | 152 | temp=map(temp,0,100,0,300); |
sathguru | 2:f1a2f4029bd6 | 153 | lcd.printf(" T:%2.0f", temp); |
sathguru | 2:f1a2f4029bd6 | 154 | |
sathguru | 2:f1a2f4029bd6 | 155 | |
sathguru | 2:f1a2f4029bd6 | 156 | |
sathguru | 2:f1a2f4029bd6 | 157 | |
sathguru | 2:f1a2f4029bd6 | 158 | fl=flu.read()*100; |
sathguru | 2:f1a2f4029bd6 | 159 | fl=map(fl,0,100,0,2); |
sathguru | 2:f1a2f4029bd6 | 160 | if(fl<0.46) |
sathguru | 2:f1a2f4029bd6 | 161 | { |
sathguru | 2:f1a2f4029bd6 | 162 | lcd.locate(13,0); |
sathguru | 2:f1a2f4029bd6 | 163 | lcd.printf("Flu"); |
sathguru | 2:f1a2f4029bd6 | 164 | lcd.locate(11,1); |
sathguru | 2:f1a2f4029bd6 | 165 | lcd.printf("%2.2f", fl); |
sathguru | 2:f1a2f4029bd6 | 166 | |
sathguru | 2:f1a2f4029bd6 | 167 | } |
sathguru | 2:f1a2f4029bd6 | 168 | else |
sathguru | 2:f1a2f4029bd6 | 169 | { |
sathguru | 2:f1a2f4029bd6 | 170 | fl=0; |
sathguru | 2:f1a2f4029bd6 | 171 | lcd.locate(13,0); |
sathguru | 2:f1a2f4029bd6 | 172 | lcd.printf("Flu"); |
sathguru | 2:f1a2f4029bd6 | 173 | lcd.locate(11,1); |
sathguru | 2:f1a2f4029bd6 | 174 | lcd.printf(" %2.2f", fl); |
sathguru | 2:f1a2f4029bd6 | 175 | } |
sathguru | 2:f1a2f4029bd6 | 176 | |
sathguru | 2:f1a2f4029bd6 | 177 | |
sathguru | 2:f1a2f4029bd6 | 178 | |
sathguru | 2:f1a2f4029bd6 | 179 | a=uart.getc(); |
sathguru | 2:f1a2f4029bd6 | 180 | if (a=='A') |
sathguru | 2:f1a2f4029bd6 | 181 | { |
sathguru | 2:f1a2f4029bd6 | 182 | uart.printf("%2.1f", ph1); |
sathguru | 2:f1a2f4029bd6 | 183 | uart.printf("\n"); |
sathguru | 2:f1a2f4029bd6 | 184 | } |
sathguru | 2:f1a2f4029bd6 | 185 | |
sathguru | 2:f1a2f4029bd6 | 186 | else if (a=='B') |
sathguru | 2:f1a2f4029bd6 | 187 | { |
sathguru | 2:f1a2f4029bd6 | 188 | uart.printf("%2.3f", Am); |
sathguru | 2:f1a2f4029bd6 | 189 | uart.printf("\n"); |
sathguru | 2:f1a2f4029bd6 | 190 | } |
sathguru | 2:f1a2f4029bd6 | 191 | ///////////////////////////////////////////////////////////////// |
sathguru | 2:f1a2f4029bd6 | 192 | else if (a=='C') |
sathguru | 2:f1a2f4029bd6 | 193 | { |
sathguru | 2:f1a2f4029bd6 | 194 | uart.printf("%2.1f", Sod); |
sathguru | 2:f1a2f4029bd6 | 195 | uart.printf("\n"); |
sathguru | 2:f1a2f4029bd6 | 196 | } |
sathguru | 2:f1a2f4029bd6 | 197 | |
sathguru | 2:f1a2f4029bd6 | 198 | else if (a=='D') |
sathguru | 2:f1a2f4029bd6 | 199 | { |
sathguru | 2:f1a2f4029bd6 | 200 | uart.printf("%2.0f",temp ); |
sathguru | 2:f1a2f4029bd6 | 201 | uart.printf("\n"); |
sathguru | 2:f1a2f4029bd6 | 202 | } |
sathguru | 2:f1a2f4029bd6 | 203 | else if (a=='E') |
sathguru | 2:f1a2f4029bd6 | 204 | { |
sathguru | 2:f1a2f4029bd6 | 205 | uart.printf("%2.0f",Do ); |
sathguru | 2:f1a2f4029bd6 | 206 | uart.printf("\n"); |
sathguru | 2:f1a2f4029bd6 | 207 | } |
sathguru | 2:f1a2f4029bd6 | 208 | else if (a=='F') |
sathguru | 2:f1a2f4029bd6 | 209 | { |
sathguru | 2:f1a2f4029bd6 | 210 | uart.printf("%2.2f",fl ); |
sathguru | 2:f1a2f4029bd6 | 211 | uart.printf("\n"); |
sathguru | 2:f1a2f4029bd6 | 212 | } |
sathguru | 2:f1a2f4029bd6 | 213 | |
sathguru | 2:f1a2f4029bd6 | 214 | |
sathguru | 2:f1a2f4029bd6 | 215 | |
sathguru | 2:f1a2f4029bd6 | 216 | |
sathguru | 2:f1a2f4029bd6 | 217 | |
sathguru | 2:f1a2f4029bd6 | 218 | } |
sathguru | 2:f1a2f4029bd6 | 219 | } |