/**************************************************************************************************
*
*  Supersonic SRF05 - Module
*
*   Version:      1.0.0 - January 2009
*   Author:       Etienne Ribeiro    / tutorial assistant caad      /  eribeiro[at]ethz.ch
*   Supervisor:   Christoph Wartmann / chair for caad - ETH Zürich  /  wartmann[at].arch.ethz.ch
*
*   Desc:         This Module can be used to plug severel Supersonic SRF05 Sensors to your
*                 project. Connect your sensors to any digital pin on your board.
*
*   Methode:      int SRF05_getDistance (int digitalPin)
*                   digitalPin: Pin where your Supersonic Sensor is connected.
*                 void SRF05_getDistanceInCM (int digitalPin, int *ret1, int *ret2)
*                   digitalPin: Pin where your Supersonic Sensor is connected.
*                   *ret1: Return Value (upper). Access this value by &var
*                   *ret2: Return Value (lower). Access this value by &var
*                 void SRF05_toCM (int imp, int *ret1, int *ret2)
*                   imp: impules you mesured with SRF05_getDistance
*                   *ret1: Return Value (upper). Access this value by &var
*                   *ret2: Return Value (lower). Access this value by &var
*
***************************************************************************************************/



//
// Functions

int SRF05_getDistance (int digitalPin) {

        // Trigger pulse
        pinMode(digitalPin, OUTPUT);
        digitalWrite(digitalPin, LOW);
        delayMicroseconds(2);
        digitalWrite(digitalPin, HIGH);
        delayMicroseconds(10);
        digitalWrite(digitalPin, LOW);


        // Mesure echo pulse
        pinMode(digitalPin, INPUT);
        return pulseIn(digitalPin, HIGH); //, 1000);

}



void SRF05_getDistanceInCM (int digitalPin, int *ret1, int *ret2) {


        int val = SRF05_getDistance (digitalPin);
        SRF05_toCM (val, ret1, ret2);

}


void SRF05_toCM (int imp, int *ret1, int *ret2) {

        *ret1 = imp / 58;
        *ret2 = imp % 58 * 100 / 58;

}