EMT 2410 | Project Wall-E A Radar Detection System Using the HCSR04 Ultrasonic Sensor for Object Detection and Text LCD to output distance and angle of a Servo Motor.

Dependencies:   Servo TextLCD mbed ultra

Committer:
Andres0131
Date:
Fri May 18 01:14:46 2018 +0000
Revision:
1:1452468e1e49
Parent:
0:faeefad8239f
out project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Andres0131 0:faeefad8239f 1 #include "mbed.h"
Andres0131 0:faeefad8239f 2 #include "Servo.h"
Andres0131 0:faeefad8239f 3 #include "TextLCD.h"
Andres0131 0:faeefad8239f 4 #include "hcsr04.h"
Andres0131 0:faeefad8239f 5
Andres0131 0:faeefad8239f 6
Andres0131 0:faeefad8239f 7 int angle (int);
Andres0131 0:faeefad8239f 8
Andres0131 0:faeefad8239f 9 HCSR04 usensor(D8,D9);
Andres0131 0:faeefad8239f 10
Andres0131 0:faeefad8239f 11
Andres0131 0:faeefad8239f 12
Andres0131 0:faeefad8239f 13 TextLCD lcd( D0,D1, D2, D3, D4, D5,TextLCD::LCD16x2);
Andres0131 0:faeefad8239f 14
Andres0131 0:faeefad8239f 15 unsigned int dist;
Andres0131 0:faeefad8239f 16
Andres0131 0:faeefad8239f 17
Andres0131 0:faeefad8239f 18 int main() {
Andres0131 0:faeefad8239f 19 int angle1;
Andres0131 0:faeefad8239f 20 Servo Servo1(D15);
Andres0131 0:faeefad8239f 21
Andres0131 0:faeefad8239f 22 Servo1.Enable(1500,20000);
Andres0131 0:faeefad8239f 23
Andres0131 0:faeefad8239f 24
Andres0131 0:faeefad8239f 25 while(1) {
Andres0131 0:faeefad8239f 26
Andres0131 0:faeefad8239f 27
Andres0131 0:faeefad8239f 28 for (int pos = 0; pos < 2000; pos += 11) {
Andres0131 0:faeefad8239f 29
Andres0131 0:faeefad8239f 30 lcd.locate(0,0);
Andres0131 0:faeefad8239f 31 Servo1.SetPosition(pos);
Andres0131 0:faeefad8239f 32 angle1 = angle(pos);
Andres0131 0:faeefad8239f 33 lcd.cls();
Andres0131 0:faeefad8239f 34 lcd.printf("Angle=%d",angle1, "DEG");
Andres0131 0:faeefad8239f 35 printf ("%d", angle1);
Andres0131 0:faeefad8239f 36 printf (",");
Andres0131 0:faeefad8239f 37 printf ("%d", dist);
Andres0131 0:faeefad8239f 38 printf (".");
Andres0131 0:faeefad8239f 39 usensor.start();
Andres0131 0:faeefad8239f 40 wait_ms(0);
Andres0131 0:faeefad8239f 41 dist=usensor.get_dist_cm();
Andres0131 0:faeefad8239f 42 lcd.locate(0,1);
Andres0131 0:faeefad8239f 43 lcd.printf("cm:%ld",dist );
Andres0131 0:faeefad8239f 44
Andres0131 0:faeefad8239f 45 wait_ms(10);
Andres0131 0:faeefad8239f 46 }
Andres0131 0:faeefad8239f 47
Andres0131 0:faeefad8239f 48 for (int pos = 2000; pos > 0; pos -= 11) {
Andres0131 0:faeefad8239f 49 lcd.locate(0,0);
Andres0131 0:faeefad8239f 50 Servo1.SetPosition(pos);
Andres0131 0:faeefad8239f 51 angle1 = angle(pos);
Andres0131 0:faeefad8239f 52 lcd.cls();
Andres0131 0:faeefad8239f 53 lcd.printf("Angle=%d",angle1 , "DEG");
Andres0131 0:faeefad8239f 54 printf ("%d", angle1);
Andres0131 0:faeefad8239f 55 printf (",");
Andres0131 0:faeefad8239f 56 printf ("%d", dist);
Andres0131 0:faeefad8239f 57 printf (".");
Andres0131 0:faeefad8239f 58 usensor.start();
Andres0131 0:faeefad8239f 59 wait_ms(0);
Andres0131 0:faeefad8239f 60 dist=usensor.get_dist_cm();
Andres0131 0:faeefad8239f 61 lcd.locate(0,1);
Andres0131 0:faeefad8239f 62 lcd.printf("cm:%ld",dist );
Andres0131 0:faeefad8239f 63
Andres0131 0:faeefad8239f 64 wait_ms(10);
Andres0131 0:faeefad8239f 65
Andres0131 0:faeefad8239f 66 }
Andres0131 0:faeefad8239f 67
Andres0131 0:faeefad8239f 68 }
Andres0131 0:faeefad8239f 69
Andres0131 0:faeefad8239f 70
Andres0131 0:faeefad8239f 71
Andres0131 0:faeefad8239f 72 }
Andres0131 0:faeefad8239f 73
Andres0131 0:faeefad8239f 74
Andres0131 0:faeefad8239f 75 int angle (int pos)
Andres0131 0:faeefad8239f 76 {
Andres0131 0:faeefad8239f 77 int angle = (pos / 11 );
Andres0131 0:faeefad8239f 78 return angle;
Andres0131 0:faeefad8239f 79 }
Andres0131 0:faeefad8239f 80