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);
                     
                     }
                 
      
}