Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of Sensortest by
Revision 1:82a1ebe6ce11, committed 2017-04-25
- Comitter:
- EHess
- Date:
- Tue Apr 25 14:57:31 2017 +0000
- Parent:
- 0:fb3f7c677c18
- Commit message:
- 25.04.17
Changed in this revision
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
- }
+
}
