an ultrasonic sensor used as a car sensor
Dependencies: N5110 PowerControl beep mbed sensor
main.cpp
- Committer:
- sjaffal3
- Date:
- 2015-05-08
- Revision:
- 1:475a5b7258fa
- Parent:
- 0:be8f580f1b5b
- Child:
- 2:9328053b2ba7
File content as of revision 1:475a5b7258fa:
/** @file main.cpp @brief Program implementation */ #include "main.h" int main() { // the LCD display is initiated first when switch is on PHY_PowerDown(); lcd.init(); welcomeMessage(); pot.read(); lcd.clear(); button.rise(&buttonPressed); while (1) { lcd.setBrightness(pot.read()); if (i==0) { getDistanceCm(); compDist(); } else if (i==1) { getDistanceIn(); compDist(); // Sleep(); } else if (i==2) { getDistanceUs(); compDist(); // Peripheral_PowerUp(0xFFFFFFFF); } else { getAcc(); compDist(); } } } void buttonPressed() { wait(0.2); if (i>3) { i=0; } else { i++; } } //Print welcome message (Change pixel coordinate later) void welcomeMessage() { lcd.printString("200911007", 0,1); lcd.printString("Saleh Jaffal", 0,0); lcd.refresh(); getDistanceCm(); getDistanceIn(); getDistanceUs(); } void getAcc() { getDistanceCm(); getDistanceUs(); dist = sensor.getDistanceCm(); tim = sensor.getDistanceUs(); Vel2 = ((dist)*10000/tim); Vel1 = ((distanceCm*10000)/distanceUs); Acc = (Vel2-Vel1)/(tim-distanceUs); } void getDistanceCm() { distance1 = sensor.getDistanceCm(); distance2 = sensor.getDistanceCm(); distance3 = sensor.getDistanceCm(); distance4 = sensor.getDistanceCm(); distance5 = sensor.getDistanceCm(); distance6 = sensor.getDistanceCm(); distance7 = sensor.getDistanceCm(); distance8 = sensor.getDistanceCm(); distance9 = sensor.getDistanceCm(); distance10 = sensor.getDistanceCm(); sum = distance1+distance2+distance3+distance4+distance5+distance6+distance7+distance8+distance9+distance10; distanceCm = sum/10; } void getDistanceIn() { distance1 = sensor.getDistanceIn(); distance2 = sensor.getDistanceIn(); distance3 = sensor.getDistanceIn(); distance4 = sensor.getDistanceIn(); distance5 = sensor.getDistanceIn(); distance6 = sensor.getDistanceIn(); distance7 = sensor.getDistanceIn(); distance8 = sensor.getDistanceIn(); distance9 = sensor.getDistanceIn(); distance10 = sensor.getDistanceIn(); sum = distance1+distance2+distance3+distance4+distance5+distance6+distance7+distance8+distance9+distance10; distanceIn = sum/10; } void getDistanceUs() { distance1 = sensor.getDistanceUs(); distance2 = sensor.getDistanceUs(); distance3 = sensor.getDistanceUs(); distance4 = sensor.getDistanceUs(); distance5 = sensor.getDistanceUs(); distance6 = sensor.getDistanceUs(); distance7 = sensor.getDistanceUs(); distance8 = sensor.getDistanceUs(); distance9 = sensor.getDistanceUs(); distance10 = sensor.getDistanceUs(); sum = distance1+distance2+distance3+distance4+distance5+distance6+distance7+distance8+distance9+distance10; distanceUs = sum/10; } void distanceA() { green1=1; green2=0; yellow1=0; yellow2=0; red1=0; red2=0; buzzer.beep(2000,0.1); } void distanceB() { green1=1; green2=1; yellow1=0; yellow2=0; red1=0; red2=0; buzzer.beep(2000,0.15); } void distanceC() { green1=1; green2=1; yellow1=1; yellow2=0; red1=0; red2=0; buzzer.beep(2000,0.2); } void distanceD() { green1=1; green2=1; yellow1=1; yellow2=1; red1=0; red2=0; buzzer.beep(2000,0.25); } void distanceE() { green1=1; green2=1; yellow1=1; yellow2=1; red1=1; red2=0; buzzer.beep(2000,0.8); } void distanceF() { green1=1; green2=1; yellow1=1; yellow2=1; red1=1; red2=1; buzzer.beep(2000,200); } void compDist() { if (i==0) { char buffer[14]; int length = sprintf(buffer,"D= %d cm",distanceCm); if(length<=14); lcd.clear(); lcd.printString(buffer,0,0); wait(0.2); if (distanceCm >= 100) { lcd.refresh(); distanceA(); } else if (distanceCm >= 80 && distanceCm <= 99) { lcd.refresh(); distanceB(); } else if (distanceCm >= 60 && distanceCm <= 79) { lcd.refresh(); distanceC(); } else if (distanceCm >= 40 && distanceCm <= 59) { lcd.refresh(); distanceD(); } else if (distanceCm >= 20 && distanceCm <=39 ) { lcd.refresh(); distanceE(); } else { lcd.refresh(); distanceF(); } } else if (i==1) { char buffer[14]; int length = sprintf(buffer,"D= %d in",distanceIn); if(length<=14); lcd.clear(); lcd.printString(buffer,0,0); wait(0.2); if (distanceIn >= 40) { lcd.refresh(); distanceA(); } else if (distanceIn >= 32 && distanceIn <= 39) { lcd.refresh(); distanceB(); } else if (distanceIn >= 24 && distanceIn <= 31) { lcd.refresh(); distanceC(); } else if (distanceIn >= 16 && distanceIn <= 23) { lcd.refresh(); distanceD(); } else if (distanceIn >= 8 && distanceIn <=15 ) { lcd.refresh(); distanceE(); } else { lcd.refresh(); distanceF(); } } else if (i==2) { char buffer[14]; int length = sprintf(buffer,"D= %d us",distanceUs); if(length<=14); lcd.clear(); lcd.printString(buffer,0,0); wait(0.2); if (distanceUs >= 5900) { lcd.refresh(); distanceA(); } else if (distanceUs >= 4680 && distanceUs <= 5899) { lcd.refresh(); distanceB(); } else if (distanceUs >= 3400 && distanceUs <= 4679) { lcd.refresh(); distanceC(); } else if (distanceUs >= 2430 && distanceUs <= 3339) { lcd.refresh(); distanceD(); } else if (distanceUs >= 1220 && distanceUs <=2429 ) { lcd.refresh(); distanceE(); } else { lcd.refresh(); distanceF(); } } else { char buffer[14]; int length = sprintf(buffer,"Acc= %d m/s",Vel2); if(length<=14); char buffer2[14]; int length2 = sprintf(buffer2,"Acc= %d m/s",Vel1); if(length2<=14); lcd.clear(); lcd.printString(buffer,0,0); lcd.printString(buffer2,0,2); wait(0.2); } }