25.04.17

Dependencies:   mbed

Fork of Sensortest by kings

Files at this revision

API Documentation at this revision

Comitter:
EHess
Date:
Tue Apr 25 14:57:31 2017 +0000
Parent:
0:fb3f7c677c18
Commit message:
25.04.17

Changed in this revision

Farbsensor.cpp Show annotated file Show diff for this revision Revisions of this file
Farbsensor.h Show annotated file Show diff for this revision Revisions of this file
IRSensor.cpp Show diff for this revision Revisions of this file
IRSensor.h 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 82a1ebe6ce11 Farbsensor.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Farbsensor.cpp	Tue Apr 25 14:57:31 2017 +0000
@@ -0,0 +1,25 @@
+#include "Farbsensor.h"
+
+//E. Hess
+//Farbsensor.cpp
+
+//Konstruktor -> Erstellt ein Farbsensor-Objekt
+//AnalogIn* color -> Liest die Voltanzahl des Farbsensors aus
+
+Farbsensor::Farbsensor() {}
+
+Farbsensor::Farbsensor(AnalogIn* color) {
+    this->color = color;    //Weist den Objektvariablen, die eingegebenen Werte zu
+}
+
+//Destruktor -> Löscht das Farbsensor-Objekt
+Farbsensor::~Farbsensor() {}
+
+//Initialisiert nachträglich
+void Farbsensor::init(AnalogIn* color) {
+    this->color = color;    //Weist den Objektvariablen, die eingegebenen Werte zu
+}
+
+float Farbsensor::read() {
+    return color->read();
+}
\ No newline at end of file
diff -r fb3f7c677c18 -r 82a1ebe6ce11 Farbsensor.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Farbsensor.h	Tue Apr 25 14:57:31 2017 +0000
@@ -0,0 +1,21 @@
+#ifndef FARBSENSOR_H
+#define FARBSENSOR_H
+
+#include "mbed.h"
+
+//E. Hess
+//Farbsensor.h
+
+class Farbsensor {
+    public:
+        Farbsensor();
+        Farbsensor(AnalogIn* color);
+        ~Farbsensor();
+        void init(AnalogIn* color);
+        float read();
+
+    private:
+        AnalogIn* color;
+};
+
+#endif
\ No newline at end of file
diff -r fb3f7c677c18 -r 82a1ebe6ce11 IRSensor.cpp
--- a/IRSensor.cpp	Thu Apr 13 08:30:35 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-#include "IRSensor.h"
-#include <cmath>
-
-//E. Hess
-//IRSensor.cpp
-
-//Konstruktor -> Erstellt ein IRSensor-Objekt
-//AnalogIn* distance -> Liest die Voltanzahl des Sensors aus
-//DigitalOut* bit0, bit1, bit2 -> Binär-Outputs wählen die 6 Sensoren an
-//Int number -> Sensornummer als int (0-5)
-
-IRSensor::IRSensor() {}
-
-IRSensor::IRSensor(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number) {
-    this->distance = distance;  //Weist den Objektvariablen, die eingegebenen Werte zu
-    this->bit0 = bit0;
-    this->bit1 = bit1;
-    this->bit2 = bit2;
-    this->number = number;
-}
-
-//Destruktor -> Löscht das IRSensor-Objekt
-IRSensor::~IRSensor() {}
-
-//Initialisiert nachträglich
-void IRSensor::init(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number) {
-    this->distance = distance;  //Weist den Objektvariablen, die eingegebenen Werte zu
-    this->bit0 = bit0;
-    this->bit1 = bit1;
-    this->bit2 = bit2;
-    this->number = number;
-}
-
-//Distanzrechner
-float IRSensor::read()
-{
-    *bit0 = (number >> 0) & 1;  //Vergleicht das Least-Significant-Bit von number mit 1 und setzt *bit0 (z.B. 5: 0000'0101 & 0000'0001 == 0000'0001)
-    *bit1 = (number >> 1) & 1;  //Vergleicht das zweite Bit von rechts
-    *bit2 = (number >> 2) & 1;  //Vergleicht das dritte Bit von rechts
-
-    float d = distance->read();
-    return d;
-}
-
diff -r fb3f7c677c18 -r 82a1ebe6ce11 IRSensor.h
--- a/IRSensor.h	Thu Apr 13 08:30:35 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#ifndef IR_SENSOR_H
-#define IR_SENSOR_H
-
-#include <cstdlib> //-> Nötig?
-#include "mbed.h"
-
-//E. Hess
-//IRSensor.h
-
-class IRSensor {
-    public:
-        IRSensor();
-        IRSensor(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number);
-        ~IRSensor();
-        void init(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number);
-        float read();
-
-    private:
-        AnalogIn*       distance;
-        DigitalOut*     bit0;
-        DigitalOut*     bit1;
-        DigitalOut*     bit2;
-        int             number;
-};
-
-#endif
\ No newline at end of file
diff -r fb3f7c677c18 -r 82a1ebe6ce11 main.cpp
--- a/main.cpp	Thu Apr 13 08:30:35 2017 +0000
+++ b/main.cpp	Tue Apr 25 14:57:31 2017 +0000
@@ -1,53 +1,31 @@
 #include "mbed.h"
-#include "IRSensor.h"
+#include "Farbsensor.h"
 
 //E. Hess
-//Sensortest
+//Farbsensortest
 
 DigitalOut led(LED1);           //Zustands-LED: Grüne LED für Benutzer
 
-AnalogIn distance(PB_1);        //Input der Sensoren
-DigitalOut enableSensor(PC_1);  //Aktivierung der IRSensoren
-DigitalOut bit0(PH_1);          //Ansteuerung der Sensoren 0-5 mit 3 Bits
-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;
-
+AnalogIn greenIN(PA_4);           //Input der Farbsensoren
+AnalogIn redIN(PA_1);
+Farbsensor green;               //Farbsensorklassen
+Farbsensor red;
 
 //Titel printf()
 void title() {
-    printf("\n  < ^  \t\t   ^   \t\t  ^ >  \t\t\t");
-    printf("  < _  \t\t   _   \t\t  _ >  \n\r");
+    printf("Green\t\tRedn\r");
 }
 
 
 int main() {
-    float sensorValue[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};    //Array der 6 Sensorenwerte
-
-    t1.attach(&title, 5);   //Betitelung der Sensorwerte alle 5 Sekunden
-
-    //Initialisiert Distanzsensoren
-    for( int i = 0; i < 6; i++) {
-        sensors[i].init(&distance, &bit0, &bit1, &bit2, i);
+    //Initialisiert Farbsensoren
+    green.init(&greenIN);
+    red.init(&redIN);
+    
+    title();
+    while(1){
+        printf("%f\t%f\n\r", green.read(), red.read());     //Plottet die Farbsensoren
+        wait(0.1f);
     }
-    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 i = 0; i < 6; i++){
-                sensorValue[i] += sensors[i].read();
-            }
-            wait( 0.01f );
-        }
-        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
-    }
+    
 }