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/#

Dependencies:   mbed

Committer:
Sergio
Date:
Tue Sep 07 23:18:25 2010 +0000
Revision:
0:acf4358ae130

        

Who changed what in which revision?

UserRevisionLine numberNew 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