Mittelwertmessung mit Balken

Dependencies:   mbed

Revision:
0:034df6d5f08e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Feb 25 17:55:59 2016 +0000
@@ -0,0 +1,42 @@
+#include "mbed.h"
+#include "C12832_lcd.h"
+
+// Erfassung von 2 analogen Eingaengen (poti1 und 2)
+/*
+a) Ermittelung der Werte mit 2 Hz (aktuelle Werte)
+b) Umrechnung der Rohwerte (0.0 bis 1.0, oder 0 - 65535) in die physikalische Groesse Spannung
+c) Berechnung des gleitenden Mittelwertes ueber die letzten 10 erfassten Werte
+d) Ausgabe des aktuellen Wertes und des gleitend ermittelten Mittelwertes am LCD
+   
+Vertiefung 1:
+Ausgabe als Balkengrafik (Bar Graph)
+
+Vertiefung 2: 
+Erstellen einer Klasse:
+1) für gleitende Mittelwertbildung (Uebergabe der Array-Länge, Sample-Rate, Ermitteln des MW)
+2) gleitende Mittelwertbildung (Uebergabe der Array-Länge, Sample-Rate, Ermitteln des MW, Min- und Maxwert)
+3) gleitende Mittelwertbildung (Uebergabe des Array-Länge, Sample-Rate, Ermitteln des MW, Min- und Maxwert)
+   Mittelwertbildung wird ohne den groessten und kleinsten Wert durchgeführt
+   (2 und 3 auch als Überladung möglich)
+*/
+
+AnalogIn aiPoti1(p19);
+C12832_LCD lcd;
+
+int main() 
+{
+    float poti1Wert;
+    lcd.cls();              // löscht den LCD
+    lcd.locate(0,0);        // x-Postion, y-Position (x:0-128; y: 0-32)
+    lcd.printf("Wert von Poti 1:");
+    while(1) 
+    {
+       lcd.locate(0,10);
+       poti1Wert = aiPoti1.read();
+       lcd.printf("Spannung 1 = %5.3f V", poti1Wert*3.3);
+       lcd.fillrect(0, 20, (int) (poti1Wert*128), 28, 1);     // Zeigt einen Balken am LCD Display an
+       lcd.fillrect((int)(poti1Wert*128), 20, 128, 28, 0);
+       lcd.copy_to_lcd();
+       wait_ms(100);
+    }
+}