BAĞLAN

Engel Algılayan Robot (Arduino obstacle robot)

  • Görüntülenme 16186
  • PAYLAŞ
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  

    Kendi Robotunu Yap projelerimizin bu bölümünde uzaktan kumandalı arabayı engele çarpmayan otonom hareket eden robota dönüştüreceğiz.Arabanın kendi devresini sökülerek  arduino ile yapacağımız devremizi yerleştireceğiz.Arabanın önüne ultrasonik sensör ve sensörün altına servo motor yerleştireceğiz.Bu sayede robot çevresini tarayarak nesnelere çarpmayacak.

    Kullanılan komponentler:

    1. Arduino Uno
    2. Uzaktan kumandalı araba
    3. Motor sürücü kartı
    4. HC-SR04 Ultrasonik mesafe sensörü

    Elektronik Devre Şeması:

    Fritzing devre şema dosyası >> engel algılayan robot devresi

    Yazılım Kısmı:

    Oyuncak araba için kod:

    // 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;
    }
    

    Eğer robot kit kullanacaksanız yani 2 tekerlekli kendi ekseninde dönebilen kitler için aşağıdaki yazılımı kullanabilirsiniz.

    // 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)
    {
    sag();
    delay(500);
    ileri();
    }
    else if(sol_uzaklik >sag_uzaklik)
    {
    sol();
    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;
    }
    

    L298N için örnek bağlantıdan diğer bağlantıları aynı şekilde yapabilirsiniz.

    L298N Shield için devre şeması:

    Fritzing dosyası : Engel Robot Devresi

    Bütün yazılımı buradan indirebilirsiniz. >> Engel algılayan robot

    Adafruit motor shield Oyuncak araba için arduino kodu

    // Yazılım Geliştirme By Robimek - 2015
    //oyuncak araba için
    #include <Servo.h>// servo motor kütüphanesi
    #include <NewPing.h>
    #include <AFMotor.h>
    AF_DCMotor direksiyon(1); // direksiyon 1 numaralı motor girişi
    AF_DCMotor arka_motor(4); // arka motor 4 numaralı motor girişi
    //sensör pinleri
    #define USTrigger 6
    #define USEcho 7
    #define Maksimum_uzaklik 100
    int hiz=255;
    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);
     arka_motor.run(RELEASE);
     direksiyon.run(RELEASE);
     arka_motor.setSpeed(hiz);
     direksiyon.setSpeed(hiz);
    servo.attach(9); // motor shiel üzerindeki servo pinini kullanın
    }
    // 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()
    {
     arka_motor.run(FORWARD);
     direksiyon.run(RELEASE);
     arka_motor.setSpeed(hiz);
     direksiyon.setSpeed(hiz);
    }
    void geri()
    {
    arka_motor.run(BACKWARD);
     direksiyon.run(RELEASE);
     arka_motor.setSpeed(hiz);
     direksiyon.setSpeed(hiz);
    }
    void sol_ileri()
    {
    arka_motor.run(FORWARD);
     direksiyon.run(FORWARD);
     arka_motor.setSpeed(hiz);
     direksiyon.setSpeed(hiz);
    }
    void sol_geri()
    {
    arka_motor.run(BACKWARD);
     direksiyon.run(FORWARD);
     arka_motor.setSpeed(hiz);
     direksiyon.setSpeed(hiz);
    }
     
    void sag_ileri()
    {
     arka_motor.run(FORWARD);
     direksiyon.run(BACKWARD);
     arka_motor.setSpeed(hiz);
     direksiyon.setSpeed(hiz);
    }
    void sag_geri()
    {
    arka_motor.run(BACKWARD);
     direksiyon.run(BACKWARD);
     arka_motor.setSpeed(hiz);
     direksiyon.setSpeed(hiz);
    }
     
    void dur()
    {
    arka_motor.run(RELEASE);
     direksiyon.run(RELEASE);
     arka_motor.setSpeed(hiz);
     direksiyon.setSpeed(hiz);
    }
    // sensörün mesafe ölçümü
    void sensor_olcum()
    {
    delay(50);
    zaman = sonar.ping();
    uzaklik = zaman / US_ROUNDTRIP_CM;
    }

    Adafruit motor shield Robot kit için arduino kodu

    // Yazılım Geliştirme By Robimek - 2015
    //Robot kit için
    #include <Servo.h>// servo motor kütüphanesi
    #include <NewPing.h>
    #include <AFMotor.h>
    //motor pinleri
    AF_DCMotor sag_motor(1); // sag_motor 1 numaralı motor girişi
    AF_DCMotor sol_motor(4); //sol motor 4 numaralı motor girişi
    //sensör pinleri
    #define USTrigger 6
    #define USEcho 7
    #define Maksimum_uzaklik 100
    int hiz=255;
    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);
     sol_motor.run(RELEASE);
     sag_motor.run(RELEASE);
     sol_motor.setSpeed(hiz);
     sag_motor.setSpeed(hiz);
    servo.attach(9); // motor shiel üzerindeki servo pinini kullanın
    }
    // 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();
    delay(500);
    ileri();
    }
    else if(sol_uzaklik >sag_uzaklik)
    {
    sol();
    delay(500);
    ileri();
    }
    else
    {
    geri();
    }
    }
    }
     
    // robotun yön komutları
    void ileri()
    {
     sol_motor.run(FORWARD);
     sag_motor.run(FORWARD);
     sol_motor.setSpeed(hiz);
     sag_motor.setSpeed(hiz);
    }
     
    void geri()
    {
    sol_motor.run(BACKWARD);
     sag_motor.run(BACKWARD);
     sol_motor.setSpeed(hiz);
     sag_motor.setSpeed(hiz);
    }
     
    void sol()
    {
    sol_motor.run(BACKWARD);
     sag_motor.run(FORWARD);
     sol_motor.setSpeed(hiz);
     sag_motor.setSpeed(hiz);
     
    }
     
    void sag()
    {
    sol_motor.run(FORWARD);
     sag_motor.run(BACKWARD);
     sol_motor.setSpeed(hiz);
     sag_motor.setSpeed(hiz);
    }
     
    void dur()
    {
    sol_motor.run(RELEASE);
     sag_motor.run(RELEASE);
     sol_motor.setSpeed(hiz);
     sag_motor.setSpeed(hiz);
    }
    // sensörün mesafe ölçümü
    void sensor_olcum()
    {
    delay(50);
    zaman = sonar.ping();
    uzaklik = zaman / US_ROUNDTRIP_CM;
    }

    Yazılımı yükleyerek gerekli bağlantıları yapıyoruz.Engele olan uzaklık mesafesini değiştirebilirsiniz.Kendi robotunuza göre algoritmayı geliştirebilirsiniz.

    Kendi Robotunu Yap projelerimizin bu bölümünde engele çarpmayan otonom hareket eden robotumuzu tamamladık.Bir sonraki projede görüşmek üzere…


    PAYLAŞ
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    Sezgin GÜL

    Sezgin GÜL

    Makine Mühendisi, Girişimci, Maker

    Kimler Neler Demiş?

    210 Yorum - "Engel Algılayan Robot (Arduino obstacle robot)"

    avatar
    Sıralama:   En Yeniler | Eskiler | Beğenilenler
    Ahmet
    Ziyaretçi

    Kardeş bağlantı şemaları net değil de l298 ve arduino batarya arasındaki bağlantıları net bi şekilde gösterebilirmisin rica etsem

    MuraT
    Ziyaretçi
    s.a. projeyi derlerken hata mesajı alıyorum. “Adafruit motor shield Robot kit için arduino kodu” kullanıyorum ————————————————- Arduino:1.6.12 (Windows 7), Kart:”Arduino/Genuino Uno” C:\Users\Murat KILINÇ\Desktop\robo1\robo1.ino: In function ‘void loop()’: robo1:37: error: ‘sensor_olcum’ was not declared in this scope robo1:41: error: ‘ileri’ was not declared in this scope robo1:45: error: ‘dur’ was not declared in this scope robo1:58: error: ‘sag’ was not declared in this scope robo1:60: error: ‘ileri’ was not declared in this scope robo1:64: error: ‘sol’ was not declared in this scope robo1:66: error: ‘ileri’ was not declared in this scope robo1:70: error: ‘geri’ was not declared in this scope exit… Daha Fazla »
    Turgay
    Ziyaretçi

    Aynı hatayı ben de alıyorum.

    Murat KILINÇ
    Ziyaretçi

    Hata ile ilgili yardım edecek biri varmı?

    Erol
    Ziyaretçi

    hocam arduıno kodunu adafruit motor shield ile olan engel algılayan devrede kullanabilirmiyiz bir sıkıntı olurmu ki.Teşekkür ederim.

    AHMET
    Ziyaretçi

    hocam servosuz yapmaya çalıştım ama olmuyo.kodu servosuz düzenleyebilir misiniz?

    haluk
    Ziyaretçi

    Adafruit motor shield Robot kit için arduino kodunu yükleyemiyorum exit hatası diye bir hata veriyor. yardımcı olurmusunuz?

    doğukan
    Ziyaretçi

    abi rar dosyasını direk kütüphane dosyalarının içine mi atmam gerekiyor

    besir
    Ziyaretçi

    2. devrenin robot kit yazılımında sag_motor.setSpeed(hız); burada derleme sırasında hata veriyor acil yardım edermisnz

    nejat
    Ziyaretçi

    unsigned int uzaklik;
    unsigned int on_uzaklik;
    unsigned int sol_uzaklik;
    unsigned int sag_uzaklik;
    unsigned int zaman;
    unsigned int hiz; bu satırı yukarı ekledim sorun çözüldü veya proğramda (hız) yazılı yere setSpeed(50); hız yazılı yere 0- 250
    arası değerde girilebilir girilen değer motor devrini veriyor

    Omer
    Ziyaretçi

    Sezgin abi sana emailden ulasmam gerek bir kodun duzeltilmesi gerek acaba yardim edebilirmisin cok hayra girirsin bak bitirme tezim ve kala kaldim bir turlu ilerlemiyo ancak senin ustesinden gelebilecegin bisey

    can
    Ziyaretçi

    devreyi yaptım hocam şuan sorunsuz çalışıyor. sadece delay’ları 200 yapınca soron cözüldü

    can
    Ziyaretçi

    hocam devreyi yaptım devre engeli görüyor duruyor servo sağ sol yapıyor ve öyle kalıyor sorun nerede acaba

    wpDiscuz

    Yeni Projeler More

    • 16 Şubat 2017
      1 hafta ÖNCE 2 Yorum

      Öğrenme Fonksiyonuna Sahip Hareket Kopyalayan Robot Kol Yapımı

      Bu projede öğrenme yoluyla hareket kopyalayan robot kol yapımından bahsedeceğim. Endüstride kullanılan robot kollar, her zaman aynı hareketleri yapmaya odaklıdır. Örneğin ürün bandından bir nesneyi alıp başka bir banda aktarımını yapan robot kollar sürekli aynı hareketi yapmaktadır. Bu hareketler önceden öğretilerek robot kola aktarılır. Burada da aynı mantıkla robot ...

    • 11 Şubat 2017
      2 hafta ÖNCE 10 Yorum

      Arduino İle Labirent Çözen Robot Yapımı

      Kendi robotunu yap projelerimizin bu bölümünde arduino ile labirent çözen robot yapacağız. Labirent çözen robot özellikle robot yarışmalarında yer almaktadır. Bir labirentin çözüm yolunu bulmak aslında tek bir etkene bağlıdır. Bu etken sağ veya sol taraftaki herhangi bir duvarı takip ettirmektir. Bu etkenden yola çıkarak robot sol veya sağ ...

    • 07 Şubat 2017
      3 hafta ÖNCE Yorum Yok

      Arduino ile MLX90614 Kızılötesi Sıcaklık Sensörü Kullanımı

      Cisme temas etmeden, cismin sıcaklığını ölçen MLX90614 kızılötesi sıcaklık sensöründen bahsedeceğim. Dahili bir 17-bit ADC ve güçlü bir DSP, MLX90614'ün ölçümlerinde yüksek doğruluk ve çözünürlük verir. Vücut sıcaklığı ölçmek için uygundur. Ayrıca hareket algılamada da kullanabilirsiniz. MLX90614 Özellikler: Ortam sıcaklığı ölçme aralığı -40 ile + 125 ° C Nesne ...

    • 05 Şubat 2017
      3 hafta ÖNCE Yorum Yok

      Arduino ile Yazıyı Sese Dönüştüren Emic 2 Modülü Kullanımı

      Robotunuzu konuşturmak ve neler olup bittiğini söyletmek ister misiniz ? Emic 2 yazıyı sese çeviren modülle kolaylıkla projeleriniz konuşabilir. Emic-2, Parallax tarafından, ses sentezini tamamen zahmetsiz kılmak için Grand Idea Studio ile birlikte tasarlanmıştır.

    • 31 Ocak 2017
      4 hafta ÖNCE 7 Yorum

      Arduino ile DHT22 Sıcaklık Nem Sensörü Kullanımı

      DHT sensörleri, kapasitif nem sensörü ve bir termistör olmak üzere iki parçadan oluşur. DHT11 ve DHT22 olan iki DHT modelini ele alalım. Görünüm ve pin yapısı olarak benzer görünmelerine rağmen farklı ölçüm hassasiyetlerine sahiptirler. Aşağıda iki modelin karşılaştırmasına bakalım.

    Bizi Takip Et

    Son Yorumlar

    Sezgin GÜL
    Sezgin GÜL 2017-02-25 23:01:46
    merhaba batuhan, hatanın sebebi AFMotor.h kütüphanesini yüklemediğinden kaynaklanmış. Kütüphaneyi buradan indirebilirsin http://www.robimek.com/wp-content/uploads/AFMOTOR-master.rar
    batuhan 2017-02-25 21:52:21
    sezgin bey öncelikle çok teşekkür ediyorum proje için ; Arduino ya kodu derlediğimde şöyle bir sorun ile karşılaşıyorum Arduino:1.8.1 (Windows.....
    Emin ERKMEN 2017-02-25 19:55:34
    Bu robotun üstüne ekleme yapabilir misiniz? 1 hafta içinde? Bu bizim için çok önemli.
    Sezgin GÜL
    Sezgin GÜL 2017-02-25 19:48:46
    Çizgili olan labirenti çözen robotlarda o özellik mevcut. İlerleyen günlerde o tarz proje paylaşacağım.
    Emin ERKMEN 2017-02-25 19:34:28
    Peki bu robot. En kısa yolu nasıl bulabilir. İkinci kez aynı labirentten geçtiği zaman en kısa yoldan gitmesi için ne.....
    Sezgin GÜL
    Sezgin GÜL 2017-02-25 18:10:10
    Kodlarda sorun yok videodaki robotta kullanılan kodlardır. Motor yönlerini doğru taktınız mı. Yön komutlarında doğru yönde dönüyorlar mı bunları da.....
    Emin ERKMEN 2017-02-25 18:03:27
    kodlarda sıkıntı yok yani?
    Sezgin GÜL
    Sezgin GÜL 2017-02-25 17:17:46
    Bağlantılarınız doğru ve sensörlerin konumları uygun ise enerji yetersizliğinden kaynaklanabilir