This program aims to be an easy example for those starting, focusing in the analog input an digital output. The diagrams and wirings at http://mbed.org/users/Sergio/notebook/simple-voltage-indicator/#
main.cpp@0:acf4358ae130, 2010-09-07 (annotated)
- Committer:
- Sergio
- Date:
- Tue Sep 07 23:18:25 2010 +0000
- Revision:
- 0:acf4358ae130
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sergio | 0:acf4358ae130 | 1 | #include "mbed.h" |
Sergio | 0:acf4358ae130 | 2 | |
Sergio | 0:acf4358ae130 | 3 | AnalogIn input(p20); //the range of the analog input goes, from 0 V. to 3.3V. |
Sergio | 0:acf4358ae130 | 4 | // the actual value is represented as a float from 0 to 1. |
Sergio | 0:acf4358ae130 | 5 | |
Sergio | 0:acf4358ae130 | 6 | DigitalOut led1(LED1); |
Sergio | 0:acf4358ae130 | 7 | DigitalOut led2(LED2); |
Sergio | 0:acf4358ae130 | 8 | DigitalOut led3(LED3); |
Sergio | 0:acf4358ae130 | 9 | DigitalOut led4(LED4); |
Sergio | 0:acf4358ae130 | 10 | |
Sergio | 0:acf4358ae130 | 11 | |
Sergio | 0:acf4358ae130 | 12 | |
Sergio | 0:acf4358ae130 | 13 | int main() { |
Sergio | 0:acf4358ae130 | 14 | |
Sergio | 0:acf4358ae130 | 15 | |
Sergio | 0:acf4358ae130 | 16 | float ain; //ain must be a float, for matching the input.read type. |
Sergio | 0:acf4358ae130 | 17 | |
Sergio | 0:acf4358ae130 | 18 | while (1) { |
Sergio | 0:acf4358ae130 | 19 | |
Sergio | 0:acf4358ae130 | 20 | ain=input.read(); |
Sergio | 0:acf4358ae130 | 21 | |
Sergio | 0:acf4358ae130 | 22 | if (ain<0.15) { //if analog input <0.15*3.3=0.45V |
Sergio | 0:acf4358ae130 | 23 | led1=0; |
Sergio | 0:acf4358ae130 | 24 | led2=0; |
Sergio | 0:acf4358ae130 | 25 | led3=0; |
Sergio | 0:acf4358ae130 | 26 | led4=0; |
Sergio | 0:acf4358ae130 | 27 | } else if ( ain>0.15 && ain<0.3) { // ain>0.45V and ain< 0.99V |
Sergio | 0:acf4358ae130 | 28 | led1=1; |
Sergio | 0:acf4358ae130 | 29 | led2=0; |
Sergio | 0:acf4358ae130 | 30 | led3=0; |
Sergio | 0:acf4358ae130 | 31 | led4=0; |
Sergio | 0:acf4358ae130 | 32 | } else if ( ain>0.3 && ain<0.6) { // ain>0.99V and ain<1.98V |
Sergio | 0:acf4358ae130 | 33 | led1=1; |
Sergio | 0:acf4358ae130 | 34 | led2=1; |
Sergio | 0:acf4358ae130 | 35 | led3=0; |
Sergio | 0:acf4358ae130 | 36 | led4=0; |
Sergio | 0:acf4358ae130 | 37 | } else if ( ain>0.6 && ain<0.91) { //ain>1.98 and ain>3.01V |
Sergio | 0:acf4358ae130 | 38 | led1=1; |
Sergio | 0:acf4358ae130 | 39 | led2=1; |
Sergio | 0:acf4358ae130 | 40 | led3=1; |
Sergio | 0:acf4358ae130 | 41 | led4=0; |
Sergio | 0:acf4358ae130 | 42 | } else { // more that 3 volts. |
Sergio | 0:acf4358ae130 | 43 | led1=1; |
Sergio | 0:acf4358ae130 | 44 | led2=2; |
Sergio | 0:acf4358ae130 | 45 | led3=1; |
Sergio | 0:acf4358ae130 | 46 | led4=1; |
Sergio | 0:acf4358ae130 | 47 | } |
Sergio | 0:acf4358ae130 | 48 | |
Sergio | 0:acf4358ae130 | 49 | |
Sergio | 0:acf4358ae130 | 50 | }//end while(1) |
Sergio | 0:acf4358ae130 | 51 | }//end main |