Putty-Ausgabe

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
EHess
Date:
Tue Apr 25 14:51:47 2017 +0000
Parent:
0:fb3f7c677c18
Commit message:
25.04.17;

Changed in this revision

IRSensor.h 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
--- a/IRSensor.h	Thu Apr 13 08:30:35 2017 +0000
+++ b/IRSensor.h	Tue Apr 25 14:51:47 2017 +0000
@@ -1,7 +1,6 @@
 #ifndef IR_SENSOR_H
 #define IR_SENSOR_H
 
-#include <cstdlib> //-> Nötig?
 #include "mbed.h"
 
 //E. Hess
--- a/main.cpp	Thu Apr 13 08:30:35 2017 +0000
+++ b/main.cpp	Tue Apr 25 14:51:47 2017 +0000
@@ -6,48 +6,50 @@
 
 DigitalOut led(LED1);           //Zustands-LED: Grüne LED für Benutzer
 
-AnalogIn distance(PB_1);        //Input der Sensoren
+AnalogIn distance(PB_1);        //Input der Distanzsensoren
 DigitalOut enableSensor(PC_1);  //Aktivierung der IRSensoren
 DigitalOut bit0(PH_1);          //Ansteuerung der Sensoren 0-5 mit 3 Bits
-DigitalOut bit1(PC_2);      
+DigitalOut bit1(PC_2);
 DigitalOut bit2(PC_3);
 IRSensor sensors[6];            //Erstellt 6 IRSensor-Objekte als Array
 
 DigitalOut leds[] = { PC_8, PC_6, PB_12, PA_7, PC_0, PC_9 };    //LED-Outputs der Sensoren
 
-//Timer-Objekt für Distanzsensor
-Ticker t1;
-
 
 //Titel printf()
 void title() {
-    printf("\n  < ^  \t\t   ^   \t\t  ^ >  \t\t\t");
-    printf("  < _  \t\t   _   \t\t  _ >  \n\r");
+    printf("\f  <    \t\t   -   \t\t    >\n\r"); //"\f" Setzt den Cursor an den Anfang der nächsten Seite
 }
 
 
 int main() {
-    float sensorValue[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};    //Array der 6 Sensorenwerte
+    float sensorMittelwert[6];   //Array der 6 Sensorenwerte
+    float sensorTiefbass[6];
+    int zaehler = 0;
 
-    t1.attach(&title, 5);   //Betitelung der Sensorwerte alle 5 Sekunden
-
-    //Initialisiert Distanzsensoren
+    //Initialisiert Distanzsensoren und setzt sensorValue und sensorTiefbass auf NULL
     for( int i = 0; i < 6; i++) {
         sensors[i].init(&distance, &bit0, &bit1, &bit2, i);
+        sensorMittelwert[i] = 0.0f;
+        sensorTiefbass[i] = 0.0f;
     }
     enableSensor = 1;   //Aktiviert die IRSensoren
 
     while(1) {
-        for(int i = 0; i < 6; i++){     //Setzt alle Sensorwerte auf NULL
-            sensorValue[i] = 0.0f;
-        }
-        for(int i = 0; i < 10; i++){    //Addiert pro Sensor 10 Werte zusammen (zur Auskorrigierung von Fehlerwerten)
+        for(int j = 0; j < 25; j++){                 //Zählt 25 Sensorwerten pro Sensor zusammen
             for(int i = 0; i < 6; i++){
-                sensorValue[i] += sensors[i].read();
+                sensorMittelwert[i] += sensors[i].read();
             }
-            wait( 0.01f );
+            wait( 0.001f );
+        }
+        for(int i = 0; i < 6; i++){
+            sensorTiefbass[i] = sensorTiefbass[i]*0.75f + sensorMittelwert[i]*0.25f;    //Verrechnet den neuen Wert mit dem alten
+            sensorMittelwert[i] = 0.0f;                                                 //Setzt die Sensorwerte auf NULL
         }
-        printf("%f\t%f\t%f\t\t", sensorValue[5], sensorValue[0], sensorValue[1]);   //Plottet die oberen Sensoren
-        printf("%f\t%f\t%f\n\r", sensorValue[4], sensorValue[3], sensorValue[2]);   //Plottet die unteren Sensoren
+        
+        printf("%f\t%f\t%f\t\t%f\n\r", sensorTiefbass[3], sensorTiefbass[4], sensorTiefbass[2], sensorTiefbass[0]);   //Plottet die unteren Sensoren
+        
+        zaehler++;
+        if(zaehler % 40 == 0) title();  //Erstellt nach 40 Zeilen eine neue Seite
     }
 }