Facebook
From furkan, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 123
  1. #define echoPin 24 //Ultrasonik sensörün echo pini Arduino'nun 24.pinine
  2. #define trigPin 22 //Ultrasonik sensörün trig pini Arduino'nun 22.pinine tanımlandı.
  3.  
  4. #define MotorRE 10
  5. #define MotorR1 33
  6. #define MotorR2 31  // Motor pinlerini tanımlıyoruz.
  7.  
  8. #define MotorL1 51
  9. #define MotorL2 53
  10. #define MotorLE 11
  11.  
  12. #define SensorSol 4
  13. #define SensorOrta 5
  14. #define SensorSag 6  // 3 sensörün pinleri tanımlandı
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22. int har1, har2, har3,ger;
  23. long sure, uzaklik; //süre ve uzaklık diye iki değişken tanımlıyoruz.
  24.  
  25. void setup() {
  26.  
  27.  
  28.   // ultrasonik sensör Trig pininden ses dalgaları gönderdiği için OUTPUT (Çıkış),
  29.   // bu dalgaları Echo pini ile geri aldığı için INPUT (Giriş) olarak tanımlanır.
  30.   pinMode(echoPin, INPUT);
  31.   pinMode(trigPin, OUTPUT);
  32.  
  33.   pinMode(SensorSol, INPUT);
  34.   pinMode(SensorSag, INPUT);
  35.   pinMode(SensorOrta, INPUT);
  36.  
  37.   pinMode(MotorL1, OUTPUT);
  38.   pinMode(MotorL2, OUTPUT);
  39.   pinMode(MotorLE, OUTPUT); //Motorlarımızı çıkış olarak tanımlıyoruz.
  40.   pinMode(MotorR1, OUTPUT);
  41.   pinMode(MotorR2, OUTPUT);
  42.   pinMode(MotorRE, OUTPUT);
  43.  
  44.  
  45.   Serial.begin(9600);
  46.  
  47. }
  48.  
  49. void loop() {
  50.  
  51.  
  52.   digitalWrite(trigPin, LOW); //sensör pasif hale getirildi
  53.   delayMicroseconds(5);
  54.   digitalWrite(trigPin, HIGH); //Sensore ses dalgasının üretmesi için emir verildi
  55.   delayMicroseconds(10);
  56.   digitalWrite(trigPin, LOW); //Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi
  57.  
  58.   sure = pulseIn(echoPin, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor
  59.   uzaklik = sure / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor
  60.  
  61.   Serial.println(uzaklik);
  62.  
  63.   if (uzaklik < 10) // Uzaklık 15'den küçük ise,
  64.   {
  65.  dur();
  66.  ger=1;
  67.   }
  68.  // else if (uzaklik >10 && uzaklik <15 && har1==1)
  69.   {
  70.   //ileri1();
  71.   }
  72.   //else if (uzaklik >=10 && uzaklik <15 && har1==2)
  73.   {
  74.    // sol1();
  75.   }
  76.  // else if (uzaklik >=10 &&uzaklik <11 && har1==3)
  77.   {
  78.    // sag1();
  79.   }
  80.   //else // değil ise,
  81.   {  
  82.      if(ger==1 && uzaklik>10){  // Orta sensör çizgiyi gördüğünde robot ileri gitsin.
  83.    
  84.                                                                                          
  85.    
  86.     geri();
  87.     ger=0;
  88.      }
  89.    
  90.                                                                                                                                                                
  91.  
  92.     if(digitalRead(SensorSol) == 0 && digitalRead(SensorOrta) == 1 && digitalRead(SensorSag) == 0){  // Orta sensör çizgiyi gördüğünde robot ileri gitsin.
  93.    
  94.                                                                                          
  95.    
  96.     ileri();
  97.     har1=digitalRead(SensorOrta);
  98.                                                                                                    }
  99.  
  100.     if(digitalRead(SensorSol) == 0 && digitalRead(SensorOrta) == 0 && digitalRead(SensorSag) == 1){  // Sağ sensör çizgiyi gördüğünde robot sağa dönsün.
  101.    
  102.     sol();
  103.     har2=digitalRead(SensorSag);
  104.                                                                                                   }
  105.  
  106.     if(digitalRead(SensorSol) == 1 && digitalRead(SensorOrta) == 0 && digitalRead(SensorSag) == 0){  // Sol sensör çizgiyi gördüğünde robot sola dönsün.
  107.    
  108.     sag();
  109.     har3=digitalRead(SensorSol);
  110.                                                                                                    }
  111.   }
  112. }
  113.  
  114.  
  115.  
  116.  
  117.  
  118. void ileri(){  // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz.
  119.  
  120.   digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  121.   digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  122.   analogWrite(MotorRE, 50); // Sağ motorun hızı 150
  123.  
  124.   digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  125.   digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  126.   analogWrite(MotorLE, 50); // Sol motorun hızı 150
  127.  
  128.  
  129. }
  130.  
  131.  
  132. void sag(){ // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz.
  133.  
  134.   digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  135.   digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  136.   analogWrite(MotorRE, 0); // Sağ motorun hızı 0 (Motor duruyor)
  137.  
  138.   digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  139.   digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  140.   analogWrite(MotorLE, 50); // Sol motorun hızı 150
  141.  
  142.  
  143. }
  144.  
  145.  
  146. void geri(){ // Robotun geri yönde hareketi için fonksiyon tanımlıyoruz.
  147.  
  148.   digitalWrite(MotorR1, LOW); // Sağ motorun ileri hareketi pasif
  149.   digitalWrite(MotorR2, HIGH); // Sağ motorun geri hareketi aktif
  150.   analogWrite(MotorRE, 150); // Sağ motorun hızı 150
  151.  
  152.   digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi pasif
  153.   digitalWrite(MotorL2, HIGH); // Sol motorun geri hareketi aktif
  154.   analogWrite(MotorLE, 150); // Sol motorun hızı 150
  155.  
  156. }
  157.  
  158. void sol(){// Robotun sola dönme hareketi için fonksiyon tanımlıyoruz.
  159.  
  160.   digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  161.   digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  162.   analogWrite(MotorRE, 50); // Sağ motorun hızı 0 (Motor duruyor)
  163.  
  164.   digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  165.   digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  166.   analogWrite(MotorLE, 0); // Sol motorun hızı 150
  167.  
  168. }
  169. void dur(){//Robotun durma komutu
  170.   digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  171.   digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  172.   analogWrite(MotorRE, 0); // Sağ motorun hızı 0 (Motor duruyor)
  173.  
  174.   digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  175.   digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  176.   analogWrite(MotorLE, 0); // Sol motorun hızı 150
  177.  
  178.  
  179. }
  180. void cizgibulma(){//Robotun cizgiyi bulana kadar yapacağı hareket
  181.   digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  182.   digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  183.   analogWrite(MotorRE, 0); // Sağ motorun hızı 0 (Motor duruyor)
  184.  
  185.   digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  186.   digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  187.   analogWrite(MotorLE, 0); // Sol motorun hızı 150
  188.  
  189.  
  190. }
  191. void ileri1(){  // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz.
  192.  
  193.   digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  194.   digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  195.   analogWrite(MotorRE, 65); // Sağ motorun hızı 150
  196.  
  197.   digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  198.   digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  199.   analogWrite(MotorLE, 65); // Sol motorun hızı 150
  200.  
  201.  
  202. }
  203.  
  204.  
  205. void sag1(){ // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz.
  206.  
  207.   digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  208.   digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  209.   analogWrite(MotorRE, 0); // Sağ motorun hızı 0 (Motor duruyor)
  210.  
  211.   digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  212.   digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  213.   analogWrite(MotorLE, 65); // Sol motorun hızı 150
  214.  
  215.  
  216. }
  217. void sol1(){// Robotun sola dönme hareketi için fonksiyon tanımlıyoruz.
  218.  
  219.   digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  220.   digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  221.   analogWrite(MotorRE, 65); // Sağ motorun hızı 0 (Motor duruyor)
  222.  
  223.   digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  224.   digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  225.   analogWrite(MotorLE, 0); // Sol motorun hızı 150
  226.  
  227. }