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: Farbsensor IRSensorLib PID_Control Servo mbed PixyLib
Diff: Farbauswertung.cpp
- Revision:
- 0:422088ad7fc5
- Child:
- 1:5c44e2462a8b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Farbauswertung.cpp Wed May 10 08:59:22 2017 +0000 @@ -0,0 +1,99 @@ +#include "mbed.h" +#include "cstdlib" +//#include <cmath> +#include "Farbauswertung.h" + + +Farbauswertung::Farbauswertung(AnalogIn* SensorG, AnalogIn* SensorR, Servo* servoAusw) +{ + init(SensorG, SensorR, servoAusw); +} + + +Farbauswertung::Farbauswertung() {} + +/** + * Deletes the IRSensor object. + */ +Farbauswertung::~Farbauswertung() {} + + +void Farbauswertung::init(AnalogIn* SensorG, AnalogIn* SensorR, Servo* servoAusw) +{ + this->SensorG = SensorG; + this->SensorR = SensorR; + this->servoAusw = servoAusw; + farbsensor.init(SensorG, SensorR); + zustand = rot; +} + +void Farbauswertung::setSerialOutput(Serial *pc) +{ + this->pc = pc; +} + +int Farbauswertung::getState() { + return zustand; +} + +void Farbauswertung::auswertung() { + + if (farbsensor.readg()>=70.5 && farbsensor.readg()<=77.0 && farbsensor.readr()>=52.5 && farbsensor.readr()<=54.5){ //Lego Normal + zustand = gruen; + } else { + zustand = rot; + } + /* + else if (farbsensor.readg()>=77.8 && farbsensor.readg()<=79 && farbsensor.readr()>=72 && farbsensor.readr()<=74){ // Lego Aufrecht Boden + zustand = gruen; + } + else { + zustand = rot; + } + else if(farbsensor.readg()>=76 && farbsensor.readg()<=77 && farbsensor.readr()>=64 && farbsensor.readr()<=68){ // Lego Aufrecht Deckel + zustand = gruen; + } + else{ + zustand = rot; + } + */ + /* + if(zustand = gruen || (merker_gruen >=1 && merker_gruen < 300)){ //Einschaltverzögerung + merker_gruen ++; + robot_state=Lego_G; + } + + else if(merker_gruen == 300 || (merker_gruen1 >=1 && merker_gruen1 < 300)){ // Ausschaltverzögerung + merker_gruen =0; + merker_gruen1 ++; + Servo1 = 1.1f; + robot_state=Lego_G; + } + + else if(zustand = rot && merker_gruen == 0 && merker_gruen1 ==0){ + Servo1 =0.1f; //Grenze 0..7.4 + robot_state=Lego_R; + } + */ + if(zustand == gruen){ + servoAusw->write(1.1f); + //robot_state=Lego_G; + } + else{ + servoAusw->write(0.1f); + //robot_state=Lego_R; + } + + //Ausgaben an Konsole****************************************************** + //if (pc) { + pc->printf("\n\r"); + // pc.printf("front:%f\n\r", sensors[0].read()); + //pc.printf("right:%f\n\r", sensors[1].read()); + //pc.printf("left:%f\n\r", sensors[5].read()); + pc->printf("Gruen:%f\n\r", farbsensor.readg()); + //pc->printf("Zusatzzeile"); + pc->printf("Rot:%f\n\r", farbsensor.readr()); + pc->printf("Status:%d",zustand); + //} + +} \ No newline at end of file