Hello Please I wanna fix the code problems as it does not run through arduino propaply
Here is the CODE:
/***************************************************************//* *//* Garage Controller Range v2.0 *//* *//***************************************************************/#include <SPI.h>#define SF(x) String(F(x))#define CF(x) String(F(x)).c_str()#define RANGE_MIN 35#define RANGE_MAX 39#define RANGE_1 49#define RANGE_2 64#define RANGE_3 84#define RANGE_4 200int iPinRed1 = 3;int iPinRed2 = 4;int iPinRed3 = 5;int iPinRed4 = 6;int iPinGreen1 = 7;int iPinRed5 = 8;int iPinRange = 9;/***************************************************************//* Function: setup *//***************************************************************/void setup(){ Serial.begin(9600); Serial.println(SF("setup()")); pinMode(iPinRed1, OUTPUT); pinMode(iPinRed2, OUTPUT); pinMode(iPinRed3, OUTPUT); pinMode(iPinRed4, OUTPUT); pinMode(iPinGreen1, OUTPUT); pinMode(iPinRed5, OUTPUT); pinMode(iPinRange, OUTPUT);}/***************************************************************//* Function: loop *//***************************************************************/void loop(){ long lDuration = 0, lCM = 0; // 2 Microsecond Clear + 5 Microsecond Pulse pinMode(iPinRange, OUTPUT); digitalWrite(iPinRange, LOW); delayMicroseconds(2); digitalWrite(iPinRange, HIGH); delayMicroseconds(5); digitalWrite(iPinRange, LOW); // Get Return Pulse pinMode(iPinRange, INPUT); lDuration = pulseIn(iPinRange, HIGH); lCM = ConvertMSToCM(lDuration); Serial.println("Distance: " + String(lCM) + " cm"); // Too Close if (lCM < RANGE_MIN) { digitalWrite(iPinRed1, LOW); digitalWrite(iPinRed2, LOW); digitalWrite(iPinRed3, LOW); digitalWrite(iPinRed4, LOW); digitalWrite(iPinGreen1, LOW); digitalWrite(iPinRed5, HIGH); } // Perfect else if (lCM >= RANGE_MIN & lCM < RANGE_MAX) { digitalWrite(iPinRed1, LOW); digitalWrite(iPinRed2, LOW); digitalWrite(iPinRed3, LOW); digitalWrite(iPinRed4, LOW); digitalWrite(iPinGreen1, HIGH); digitalWrite(iPinRed5, LOW); } // Range 1 else if (lCM >= RANGE_MAX & lCM < RANGE_1) { digitalWrite(iPinRed1, HIGH); digitalWrite(iPinRed2, HIGH); digitalWrite(iPinRed3, HIGH); digitalWrite(iPinRed4, HIGH); digitalWrite(iPinGreen1, LOW); digitalWrite(iPinRed5, LOW); } // Range 2 else if (lCM >= RANGE_1 & lCM < RANGE_2) { digitalWrite(iPinRed1, HIGH); digitalWrite(iPinRed2, HIGH); digitalWrite(iPinRed3, HIGH); digitalWrite(iPinRed4, LOW); digitalWrite(iPinGreen1, LOW); digitalWrite(iPinRed5, LOW); } // Range 3 else if (lCM >= RANGE_2 & lCM < RANGE_3) { digitalWrite(iPinRed1, HIGH); digitalWrite(iPinRed2, HIGH); digitalWrite(iPinRed3, LOW); digitalWrite(iPinRed4, LOW); digitalWrite(iPinGreen1, LOW); digitalWrite(iPinRed5, LOW); } // Range 4 else if (lCM >= RANGE_3 & lCM < RANGE_4) { digitalWrite(iPinRed1, HIGH); digitalWrite(iPinRed2, LOW); digitalWrite(iPinRed3, LOW); digitalWrite(iPinRed4, LOW); digitalWrite(iPinGreen1, LOW); digitalWrite(iPinRed5, LOW); } // Range 5 else if (lCM >= RANGE_4) { digitalWrite(iPinRed1, LOW); digitalWrite(iPinRed2, LOW); digitalWrite(iPinRed3, LOW); digitalWrite(iPinRed4, LOW); digitalWrite(iPinGreen1, LOW); digitalWrite(iPinRed5, LOW); } else { digitalWrite(iPinRed1, LOW); digitalWrite(iPinRed2, LOW); digitalWrite(iPinRed3, LOW); digitalWrite(iPinRed4, LOW); digitalWrite(iPinGreen1, LOW); digitalWrite(iPinRed5, LOW); } delay(50);}/***************************************************************//* Function: ConvertMSToCM *//***************************************************************/long ConvertMSToCM(long lMicroSeconds){ // The speed of sound is 340 m/s or 29 microseconds per centimeter. // The ping travels out and back, so to find the distance of the // object we take half of the distance travelled. - Arduino Site return lMicroSeconds / 29 / 2;}Here is the link to the project:
http://blog.mikejmcguire.com/2014/04/20/using-an-arduino-as-a-garage-gar-parking-sensor/


0 comments