Merhabalar. Bu yazımızda öncelikle Arduino ile step motor kontrolünü öğreneceğiz. Ardından da ESP8266 kullanarak step motorumuzu internet üzerinden kontrol edeceğiz.

Step motorlarla alakalı detaylı bilgi almak isterseniz blog yazımızı ziyaret edebilirsiniz >>> Step Motor Nedir?

Arduino İle Step Motor Kontrolü

Step motorlar, hassas hareket gerektiren uygulamalarda kullanılan motorlardır. Fonksiyon olarak DC motorlar ile servo motorların her ikisinin de karakterini gösterir: istenildiğinde belirli bir konuma adım adım ilerleyebilir veya sürekli olarak yön kontrolü ve hız kontrolü yapılabilir. Normal yazıcılar ve 3B yazıcıların vazgeçilmez parçalarındandırlar.

Step motorlar, bipolar ve unipolar olmak üzere iki çeşittir: bipolar step motorlar 4 kablolu, unipolar step motorlar ise 4,5,6 ya da 8 kablolu olabilirler.

Bizim bu uygulamamızda kullanacağımız step motor genellikle sürücü kartıyla birlikte satılmaktadır. Bu sayede breadboard’a ihtiyaç duymadan kolaylıkla step motor Arduino bağlantısı yapmamız mümkündür. Step motor nasıl bağlanır sorusunu da böylece çözmüş oluyoruz.

Gerekli malzemeler:

Step Motor Arduino Bağlantısı
Step Motor Sürücü Devresi

Bu uygulamamız için hâlihazırda bulunan bir step motor kütüphanesi mevcuttur. Bu kütüphaneyi indirmek için şu linki tıklıyoruz: https://github.com/tardate/X113647Stepper/archive/master.zip

İndirme işlemi tamamlandığında, zip dosyasını açıyor ve X113647Stepper-master isimli klasörü C:\Program Files (x86)\Arduino\libraries klasörünün altına kopyalıyoruz. (Eğer bilgisayarınızda 32-bit Windows yüklü ise C:\Program Files\Arduino\libraries klasörünü kullanın.)

Arduino programımızı açıp Dosya > Örnekler > X113647Stepper-master > FullSweep adımlarını takip ediyoruz ve bu kodu kartımıza yüklüyoruz. Kodumuz, step motorumuzu önce tam tur bir yönde döndürecek, daha sonra zıt yönde tekrardan tam tur döndürecektir. Koddaki myStepper.setSpeed() fonksiyonunun değerini değiştirerek motorun dönme hızını ayarlayabiliriz.

Neden Step Motoru Doğrudan Arduino’ya Bağlamıyoruz Da Bir Sürücü Devresi Kullanıyoruz?

Step motorlar adım adım çok hassas dönme hareketi yaparak çalışan motorlardır. Girişlerine uygulanan pals sinyallerine karşı çıkış olarak analog dönme hareketi sağlarlar. Girişlerindeki bu pals sinyalleri ve ürettikleri analog çıkış sinyalleri sürücü devrelerinde kontrol edilir. Motor sürücü devreleri sayesinde hız ve yön kontrolleri sağlanmış olur.

Sitemizdeki step motor sürücü kartlarına buradan ulaşabilirsiniz.

Step Motor Sürmeyi Öğrendik. Şimdi İnternet Üzerinden Kontrol Etmeyi Öğrenelim

Gerekli Malzemeler:

ESP8266 ile kullanacağımız Step Motor devremizi kurabiliriz. Ayrıca videoda tavsiye ettiğimiz 100uF kondansatörü sitemizden bulabilirsiniz.

Uygulamamız için gerekli Arduino step motor kodunu aşağıdaki gibi yazabiliriz 🙂

String agAdi = "Robotistan";                   //Ağımızın adını buraya yazıyoruz.    

String agSifresi = "bmc34RbT124";             //Ağımızın şifresini buraya yazıyoruz.

int motorPin1 = 3, motorPin2 = 4, motorPin3 = 5, motorPin4 = 6; //Step motor pinlerini tanımlıyoruz.

 

