Simple Voltage meter. The analog value is shown on a LCD and on the four LEDs ( fading mode ).

Dependencies:   TextLCD mbed

Files at this revision

API Documentation at this revision

Comitter:
Schueler
Date:
Mon Feb 14 08:12:38 2011 +0000
Commit message:
1.0

Changed in this revision

TextLCD.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD.lib	Mon Feb 14 08:12:38 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/TextLCD/#a53b3e2d6f1e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Feb 14 08:12:38 2011 +0000
@@ -0,0 +1,54 @@
+#include "mbed.h"
+#include "TextLCD.h"
+
+
+//TextLCD lcd( p11, p12, p30, p29, p28, p27, TextLCD::LCD20x4 ); // rs, e, d0-d3
+//TextLCD lcd(p24, p25, p26, p27, p28, p29, p30); // rs, rw, e, d4, d5, d6, d7
+TextLCD lcd(p24, p26, p27, p28, p29, p30); // rs, rw, e, d4, d5, d6, d7
+Serial pc( USBTX, USBRX );
+//DigitalOut LEDOUT0( LED1 );
+//DigitalOut LEDOUT1( LED2 );
+//DigitalOut LEDOUT2( LED3 );
+//DigitalOut LEDOUT3( LED4 );
+PwmOut led1 (LED1);
+PwmOut led2 (LED2);
+PwmOut led3 (LED3);
+PwmOut led4 (LED4);
+AnalogIn A0( p20 );
+
+float i;
+float l;
+int j;
+int cnt = 0;
+
+int main() {
+    led1 =  led2 =  led3 = led4 = 0;
+    pc.printf("\x1B\x48\x1B\x4A");
+    pc.printf("Voltmeter\n\r");
+    lcd.printf("Voltmeter");
+    lcd.locate(0,2);
+    lcd.printf("0-----1-----2-----3-");
+    while(1) {
+        i = A0;
+        l = i * 4;
+        cnt = cnt < 8 ? ++cnt : 0;
+        if (cnt == 0 )
+        {
+            i *= 3.3; // 1.0 -> 3.3V
+            lcd.locate(0,1);
+            lcd.printf( "%1.3f   " , i );
+            for ( int j = 0; j < 20 ; j++ )
+            {
+                lcd.locate(j,3);
+                if ( ( (float) j ) / 20 * 3.3 < i ) { lcd.printf( "\xFF" ); } else { lcd.printf( "_" ); }
+            }
+            pc.printf("\x1B\x48");
+            pc.printf( "\n\n\rMeasured : %1.3f" , i );        
+        }
+        if ( l < 1 ) { led1 = l; l = 0; } else { led1 = 1; l = l - 1; }
+        if ( l < 1 ) { led2 = l; l = 0; } else { led2 = 1; l = l - 1; }
+        if ( l < 1 ) { led3 = l; l = 0; } else { led3 = 1; l = l - 1; }
+        if ( l < 1 ) { led4 = l; l = 0; } else { led4 = 1; l = l - 1; }
+        wait(0.05);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Feb 14 08:12:38 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e