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