void setup(){ 

  pinMode(motorPin1, OUTPUT);                                   //Motor pinleri OUTPUT olarak ayarlanır.

  pinMode(motorPin2, OUTPUT);

  pinMode(motorPin3, OUTPUT);

  pinMode(motorPin4, OUTPUT);

  Serial.begin(115200);                                         //Seri haberleşmeyi başlatıyoruz.

  Serial.println("AT");                                         //AT komutu ile modül kontrolünü yapıyoruz.

  while(!Serial.find("OK")){                                    //Modül hazır olana kadar bekliyoruz.

    Serial.println("AT");

  }

  delay(1000);  

  Serial.println("AT+RST");                                     //ESP8266'yı resetliyoruz.

  delay(1000);

  while(!Serial.find("ready"))                                  //Resetleme işleminin bitmesini bekliyoruz.

  delay(1000);

  Serial.println("AT+CWMODE=1");                                //Modülümüzü client olarak ayarlıyoruz.

  while(!Serial.find("OK"));                                    //Ayarlamanın tamamlanmasını bekliyoruz.

  Serial.println("AT+CWJAP=\""+agAdi+"\",\""+agSifresi+"\"");   //Wifi'a bağlanıyoruz.

  while(!Serial.find("OK"));                                    //Bağlanana kadar bekliyoruz.

  Serial.print("AT+CIFSR\r\n");                                 //IP adresini ve MAC adresini okuyoruz.

  Serial.print(espOkuma(1000));                                 //IP ve MAC adresini ekrana yazıyoruz.

  serialTemizle(2000);                                          //Seri haberleşmede kullanmadığımız verileri temizliyoruz.

  Serial.print("AT+CIPMUX=1\r\n");                              //Çoklu bağlantı ayarını yapıyoruz.

  serialTemizle(2000);

  Serial.print("AT+CIPSERVER=1,80\r\n");                        //Server oluşturuyoruz ve 80. porttan dinlemeye başlıyoruz.

  serialTemizle(2000);

}

void loop(){

  if(Serial.available()){                                       //Seri haberleşme verisi geldiğinde içindeki komutlar çalışır.

    if(Serial.find("+IPD,")){                                   //Bağlantı isteği geldiğinde içindeki komutlar çalışır.

      delay(200);

      int connectionId = Serial.read() - 48;                    //Bağlantı numarasını okuyoruz.

      String komut = espOkuma(1000);                            //Bağlantı komutlarını alıyoruz.    

      if(komut.indexOf("step=ileri") != -1){                    //İleri komutu geldiğinde içerisindeki komutlar çalışır.

        for(int adim = 0; adim < 5; adim++){                    //Step motora 5 kere ileri hareketi yaptırılır.

          stepIleri(50); 

        }

      }

      else if(komut.indexOf("step=geri") != -1){                //Geri komutu geldiğinde içerisindeki komutlar çalışır.

        for(int adim = 0; adim < 5; adim++){                    //Step motora 5 kere geri hareketi yaptırılır.

          stepGeri(50); 

        }

      }

      String sayfa = "<h1>Step Motor Kontrol</h1><br>";                           

      sayfa+="<br><a href=\"?step=ileri\"><button><h1>Ileri</h1></button></a>";

      sayfa+="<br><br><a href=\"?step=geri\"><button><h1>Geri</h1></button></a>";

      komut = "AT+CIPSEND=";                                    //Sayfa verisinin uzunluğu komut değişkenine eşitlenir.

      komut += connectionId;

      komut += ",";

      komut +=sayfa.length();

      komut +="\r\n";

      Serial.print(komut);                                      //Komut gönderilir.

      delay(1000);

      Serial.print(sayfa);                                      //Sayfa verisi gönderilir.

      delay(1000);

      komut = "AT+CIPCLOSE=";                                   //Bağlantı sonlandırma komutu ayarlanır.    

      komut+=connectionId;

      komut+="\r\n";

      Serial.print(komut);                                      //Bağlantı sonlandırma komutu gönderilir.

    }

  }

}

