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:
- Arduino UNO Rev3
- 28BYJ-48 redüktörlü step motor ve sürücü kartı
- Bir ucu erkek bir ucu dişi jumper kablo
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:
- Arduino UNO
- 28BYJ-48 redüktörlü step motor ve sürücü kartı
- ESP8266 Wifi Modülü
- Bir ucu erkek bir ucu dişi jumper kablo
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); }
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?
“myStepper.setSpeed(1.5);” yerine
“myStepper.setSpeed(12);”
denediniz mi ?
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.
Kullandığınız motorun fazlarını yanlış bağlamış olabilirsiniz. Yazıda da belirttiğim gibi motorun kablo sayısına göre bağlantı şekli bipolar veya unipolar olabilir. Step motorların bağlantı ve sürülüş farkları için https://maker.robotistan.com/dc-motor-cesitleri-nelerdir/ yazımızı inceleyebilirsiniz.
200 adımlık bir step motorum var. Ben 2,5 adım aralıkla hareket ettirmek istiyorum. Nasıl bir yol izlemeliyim
arduinoya sağa veya sola dönme dışında konumunu koruma komutunu nasıl veririz ?
Sağa veya sola dönmesi durduktan sonra motor kendi konumunu koruyacaktır.
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
Devreyi buton ile kontrol edebilmek için gerekli devre şemasını yayınlayabilir misiniz ?
Sistem belirtilen dosyayı bulamıyor karta yüklenirken hata oluştu diyor sorun nedir yardımcı olabilir misiniz ?
Bu devreyi potansiyometre ile kullanmama yardımcı olur musunuz ?
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
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
Motorların fazlarının doğru bağlı olduğundan emin misiniz?
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
ben 180 derece dönmesini istiyorum nasıl değiştirecem
Ö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 🙂
“Error compiling for board” diyor yardımcı olabilir misiniz ?
Herkese 1 gün arayla cevap vermişsiniz. Bana da cevap verin. İyi Akşamlar…
Arduino IDE yazılımını bilgisayarınızdan kaldırıp tekrar yüklemeyi deneyebilirsiniz. Ayrıca malumunuz herkesin her sorununa 1 gün arayla cevap vermemiz genelde mümkün olmuyor, elimizden geldiği kadarıyla yardımcı olmaya çalışıyoruz. Kusura bakmayın.
Cevabınız için teşekkür ederim. Çözümünüzü deneyeceğim.
Sorunun çözüldü mü?
Merhabalar ben step motoruna rampa kalkısı yapmak ıstıyorum
Yani yavastan hızlıya dogru nasil ayarlayabilirim
Bu adresteki step motor sürme kütüphanesini kullanabilirsiniz: http://www.airspayce.com/mikem/arduino/AccelStepper/
ben kumandalı step motor yapmak istiyorum ama programını bulamadım yardımcı olur musunuz?
merhaba,
kumandalı 3 step motor kontrolü devresine buradan ulaşabilirsiniz.
https://www.youtube.com/watch?v=Iuagv6XbOik
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 ?
Verdiği hatayı ve satır numarasını belirtirseniz daha kolay bir şekilde yardımcı olabiliriz.
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
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
Mümkündür: http://www.ti.com/lit/an/slyt482/slyt482.pdf
Sürücüye enerji verince sadece 1 ledi yanıyor sebebi nedir?
Arduino uno ile step motor sürmek istiyorum ama grbl error 9 hatası veriyor . Ne yapmalıyım lütfen yardımcı olurmusunuz ?
Bu motoru mpu6050 gyro ile kontrol etmek mümkün mü?
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.
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.
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.
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…
İ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.
İyi günler, söyleneni yapıyorum, motor saat yönünde hiç durmaksızın dönüyor. Neyi yanlış yapıyorum acaba?
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.
Merhaba, step motoru ile 1. butonla saga 200 mm, 2. butonla sola 400 mm surmek icin hangi kod yazilmalidir?
Bir if veya switch/case yapısı ile iki butonun durumunu kontrol edip bu durumlara göre farklı yönlerde ve tur sayısında motoru döndürmeniz mümkündür. Örnek olarak Arduino Dersleri 5: Dijital Girişler dersimize başvurabilirsiniz.
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.
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.
Ben de easy driver var onunla olur mu? Bu şekilde kod yazılımını nasıl oluştururum? Teşekkürler
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.
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.
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.
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
Burada yer alan A4988 uyumlu Arduino kütüphanesini ve örnek kodunu kullanarak yapabilirsiniz. Örnek devre şeması da sayfada mevcuttur.
nerede ben goremedım
https://github.com/laurb9/StepperDriver
Ödevim için bana da yardım eder misiniz lütfen az bir sürem kaldı sorunumu aşağıya yazdım
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)
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
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.
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
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….
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.
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();
}
}
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?
Hc-sr04 mesafe sensörü ile motorun dönme süresini ayarlayabilir miyiz
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.
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
kardeşim bende de öyle oldu halledebildin mi ?
Nema 17 ile yapınca açı kontrolünü nasil yapabilirim kodlamada
merhaba step motor dönerken herhangi bir sıkışmaya maruz kalınca titremesine engel olmak için 20 adım ileri 20 adım geri yapmasını 10 denemeden sonra tamamen durmasını istiyorum. yardımcı olursanız sevinirim
Merhaba ben pic16f887 ile yapmaya çalışıyorum aynı projeyi. Ardunio hariç diğer malzemelerin hepsi aynı. Bütün parçalarımı sitenizden aldım zaten. Wifi komutunu nereye ekliyeceğim. Yani step motor sürme için yazdığım kodun neresine ekliyeceğim wifi kodlarını.Bu konulara pek hakim değilim. Yardımcı olursanız çok iyi olur
Step Motoru Çalıştıramadım, Ledler Sönük Yanıyor, Ethernet Shield ile çalıştırmak istiyorum ancak step motor dönmüyor, bunun için ne yapmam gerekiyor? Gücü Arduino’dan Sağlıyorum
BEN aynı projeyi WİFİ siz yapmak istiyorum fakat kodunu koymamışlar yardımcı olursanız sevinirim.
merhaba bu projeyi yapmaya çalıştım ancak AT dışında seripotra hiçbir yazı gelmiyor lütfen yardım edermisiniz
Merhaba ben bu projeyi yaptım ama seri port ekranında sürekli AT yazıyor başka bir şey yazmıyor nedeni nedir acaba?
Merhaba projeyi aynı şekilde yaptım ancak seri port ekranında
AT
AT+RST görünüyor. Ne yapmalıyım, yardımcı olur musunuz?
warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
if (Serial.find(“+IPD,”)) { //Bağlantı isteği geldiğinde içindeki komutlar çalışır.
^
kodu çalıştırdığım zaman yukarıdaki hatayı alıyorum çözümü nedir ?