25.04.17
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
--- /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
--- /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
--- 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; -} -
--- 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
--- 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 - } + }