Mittelwertmessung mit Balken

Dependencies:   mbed

main.cpp

Committer:
RudiNiki
Date:
2016-02-25
Revision:
0:034df6d5f08e

File content as of revision 0:034df6d5f08e:

#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);
    }
}