/ Mbed 2 deprecated Rome_P1

Dependencies:   mbed

Committer:
wengefa1
Date:
Wed Feb 26 14:20:16 2020 +0000
Revision:
2:f381fc3a8eaf
Parent:
0:c88f41ac2cb7
Motor Controller added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wengefa1 0:c88f41ac2cb7 1 /*
wengefa1 0:c88f41ac2cb7 2 * IRSensor.h
wengefa1 0:c88f41ac2cb7 3 * Copyright (c) 2020, ZHAW
wengefa1 0:c88f41ac2cb7 4 * All rights reserved.
wengefa1 0:c88f41ac2cb7 5 */
wengefa1 0:c88f41ac2cb7 6
wengefa1 0:c88f41ac2cb7 7 #include <cmath>
wengefa1 0:c88f41ac2cb7 8 #include "IRSensor.h"
wengefa1 0:c88f41ac2cb7 9
wengefa1 0:c88f41ac2cb7 10 using namespace std;
wengefa1 0:c88f41ac2cb7 11
wengefa1 0:c88f41ac2cb7 12 /**
wengefa1 0:c88f41ac2cb7 13 * Creates and initialises the driver to read the distance sensors.
wengefa1 0:c88f41ac2cb7 14 * @param distance the analog input to read a distance value from.
wengefa1 0:c88f41ac2cb7 15 * @param bit0 a digital output to control the multiplexer.
wengefa1 0:c88f41ac2cb7 16 * @param bit1 a digital output to control the multiplexer.
wengefa1 0:c88f41ac2cb7 17 * @param bit2 a digital output to control the multiplexer.
wengefa1 0:c88f41ac2cb7 18 * @param number the number of the sensor. This value must be between 0 and 5.
wengefa1 0:c88f41ac2cb7 19 */
wengefa1 0:c88f41ac2cb7 20 IRSensor::IRSensor(AnalogIn& distance, DigitalOut& bit0, DigitalOut& bit1, DigitalOut& bit2, int number) : distance(distance), bit0(bit0), bit1(bit1), bit2(bit2) {
wengefa1 0:c88f41ac2cb7 21
wengefa1 0:c88f41ac2cb7 22 this->number = number;
wengefa1 0:c88f41ac2cb7 23 }
wengefa1 0:c88f41ac2cb7 24
wengefa1 0:c88f41ac2cb7 25 /**
wengefa1 0:c88f41ac2cb7 26 * Deletes this IRSensor object and releases all allocated resources.
wengefa1 0:c88f41ac2cb7 27 */
wengefa1 0:c88f41ac2cb7 28 IRSensor::~IRSensor() {}
wengefa1 0:c88f41ac2cb7 29
wengefa1 0:c88f41ac2cb7 30 /**
wengefa1 0:c88f41ac2cb7 31 * This method reads from the distance sensor.
wengefa1 0:c88f41ac2cb7 32 * @return a distance value, given in [m].
wengefa1 0:c88f41ac2cb7 33 */
wengefa1 0:c88f41ac2cb7 34 float IRSensor::read() {
wengefa1 0:c88f41ac2cb7 35
wengefa1 0:c88f41ac2cb7 36 // bitte implementieren!
wengefa1 0:c88f41ac2cb7 37 bit0 = (number >> 0)&1;
wengefa1 0:c88f41ac2cb7 38 bit1 = (number >> 1)&1;
wengefa1 0:c88f41ac2cb7 39 bit2 = (number >> 2)&1;
wengefa1 0:c88f41ac2cb7 40
wengefa1 2:f381fc3a8eaf 41 float dist = -0.58f*sqrt(distance)+0.58f;
wengefa1 0:c88f41ac2cb7 42
wengefa1 0:c88f41ac2cb7 43 return dist;
wengefa1 0:c88f41ac2cb7 44
wengefa1 0:c88f41ac2cb7 45
wengefa1 0:c88f41ac2cb7 46
wengefa1 0:c88f41ac2cb7 47 }
wengefa1 0:c88f41ac2cb7 48