Encoder und Sensorwerte

Dependencies:   mbed

Fork of Bewegungen by kings

Committer:
EHess
Date:
Wed May 10 09:14:12 2017 +0000
Revision:
1:d40ff07e2fe0
Parent:
0:96f88638114b
Encoder und Sensorwerte

Who changed what in which revision?

UserRevisionLine numberNew contents of line
EHess 1:d40ff07e2fe0 1 #include "IRSensor.h"
EHess 1:d40ff07e2fe0 2 #include <cmath>
EHess 0:96f88638114b 3
EHess 1:d40ff07e2fe0 4 //E. Hess
EHess 1:d40ff07e2fe0 5 //IRSensor.cpp
EHess 0:96f88638114b 6
EHess 1:d40ff07e2fe0 7 //Konstruktor -> Erstellt ein IRSensor-Objekt
EHess 1:d40ff07e2fe0 8 //AnalogIn* distance -> Liest die Voltanzahl des Sensors aus
EHess 1:d40ff07e2fe0 9 //DigitalOut* bit0, bit1, bit2 -> Binär-Outputs wählen die 6 Sensoren an
EHess 1:d40ff07e2fe0 10 //Int number -> Sensornummer als int (0-5)
EHess 0:96f88638114b 11
EHess 1:d40ff07e2fe0 12 IRSensor::IRSensor() {}
EHess 0:96f88638114b 13
EHess 1:d40ff07e2fe0 14 IRSensor::IRSensor(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number) {
EHess 1:d40ff07e2fe0 15 this->distance = distance; //Weist den Objektvariablen, die eingegebenen Werte zu
EHess 0:96f88638114b 16 this->bit0 = bit0;
EHess 0:96f88638114b 17 this->bit1 = bit1;
EHess 0:96f88638114b 18 this->bit2 = bit2;
EHess 0:96f88638114b 19 this->number = number;
EHess 0:96f88638114b 20 }
EHess 0:96f88638114b 21
EHess 1:d40ff07e2fe0 22 //Destruktor -> Löscht das IRSensor-Objekt
EHess 0:96f88638114b 23 IRSensor::~IRSensor() {}
EHess 0:96f88638114b 24
EHess 1:d40ff07e2fe0 25 //Initialisiert nachträglich
EHess 1:d40ff07e2fe0 26 void IRSensor::init(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number) {
EHess 1:d40ff07e2fe0 27 this->distance = distance; //Weist den Objektvariablen, die eingegebenen Werte zu
EHess 1:d40ff07e2fe0 28 this->bit0 = bit0;
EHess 1:d40ff07e2fe0 29 this->bit1 = bit1;
EHess 1:d40ff07e2fe0 30 this->bit2 = bit2;
EHess 1:d40ff07e2fe0 31 this->number = number;
EHess 1:d40ff07e2fe0 32 }
EHess 1:d40ff07e2fe0 33
EHess 1:d40ff07e2fe0 34 //Distanzrechner
EHess 0:96f88638114b 35 float IRSensor::read()
EHess 0:96f88638114b 36 {
EHess 1:d40ff07e2fe0 37 *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)
EHess 1:d40ff07e2fe0 38 *bit1 = (number >> 1) & 1; //Vergleicht das zweite Bit von rechts
EHess 1:d40ff07e2fe0 39 *bit2 = (number >> 2) & 1; //Vergleicht das dritte Bit von rechts
EHess 0:96f88638114b 40
EHess 1:d40ff07e2fe0 41 float d = distance->read();
EHess 1:d40ff07e2fe0 42 return d;
EHess 1:d40ff07e2fe0 43 }