Last active
April 2, 2016 20:11
-
-
Save Robimek/35c850484231e580222fd7589b7615e6 to your computer and use it in GitHub Desktop.
Adafruit Motor Shield Engel Algılayan Robot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Yazılım Geliştirme By Robimek - 2015 | |
//oyuncak araba içim | |
#include <Servo.h>// servo motor kütüphanesi | |
#include <NewPing.h> | |
#include <AFMotor.h> | |
//motor pinleri | |
AF_DCMotor direksiyon(1, MOTOR12_8KHZ ); | |
AF_DCMotor arka_motor(2, MOTOR12_8KHZ ); | |
//sensör pinleri | |
#define USTrigger 6 | |
#define USEcho 7 | |
#define Maksimum_uzaklik 100 | |
Servo servo; //servo motor tanımlama | |
NewPing sonar(USTrigger, USEcho, Maksimum_uzaklik);//ultrasonik sensör tanımlama | |
//kullanılacak eleman tanımı | |
unsigned int uzaklik; | |
unsigned int on_uzaklik; | |
unsigned int sol_uzaklik; | |
unsigned int sag_uzaklik; | |
unsigned int zaman; | |
// program ilk çalıştığında sadece bir kez çalışacak programlar | |
void setup() | |
{ | |
Serial.begin(9600); | |
servo.attach(4); //servo pin tanımı | |
} | |
// sonsuz döngü | |
void loop() | |
{ | |
delay(500); | |
servo.write(90); | |
sensor_olcum(); | |
on_uzaklik = uzaklik; | |
if(on_uzaklik > 35 || on_uzaklik == 0) | |
{ | |
ileri(); | |
} | |
else | |
{ | |
dur(); | |
servo.write(180); | |
delay(500); | |
sensor_olcum(); | |
sol_uzaklik = uzaklik; | |
servo.write(0); | |
delay(500); | |
sensor_olcum(); | |
sag_uzaklik = uzaklik; | |
servo.write(90); | |
delay(500); | |
if(sag_uzaklik <sol_uzaklik) | |
{ | |
sag_geri(); | |
delay(500); | |
sol_ileri(); | |
delay(500); | |
ileri(); | |
} | |
else if(sol_uzaklik <sag_uzaklik) | |
{ | |
sol_geri(); | |
delay(500); | |
sag_ileri(); | |
delay(500); | |
ileri(); | |
} | |
else | |
{ | |
geri(); | |
delay(500); | |
} | |
} | |
} | |
// robotun yön komutları | |
void ileri() | |
{ | |
direksiyon.run(RELEASE); | |
arka_motor.run(FORWARD); | |
arka_motor.setSpeed(255); | |
direksiyon.setSpeed(0); | |
} | |
void geri() | |
{ | |
direksiyon.run(RELEASE); | |
arka_motor.run(BACKWARD); | |
arka_motor.setSpeed(255); | |
direksiyon.setSpeed(0); | |
} | |
void sol_ileri() | |
{ | |
direksiyon.run(FORWARD); // SOL İÇİN İLERİ | |
arka_motor.run(FORWARD); | |
arka_motor.setSpeed(255); | |
direksiyon.setSpeed(255); | |
} | |
void sol_geri() | |
{ | |
direksiyon.run(FORWARD); | |
arka_motor.run(BACKWARD); | |
arka_motor.setSpeed(255); | |
direksiyon.setSpeed(255); | |
} | |
void sag_ileri() | |
{ | |
direksiyon.run(BACKWARD); | |
arka_motor.run(FORWARD); | |
arka_motor.setSpeed(255); | |
direksiyon.setSpeed(255); | |
} | |
void sag_geri() | |
{ | |
direksiyon.run(BACKWARD); | |
arka_motor.run(BACKWARD); | |
arka_motor.setSpeed(255); | |
direksiyon.setSpeed(255); | |
} | |
void dur() | |
{ | |
direksiyon.run(RELEASE); | |
arka_motor.run(RELEASE); | |
arka_motor.setSpeed(0); | |
direksiyon.setSpeed(0); | |
} | |
// sensörün mesafe ölçümü | |
void sensor_olcum() | |
{ | |
delay(50); | |
zaman = sonar.ping(); | |
uzaklik = zaman / US_ROUNDTRIP_CM; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment