Ultrasonic searcher with Servo controlled by PC
Dependencies: HCSR04 Servo TextLCD mbed
main.cpp
- Committer:
- Birkan
- Date:
- 2013-11-13
- Revision:
- 1:3707e73808d1
- Parent:
- 0:0fd92cba86c2
File content as of revision 1:3707e73808d1:
#include "mbed.h" #include "Servo.h" #include "hcsr04.h" #include "TextLCD.h" LocalFileSystem local("local"); // text dosyası açılımı Serial pc(USBTX, USBRX); // pc & mbed seri iletişimi TextLCD lcd(p15, p16, p17, p18, p19, p20); // rs, e, d4-d7 LCD pin bağlantısı Servo myservo(p21); // servo pin girişi DigitalOut hedef_var(LED1); DigitalOut working(LED2); DigitalOut open(LED3); DigitalOut close(LED4); HCSR04 usensor(p25,p9); // ultrasonic sensor trig, echo pinleri int dist; // distance için 'd' char c; // pc den alınan karakter için 'c' float p,i,j,a,b; // servo için adım tanımı int main() { working=1; // çalıştığını gösteriyor while(1) { for(p=0.0; p<=1.0; p += 0.05) // servo için adım { usensor.start(); // usensor sinyal gönderiyor wait_ms(500); dist=usensor.get_dist_cm(); // sinyal dönüşü mesafe hesabı lcd.cls(); lcd.locate(0,0); lcd.printf("Obs Range cm:%ld",dist); // LCD ye mesafe yazdırılıyor printf("%d\n ",dist); // printf("%f\n ",p); // if(dist<50) //30 cm den az hedef varsa doğrulamak için { lcd.cls(); lcd.locate(0,0); lcd.printf("Obs Range cm:%ld",dist); lcd.locate(0,1); lcd.printf("location :%f",p); hedef_var=1; } else if(dist>50) { hedef_var=0; } myservo = p; wait(0.2); } // SERVO GERİ DÖNÜYOR // for(p=1.0; p>0.0; p -=0.05) { usensor.start(); wait_ms(500); dist=usensor.get_dist_cm(); lcd.cls(); lcd.locate(0,0); lcd.printf("Obs Range cm:%ld",dist); printf(" %d\n ",dist); // printf("%f\n ",p); // if(dist<=50) { lcd.cls(); lcd.locate(0,0); lcd.printf("Obs Range cm:%ld",dist); lcd.locate(0,1); lcd.printf("location :%f",p); hedef_var=1; } else if(dist>50) { hedef_var=0; } myservo = p; wait(0.2); } } }