Hallo,
Also die Multiplikation von x mit einer (kleinen) Fließkommazahl wird sicher keine schönen Werte liefern.
Die Variable x sollte dann schon vom Typ float sein.

Code:
const ON = 1; //andere Werte
const OFF = 0;
const Left = 2;
const Right = 1;
const Enable = 1;
const Disable = 0;
const Reset = 2;
Da fehlt doch der Typ der Variablen, also z.B. int ???

Und get_Ir_Distance kann im Moment auch mal keinen return-Wert haben, wenn Dir!=1 && Dir!!=2
Liefert der Compiler da keine Warnung ?

Bei ein paar Methoden kannst du die Parameter noch auf bool umstellen und ggf als inline-Methode
deklarieren, das spart etwas Programmspeicher und Ausführungszeit (Status_Led, IR_Enable).

Grüße,
Bernhard