Mittelwertmessung mit Balken

Dependencies:   mbed

Committer:
RudiNiki
Date:
Thu Feb 25 17:55:59 2016 +0000
Revision:
0:034df6d5f08e
MittelwertMessungBalken

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RudiNiki 0:034df6d5f08e 1 #include "mbed.h"
RudiNiki 0:034df6d5f08e 2 #include "C12832_lcd.h"
RudiNiki 0:034df6d5f08e 3
RudiNiki 0:034df6d5f08e 4 // Erfassung von 2 analogen Eingaengen (poti1 und 2)
RudiNiki 0:034df6d5f08e 5 /*
RudiNiki 0:034df6d5f08e 6 a) Ermittelung der Werte mit 2 Hz (aktuelle Werte)
RudiNiki 0:034df6d5f08e 7 b) Umrechnung der Rohwerte (0.0 bis 1.0, oder 0 - 65535) in die physikalische Groesse Spannung
RudiNiki 0:034df6d5f08e 8 c) Berechnung des gleitenden Mittelwertes ueber die letzten 10 erfassten Werte
RudiNiki 0:034df6d5f08e 9 d) Ausgabe des aktuellen Wertes und des gleitend ermittelten Mittelwertes am LCD
RudiNiki 0:034df6d5f08e 10
RudiNiki 0:034df6d5f08e 11 Vertiefung 1:
RudiNiki 0:034df6d5f08e 12 Ausgabe als Balkengrafik (Bar Graph)
RudiNiki 0:034df6d5f08e 13
RudiNiki 0:034df6d5f08e 14 Vertiefung 2:
RudiNiki 0:034df6d5f08e 15 Erstellen einer Klasse:
RudiNiki 0:034df6d5f08e 16 1) für gleitende Mittelwertbildung (Uebergabe der Array-Länge, Sample-Rate, Ermitteln des MW)
RudiNiki 0:034df6d5f08e 17 2) gleitende Mittelwertbildung (Uebergabe der Array-Länge, Sample-Rate, Ermitteln des MW, Min- und Maxwert)
RudiNiki 0:034df6d5f08e 18 3) gleitende Mittelwertbildung (Uebergabe des Array-Länge, Sample-Rate, Ermitteln des MW, Min- und Maxwert)
RudiNiki 0:034df6d5f08e 19 Mittelwertbildung wird ohne den groessten und kleinsten Wert durchgeführt
RudiNiki 0:034df6d5f08e 20 (2 und 3 auch als Überladung möglich)
RudiNiki 0:034df6d5f08e 21 */
RudiNiki 0:034df6d5f08e 22
RudiNiki 0:034df6d5f08e 23 AnalogIn aiPoti1(p19);
RudiNiki 0:034df6d5f08e 24 C12832_LCD lcd;
RudiNiki 0:034df6d5f08e 25
RudiNiki 0:034df6d5f08e 26 int main()
RudiNiki 0:034df6d5f08e 27 {
RudiNiki 0:034df6d5f08e 28 float poti1Wert;
RudiNiki 0:034df6d5f08e 29 lcd.cls(); // löscht den LCD
RudiNiki 0:034df6d5f08e 30 lcd.locate(0,0); // x-Postion, y-Position (x:0-128; y: 0-32)
RudiNiki 0:034df6d5f08e 31 lcd.printf("Wert von Poti 1:");
RudiNiki 0:034df6d5f08e 32 while(1)
RudiNiki 0:034df6d5f08e 33 {
RudiNiki 0:034df6d5f08e 34 lcd.locate(0,10);
RudiNiki 0:034df6d5f08e 35 poti1Wert = aiPoti1.read();
RudiNiki 0:034df6d5f08e 36 lcd.printf("Spannung 1 = %5.3f V", poti1Wert*3.3);
RudiNiki 0:034df6d5f08e 37 lcd.fillrect(0, 20, (int) (poti1Wert*128), 28, 1); // Zeigt einen Balken am LCD Display an
RudiNiki 0:034df6d5f08e 38 lcd.fillrect((int)(poti1Wert*128), 20, 128, 28, 0);
RudiNiki 0:034df6d5f08e 39 lcd.copy_to_lcd();
RudiNiki 0:034df6d5f08e 40 wait_ms(100);
RudiNiki 0:034df6d5f08e 41 }
RudiNiki 0:034df6d5f08e 42 }