Mittelwertmessung mit Balken
Dependencies: mbed
main.cpp@0:034df6d5f08e, 2016-02-25 (annotated)
- Committer:
- RudiNiki
- Date:
- Thu Feb 25 17:55:59 2016 +0000
- Revision:
- 0:034df6d5f08e
MittelwertMessungBalken
Who changed what in which revision?
User | Revision | Line number | New 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 | } |