an ultrasonic sensor used as a car sensor

Dependencies:   N5110 PowerControl beep mbed sensor

main.cpp

Committer:
sjaffal3
Date:
2015-04-30
Revision:
0:be8f580f1b5b
Child:
1:475a5b7258fa

File content as of revision 0:be8f580f1b5b:

            //#include "
#include "mbed.h"
#include "SRF02.h"
#include "N5110.h"
#include "beep.h"


            //Pins
N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
SRF02 sensor(p28, p27);
InterruptIn button(p17);
Beep buzzer(p21);
PwmOut green1(p22);
PwmOut green2(p23);
PwmOut yellow1(p24);
PwmOut yellow2(p25);
AnalogIn pot(p20);

Serial pc(USBTX, USBRX);

            //prototype
void welcomeMessage();
void drawObject();
void getDistance();
void readDistance();
void distance1();
void distance2();
void distance3();

            //variables
int distance;
int i=0;

int main()
{
            
            // the LCD display is initiated first when switch is on
    lcd.init();
    welcomeMessage();
    lcd.clear();
    pot.read();

    while (1) {
        int distance=sensor.getDistanceCm();
        char buffer[14];
        int length = sprintf(buffer,"D= %d cm",distance);
        if(length<=14)
        lcd.printString(buffer,0,0);
        wait(1.0);
        lcd.clear();
         if (distance >= 51 && distance <= 71) {
        //lcd.drawRect(7,0,7,48,1);
        //lcd.drawRect(44,0,7,12,1);
        //lcd.drawRect(51,0,7,24,1);
        //lcd.drawRect(57,0,7,12,1);
        lcd.refresh();
        i=3;
    }
    else if (distance >= 35 && distance <= 50) {
        /*lcd.drawRect(7,0,7,48,1);
        lcd.drawRect(40,0,7,12,1);
        lcd.drawRect(47,0,7,24,1);
        lcd.drawRect(53,0,7,12,1);*/
        lcd.refresh();
        i=2;
    }
    else   {
        
        i=1;
        buzzer.beep(1000, 60);
    }
        /*if (i==1) //set the if distance is larger or smaller in here and directly link to the LED colors
        {
          distance1();
          }
          else if (i==2){
              distance2();
              }
              else {
                  distance3();
                  }
          lcd.setBrightness(pot.read());    
          //  buzzer.beep(1000,3);*/

        
        
        //drawObject();
        //wait(2);
        //lcd.clear();
        //getDistance();
       // readDistance();
       // lcd.clear();
    }



}

            //Print welcome message (Change pixel coordinate later)
void welcomeMessage()
{
    
    lcd.printString("200911007", 0,4);
    lcd.printString("Saleh Jaffal", 0,3);
    lcd.refresh();
    wait (2.0);
}

            //LCD display distance between object and the car
void drawObject()
{
    lcd.drawRect(7,0,7,48,1);
    lcd.drawRect(65,0,7,12,1);
    lcd.drawRect(71,0,7,24,1);
    lcd.drawRect(77,0,7,12,1);
    lcd.refresh();
}

void getDistance()
{
    distance == sensor.getDistanceCm();
}

/*void readDistance()
{
        if (distance >= 235) {
        lcd.drawRect(7,0,7,48,1); //wall
        lcd.drawRect(65,0,7,12,1); //car1
        lcd.drawRect(71,0,7,24,1); //car2
        lcd.drawRect(77,0,7,12,1); //car3
        lcd.refresh();
        i=3;
    }
    else if (distance >= 205 && distance <= 234) {
        lcd.drawRect(7,0,7,48,1); //wall
        lcd.drawRect(61,0,7,12,1);
        lcd.drawRect(67,0,7,24,1);
        lcd.drawRect(73,0,7,12,1);
        lcd.refresh();
        i=3;
    }
    else if (distance >= 175 && distance <= 204) {
        lcd.drawRect(7,0,7,48,1);
        lcd.drawRect(57,0,7,12,1);
        lcd.drawRect(63,0,7,24,1);
        lcd.drawRect(69,0,7,12,1);
        lcd.refresh();
        i=2;
    }
    else if (distance >= 135 && distance <= 174) {
        lcd.drawRect(7,0,7,48,1);
        lcd.drawRect(53,0,7,12,1);
        lcd.drawRect(59,0,7,24,1);
        lcd.drawRect(65,0,7,12,1);
        lcd.refresh();
        i=2;
    }
    else if (distance >= 105 && distance <= 134) {
        lcd.drawRect(7,0,7,48,1);
        lcd.drawRect(49,0,7,12,1);
        lcd.drawRect(55,0,7,24,1);
        lcd.drawRect(61,0,7,12,1);
        lcd.refresh();
        i=2;
    }
    else if (distance >= 75 && distance <= 104) {
        lcd.drawRect(7,0,7,48,1);
        lcd.drawRect(44,0,7,12,1);
        lcd.drawRect(51,0,7,24,1);
        lcd.drawRect(57,0,7,12,1);
        lcd.refresh();
        i=1;
    }
    else if (distance >= 45 && distance <= 74) {
        lcd.drawRect(7,0,7,48,1);
        lcd.drawRect(40,0,7,12,1);
        lcd.drawRect(47,0,7,24,1);
        lcd.drawRect(53,0,7,12,1);
        lcd.refresh();
        i=1;
    }
    else if (distance <= 44) {
        
        lcd.drawRect(7,0,7,48,1);
        lcd.drawRect(65,0,7,12,1);
        lcd.drawRect(71,0,7,24,1);
        lcd.drawRect(77,0,7,12,1);
        lcd.refresh();
        
        i=1;
        buzzer.beep(1000, 60);
    }
}*/

void distance1()
{
    green1 = 1;
    green2=1;
    yellow1 = 1;
        yellow2 = 1;
   // buzzer.beep(1000,200);
    
}

void distance2()
{
    yellow1 = 1;
        yellow2 = 1;
        green1 = 0;
    green2=0;
    

   // buzzer.beep(1000,100);
}

void distance3()
{
    yellow1 = 0;
        yellow2 = 0;
        green1 = 0;
    green2=0;
    

   // buzzer.beep(1000,50);
}