String espOkuma(long int zamanAsimi){                           //ESP'den gelen dönütleri okur.

  long int baslangic = millis();  

  String gelen;

  while(millis() - baslangic < zamanAsimi){                   

    if(Serial.available()>0){

        char c = Serial.read(); 

        gelen += c;

    } 

  }

  gelen.replace("AT+","");

  return gelen;

}

void serialTemizle(long int zamanAsimi){                         //Seri haberleşmede kullanmadığımız byteları temizler.

  long int baslangic = millis();

  while(millis() - baslangic < zamanAsimi){

    if(Serial.available()>0){

        Serial.read(); 

    } 

  }

}

void stepIleri(int beklemeSuresi){                               //Step motora ileri hareketi yaptırır.

  digitalWrite(motorPin1, HIGH);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, LOW);

  delay(beklemeSuresi);

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, HIGH);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, LOW);

  delay(beklemeSuresi);

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, HIGH);

  digitalWrite(motorPin4, LOW);

  delay(beklemeSuresi);

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, HIGH);

  delay(beklemeSuresi);

}

void stepGeri(int beklemeSuresi){                                //Step motora ileri hareketi yaptırır.

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, HIGH);

  delay(beklemeSuresi);

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, HIGH);

  digitalWrite(motorPin4, LOW);

  delay(beklemeSuresi);

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, HIGH);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, LOW);

  delay(beklemeSuresi);

  digitalWrite(motorPin1, HIGH);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, LOW);

  delay(beklemeSuresi);

}

