Last active
January 26, 2016 15:56
-
-
Save Robimek/5d3fff545aca6cc40a3c to your computer and use it in GitHub Desktop.
Arduino ile Engel Algılayan Robot Projesi
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> | |
//motor pinleri | |
#define OnMotor_sol 9 | |
#define OnMotor_sag 10 | |
#define ArkaMotor_ileri 11 | |
#define ArkaMotor_Geri 12 | |
//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() | |
{ | |
//motor çıkışları | |
pinMode(OnMotor_sol, OUTPUT); | |
pinMode(OnMotor_sag, OUTPUT); | |
pinMode(ArkaMotor_ileri, OUTPUT); | |
pinMode(ArkaMotor_Geri, OUTPUT); | |
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() | |
{ | |
digitalWrite(OnMotor_sag, LOW); | |
digitalWrite(OnMotor_sol, LOW); | |
digitalWrite(ArkaMotor_Geri, LOW); | |
digitalWrite(ArkaMotor_ileri, HIGH); | |
} | |
void geri() | |
{ | |
digitalWrite(OnMotor_sag, LOW); | |
digitalWrite(OnMotor_sol, LOW); | |
digitalWrite(ArkaMotor_Geri, HIGH); | |
digitalWrite(ArkaMotor_ileri, LOW); | |
} | |
void sol_ileri() | |
{ | |
digitalWrite(OnMotor_sag, LOW); | |
digitalWrite(OnMotor_sol, HIGH); | |
digitalWrite(ArkaMotor_Geri, LOW); | |
digitalWrite(ArkaMotor_ileri, HIGH); | |
} | |
void sol_geri() | |
{ | |
digitalWrite(OnMotor_sag, LOW); | |
digitalWrite(OnMotor_sol, HIGH); | |
digitalWrite(ArkaMotor_Geri, HIGH); | |
digitalWrite(ArkaMotor_ileri, LOW); | |
} | |
void sag_ileri() | |
{ | |
digitalWrite(OnMotor_sol, LOW); | |
digitalWrite(OnMotor_sag, HIGH); | |
digitalWrite(ArkaMotor_ileri, HIGH); | |
digitalWrite(ArkaMotor_Geri, LOW); | |
} | |
void sag_geri() | |
{ | |
digitalWrite(OnMotor_sol, LOW); | |
digitalWrite(OnMotor_sag, HIGH); | |
digitalWrite(ArkaMotor_ileri, LOW); | |
digitalWrite(ArkaMotor_Geri, HIGH); | |
} | |
void dur() | |
{ | |
digitalWrite(OnMotor_sag, LOW); | |
digitalWrite(OnMotor_sol, LOW); | |
digitalWrite(ArkaMotor_ileri, LOW); | |
digitalWrite(ArkaMotor_Geri, LOW); | |
} | |
// sensörün mesafe ölçümü | |
void sensor_olcum() | |
{ | |
delay(50); | |
zaman = sonar.ping(); | |
uzaklik = zaman / US_ROUNDTRIP_CM; | |
} |
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 | |
#include <Servo.h>// servo motor kütüphanesi | |
#include <NewPing.h> | |
//motor pinleri | |
#define SolMotorileri 9 | |
#define SolMotorGeri 10 | |
#define SagMotorileri 11 | |
#define SagMotorGeri 12 | |
//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() | |
{ | |
//motor çıkışları | |
pinMode(SolMotorileri, OUTPUT); | |
pinMode(SolMotorGeri, OUTPUT); | |
pinMode(SagMotorileri, OUTPUT); | |
pinMode(SagMotorGeri, OUTPUT); | |
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) | |
{ | |
sol(); | |
delay(500); | |
ileri(); | |
} | |
else if(sol_uzaklik <sag_uzaklik) | |
{ | |
sag(); | |
delay(500); | |
ileri(); | |
} | |
else | |
{ | |
geri(); | |
} | |
} | |
} | |
// robotun yön komutları | |
void ileri() | |
{ | |
digitalWrite(SolMotorGeri, LOW); | |
digitalWrite(SolMotorileri, HIGH); | |
digitalWrite(SagMotorGeri, LOW); | |
digitalWrite(SagMotorileri, HIGH); | |
} | |
void geri() | |
{ | |
digitalWrite(SolMotorileri, LOW); | |
digitalWrite(SolMotorGeri, HIGH); | |
digitalWrite(SagMotorileri, LOW); | |
digitalWrite(SagMotorGeri, HIGH); | |
} | |
void sol() | |
{ | |
digitalWrite(SolMotorileri, LOW); | |
digitalWrite(SolMotorGeri, HIGH); | |
digitalWrite(SagMotorGeri, LOW); | |
digitalWrite(SagMotorileri, HIGH); | |
} | |
void sag() | |
{ | |
digitalWrite(SolMotorGeri, LOW); | |
digitalWrite(SolMotorileri, HIGH); | |
digitalWrite(SagMotorileri, LOW); | |
digitalWrite(SagMotorGeri, HIGH); | |
} | |
void dur() | |
{ | |
digitalWrite(SolMotorGeri, LOW); | |
digitalWrite(SolMotorileri, LOW); | |
digitalWrite(SagMotorileri, LOW); | |
digitalWrite(SagMotorGeri, LOW); | |
} | |
// 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
Proje sayfası : http://www.robimek.com/engel-algilayan-robot/