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
diff -r fb3f7c677c18 -r fc836343f42b IRSensor.h
--- 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
diff -r fb3f7c677c18 -r fc836343f42b main.cpp
--- 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
     }
 }