73 Yorumlar

  1. myStepper.setSpeed() komutunu değiştirdiğimizde sayıyı ne kadar artırırsak artıralım hızı sınırlı kalıyor. Daha hızlı dönmesi için ne yapmalıyız?

  2. iyi günler. ben aynı yöntemi izledim fakat step motor bir tur atıp durdu. birdaha çalıştaramadım. komut verince motor titriyor ama dönme yok. nedeni ne olabilir. yardımcı olurmusunuz.

  3. 200 adımlık bir step motorum var. Ben 2,5 adım aralıkla hareket ettirmek istiyorum. Nasıl bir yol izlemeliyim

      • Hayırlı akşamlar granite resim lazerli resim yapma gravür makinesi yapmak istiyorum kartı ve lazeri hangi model alacağımı yazılımı yapabilirmiyim bilmiyorum bu konuda bana yardımcı olabilirmisiniz ve bu konuda ilgisi olan arkadaslar yorum yaparsa cok sevinirim

  4. Sizden aldığım l293d motor shield ile nema 14 7.4 ve 4 çıkışlı bipolar motoru süremedim sürekli titreme yapıyor yardımcı olurmusunuz

  5. iyi aksamlar arduino ile cnc yapmak istiyorum ve gerekli malzemeleri aldım. arduini ve step motor sürücüleri ve motorları bagladım. son sürüm ide yukledigimde grbl dosyaasını yukleyemiyorum. xloader donup kalıyor. 1.6.5 sürümde motorlardan sadece 1 tanesi ileri geri dönüyor. diger 2si ileri ve geri komutlarda hep aynı yöne dönüyor. yardım ederseniz sevinirim

  6. hepsi aynı renk sırasına göre baglı. sırayı degiştirmedim hiç. kırmızı siyah sarı beyaz bide beyaz sarı siyah kırmızı olarak bagladım. her sürücüye motorları sıra ile bagladım. tek sürücüde sıkıntı yok. iki sürücüyu baglayınca sıkıntı yok ama 3sürücüyü aynı anda baglayınca hata oluyor. şimdi 2 tanesi dogru calıosıyor. sadece 1 tanesi hep aynı yöne dönüyor. sürücülerün yerlerini değiştirince değisen bişey yok. yazılımsaal sanırım
    ide 1.6.5 kullanıyorum. son sürümde hiç calısmıyor

    • Öncelikle motorun datasheet’ini açıyoruz. Adım açısına datasheet’ten bakıyoruz. 180 derecenin kaç adıma denk düşeceğini basit bir matematik hesabı ile bulup o kadar adım istediğimiz yönde motorumuzu çalıştırıyoruz 🙂

  7. Ben raspberry Pi de kodları yazıyorum. Program aynı IDE programından yalnız sizin verdiğiniz kodları ‘error compiling’ diyerek hata veriyor. Ne yapmalıyım ?

  8. bende de karta yüklenirken sorun oluştu diyor ne yapmalıyım?
    bilisayara usb ile bağladım herşeyi yaptım ancak motorların hiçbiri kıpırdamıyo

  9. Step motoru otomatik kapı sisteminde kullanabilirmiyim ? belli bir süre hızlanan ivme sonrasında yavaslayan ivme bu şekilde kapı açılacak ve aynı işlemi tersi yönde tekrarlayıp kapı kapanacak

  10. Arduino uno ile step motor sürmek istiyorum ama grbl error 9 hatası veriyor . Ne yapmalıyım lütfen yardımcı olurmusunuz ?

    • Motoru kontrol etmek için sürücüye ve bir mikroişlemci kartına (Arduino) ihtiyacınız vardır. MPU6050 jiroskop/ivmeölçer sensöründen aldığınız veriyi işleyerek uygun hale getirip Arduino aracılığıyla motoru kontrol etmeniz mümkündür.

  11. agmet , iyi günler öncelikle senin yaşadıgın sıkıntıyla bende bir ay ugrastım. Öncelikle xloader ile yükleme yaparken baud rate yi dogru ayarladığından emin ol. Ve sürücü olarak tavsiyem bu tür minik sürücüler cd rom içindeki motorları sürebiliyor yüksek akım çeken motorları bağladığında yanabiliyor ve sürekli titreşim veriyor veya motor hiç çalışmıyor. Tavsiyem öncelikle cnc shield kullanıyorsan onu çıkar ve daha sonra eğer güçlü bir motor sürüyorsan TB6560 motor sürücüsünü kullanmalısın ben bu sekilde çözdüm olayı ve suan cnc cihazım süper sekilde calışıyor.
    Ayrıca dediğim sürücüyü alırsan eğer sakın “tüm toprak hatları aynı nasıl olsa” diyerek hepsini 12v nin yanındaki topraga verme . Arduino ya toprak girisi bağlanmadıgında motorlar ya hiç çalısmıyor veya tüm eksenleri bağladıgında motorun birisi geri yonde dönmüyor “DIR” pinindeki voltajı ölçerek sıkıntıyı bulabilirsin.

  12. merhabalar. iki adet step motoru robotumun hareketi için kullanmak istiyorum. Sola ve Sağa 90 derede açı ile döndürmek ileri ve geri yön vermek gibi bunu tek arduino ile yapmak mümkün mü acaba. Yani iki adet step motoru aynı anda kontrol edebilir miyim. Saygılarımla

    • Evet, bir tane Arduino kartıyla iki, hatta daha fazla motoru, ledleri vesaire kontrol edebilirsiniz. Tabii bağlantıları doğru yapmayı ihmal etmeyin.

  13. Merhaba Kerem Bey;
    yapmakta olduğum bir projede 1 adet nema 17 step motor ve easydriver kullanmaktayım. projede hem joystick hem de limitswitchler de bulunmakta. ancak motorum dönme hızını nasıl arttırabileceğime dair bir bilgiye ulaşamadım. 12V luk bir güç kaynağı kullanıyorum, bunu mu arttırmalıyım yoksa kodun içerinden mi müdahale etmeliyim bilemedim? bu konuda nasıl bir yardım alabilirim sizden? kod aşağıdaki gibi; şimdiden çok teşekkür ederim… iyi çalışmalar

    #define step_pin 9 // Pin 9 connected to Steps pin on EasyDriver
    #define dir_pin 8 // Pin 8 connected to Direction pin
    #define MS1 10 // Pin 10 connected to MS1 pin
    #define MS2 11 // Pin 11 connected to MS2 pin
    #define SLEEP 12 // Pin 12 connected to SLEEP pin

    #define X_pin A0 // Pin A0 connected to joystick x axis
    #define Joy_switch 4 // Pin 4 connected to joystick switch

    #define Limit01 2 // Pin 2 connected to Limit switch out
    #define Limit02 3 // Pin 3 connected to Limit switch out

    int step_speed = 10; // Speed of Stepper motor (higher = slower)

    void setup() {
    pinMode(MS1, OUTPUT);
    pinMode(MS2, OUTPUT);
    pinMode(dir_pin, OUTPUT);
    pinMode(step_pin, OUTPUT);
    pinMode(SLEEP, OUTPUT);

    pinMode(Limit01, INPUT);
    pinMode(Limit01, INPUT);

    pinMode(Joy_switch, INPUT_PULLUP);

    digitalWrite(SLEEP, HIGH); // Wake up EasyDriver
    delay(5); // Wait for EasyDriver wake up

    /* Configure type of Steps on EasyDriver:
    // MS1 MS2
    //
    // LOW LOW = Full Step //
    // HIGH LOW = Half Step //
    // LOW HIGH = A quarter of Step //
    // HIGH HIGH = An eighth of Step //
    */

    digitalWrite(MS1, LOW); // Configures to Full Steps
    digitalWrite(MS2, LOW); // Configures to Full Steps
    }

    void loop() {
    if (!digitalRead(Joy_switch)) { // If Joystick switch is clicked
    delay(500); // delay for deboucing
    switch (step_speed) { // check current value of step_speed and change it
    case 1:
    step_speed=10; // slow speed
    break;
    case 3:
    step_speed=1; // fast speed
    break;
    case 10:
    step_speed=3; // medium speed
    break;
    }
    }

    if (analogRead(X_pin) > 712) { // If joystick is moved Left
    if (!digitalRead(Limit01)) {} // check if limit switch is activated

    else { // if limit switch is not activated, move motor clockwise

    digitalWrite(dir_pin, LOW); // (HIGH = anti-clockwise / LOW = clockwise)
    digitalWrite(step_pin, HIGH);
    delay(step_speed);
    digitalWrite(step_pin, LOW);
    delay(step_speed);

    }
    }

    if (analogRead(X_pin) < 312) { // If joystick is moved right

    if (!digitalRead(Limit02)) {} // check if limit switch is activated

    else { // if limit switch is not activated, move motor counter clockwise

    digitalWrite(dir_pin, HIGH); // (HIGH = anti-clockwise / LOW = clockwise)
    digitalWrite(step_pin, HIGH);
    delay(step_speed);
    digitalWrite(step_pin, LOW);
    delay(step_speed);

    }
    }
    }

    • loop fonksiyonunda yer alan if (!digitalRead(Joy_switch)) altıdaki 500 sn’lik delay bu duruma sebep olabilir. Joystick switch’inizin debounce işlemi için farklı bir yöntem kullanmayı deneyebilirsiniz.

      • cevabınız için teşekkür ederim, ancak joystick switchleri iptal etmeme ve oradaki delay zamanını değiştirmeme rağmen motordaki hızda hiç bir değişiklik olmuyor. yukarıda tamamlanan int step_speed = 10; // Speed of Stepper motor (higher = slower) den başka bir tanım yapılamıyor. bunu sadece 1 yapabiliyorum. başka nereyi değiştirmem gerekiyor bilemedim. yine de teşekkürler…

  14. İYİ GÜNLER BANA AYNI BOYUTLARDA DAHA HIZLI DÖNEN BİR STEP MOTOR LAZIM BACAKLI BİR ROBOTTA KULLANMAK ÜZERE BİR ÖNERİNİZ VARMI ACABA ?

    • Step motorlar daha çok konum hassasiyeti odaklı uygulamalarda kullanıldığı için dönüş hızları her zaman belirtilmez. Bu derste görmüş olduğunuz step motorun içerisinde dahili olarak redüktör bulunduğundan, sitemizdeki diğer step motor çeşitlerine göre yavaş dönmektedir. Burada malesef önerebileceğimiz tek bir ürün bulunmamaktadır, siz kendi uygulamanıza uygun olanı kendi yapacağınız araştırma ile bulabilirsiniz.

  15. Merhabalar bilgisayara bağlıyken kullanırsak kartı yakar mıyız ? Hem +9V pil takıp hem de pc ye takılı olsa çözüm olur mu teşekkürler ?

    • Bağlayacağınız 9V pil Arduino’ya regülatör aracılığıyla güç vereceğinden herhangi bir sorun olmayacaktır. Dikkat etmeniz gereken tek nokta, Arduino üzerinde yer alan 5V veya 3.3V pinlerine yanlış gerilim uygulamamaktır. Vin pini veya adaptör girişinden uyguladığınız gerilim regülatörden geçerek Arduino üzerindeki 5V ve 3.3V hatlarını besleyecektir.

  16. Merhaba, Tinylab üzerinde Arduino motor shild ile 2 adet nema 17 2.8 volt 1,7 mA Step motor kullanmak istiyorum. Step motorların faz başına çektiği akım 2,8 volt bu sorun olurmu ?

    • Kullanacağınız step motor sürücü ve motor besleme için kullanacağınız harici güç kaynağı motorların çektiği akımı karşılayabiliyorsa sorun olmaz.

  17. Astrofotoğrafi için yıldız takip motoru yapmak istitorum. 200 adımlık motoru 400 adım veya daha fazla adım sayısına çıkartarak 24 saatte 1 tur yapacak şekilde ayarlamak istiyorum. Açı 1.8 derece açı uzun pozlama için fazla. 0.9 yada daha mikro steple daha az açılı adımlar ayarlayabilir miyim. Bunu bir kütüphanede bulabilir miyim.

    • Bu işlem için derste anlatılan sürücü kartı malesef ihtiyaçlarınızı karşılayamayacaktır. Step motorunuzu mikro adım sürmek isterseniz sitemizde bulunan A4988 veya DRV8825 sürücülerini kullanabilirsiniz.

        • Bahsettiğiniz sürücü ile ilgili malesef bilgim mevcut değil. Kullanacağınız sürücüye göre yazılımınız da doğal olarak değişecektir. Kartın dökümanları arasında örnek kod varsa buradan yararlanabilirsiniz.

  18. merhabalar ben üniversite bitirme projesi için arduino mega ve cnc shıeld kullanarak bir tasarım geliştirmek istiyorum. 2sistemde 2 step motor bulunuyor ve aynı anda aynı hareketleri yapıyorlar. 6 oluklu bir slindir sarılacak ve her olukta step motorlar duracak. 6 oluk bir tam tur yapmakta ama sarım arttıkça oluklar ARASI MESAFE artmakta yani mesafeyi eşitlemem gerekiyoroluklar üst üste gelmeli iç çap 2cm dış çap 5 cm olarak sarım işlemi yapmalıyım ama kod düzenleyemiyorum yardımcı olabilir misiniz.

  19. selam grbl controller ekranında sağ alt sarı bölmeye şekil ve şema atamıyorum.hangi yolu izlemeliyim.resime göre nasıl g code üretebilirim.hangi link den yardım alabilirim.makinem hazır ama hiç bir şey çizemedim.

  20. Ben normal a4988 le step motor çalıştırmayi denEdin ama yapamadım
    Motor saga doğru 5 sn içinde 180 derece dönecek 5 sn duracak sonra saga tekrar 5sn içinde 180 derece dönecek bunu sonsuza kadar devam ettirecek
    Nolur kodda ve Semana yardımcı olun acil yapmam lazım yapamadim

  21. Elimde l298n ve 5 pinli step motor var. L298n ile sürebilir miyim? Bunun devre şeması hakkında bilgi vermeniz mümkün mü yada hazırda olan kaynak var mı? (Bulamadım)

  22. iyi günler 100 metre ıleri git sonra sağa dön 50m daha git komutu çalıştırabılmek ıcın daha doğrusu burdaki sayı verilerini nasıl çekebiliriz cümleden yardımcı olabilirmisiniz

  23. Arduino ile 2 step motor surulebilir demisssiniz peki her 5 dakika da motor 1 belirli hareket yapacak sonra her 60 dakikada motor 2 bleirli bir hareket yapacak.bunu tek arduino ile yapabilirmiyim ? Saat modulu kullanmalimiyim.saat modulu kullanacaksam nereden kaybak bulabilrim.

  24. Yön sensöründen gelen bilgilere göre step moturun açı değiştirmesini istiyorum örneğin 2 voltta 30 ,4 voltta 60 derece gibi . Bunu arduinoda nasıl yapabilirim

  25. iyi çalışmalar. uzun zaman olmuş… ama bir problemim var yardımcı olursanız çok sevinirim. ben arduino uno, lcd keypad shield ve step motor kontrolü yapmak istiyorum motor 2048 adım ekranda 2048 adımda 1 tur yerine 360 derecede 1 tur atmasını istiyorum derece bölü adımı ekranda yazdıramadım. bu konuda yardımcı olursanız sevinirim iyi çalışmalar….

  26. Merhaba a4988 ile kontrol edilen bir NEMA 17 step motorunun. sağa veya sola döndüğünde iki ayrı ledi yakmak istiyorum. Nasıl yapabilirim.

  27. merhaba ben telefon üzerinden step motoru kontrol etmek istiyorum çalışması da şöyle olacak. ileri geri ve dur butonları olacak ileriye bastığımda ileri gidecek bu sırada dur butonuna bastığımda duracak aynı şekilde geri butonunda da aynı şey olacak bunun için hazır uygulama var fakat motoru döndüremiyorum ileri ve geri butonlarına bastığımda motorun lambaları 1 kez yanıp sönüyo aynı kodları uzaktan kumanda ile yaptım oldu ama telefon için aynı kodlar neden olmadı anlamadım ödevim için son aşama bu konuda yardım eder misiniz?

    • uzaktan kumanda kodları
      if (irrecv.decode(&results))
      {
      Serial.println(results.value, HEX);
      delay(500);
      irrecv.resume();
      }
      if (results.value == BUTON0)
      {
      adim1();
      adim2();
      adim3();
      adim4();
      delay(2);
      adim5();
      }
      if (results.value == BUTON1)
      {
      adim4();
      adim3();
      adim2();
      adim1();
      delay(2);
      adim5();
      }
      if (results.value == BUTON2)
      {
      adim5();
      }
      telefon kodları

      if (Serial.available()) // Eğer Bluetooth bağlantısı varsa kodları çalıştırır
      {
      char data = Serial.read();
      delay(100);
      if (data == ‘A’)
      {
      adim1();
      adim2();
      adim3();
      adim4();
      delay(2);
      adim5();
      }
      if (data == ‘B’)
      {
      adim4();
      adim3();
      adim2();
      adim1();
      delay(2);
      adim5();
      }
      if (data == ‘C’)
      {
      adim5();
      }
      }

  28. Merhaba ben telefondan step motoru kontrol etmek istiyorum calismasi da şöyle olacak ileri geri dur butonları olacak mesela ileriye bastığımda motor dönecek ve bu arada dur butonuna bastığımda da motor duracak aynı şey geri butonunda da olacak ödevim için çok gerekli yardım eder misiniz?

  29. Merhaba kodu hatadan dolayi calistirmadi.
    hata mesaji bu sekilde :Arduino:1.8.9 (Windows 10), Kart:”Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

    FullSweep:20:1: error: ‘X113647Stepper’ does not name a type

    X113647Stepper myStepper(STEPS_PER_REVOLUTION, 8, 9, 10, 11);

    ^

    C:\Users\LCA-PC-2\AppData\Local\Temp\arduino_modified_sketch_614277\FullSweep.ino: In function ‘void setup()’:

    FullSweep:24:3: error: ‘myStepper’ was not declared in this scope

    myStepper.setSpeed(6.5);

    ^

    C:\Users\LCA-PC-2\AppData\Local\Temp\arduino_modified_sketch_614277\FullSweep.ino: In function ‘void loop()’:

    FullSweep:29:3: error: ‘myStepper’ was not declared in this scope

    myStepper.step(STEPS_PER_REVOLUTION);

    exit status 1
    ‘X113647Stepper’ does not name a type

    en kisa surede cevap verirseniz cok memnnun olurum.Iyi gunler.

  30. ben kodu çalıştırdığım zaman seriport ekranında
    AT
    AT+RST yazıyor ve öyle kalıyor ne yapmam lazım yardımcı olabilirmisiniz

CEVAP VER

Please enter your comment!
Please enter your name here