- Step Motorda çalışma modları
- Step Motorunu kontrol etmek için MATLAB Grafik Kullanıcı Arayüzü Oluşturma
- Arduino ile Step Motoru kontrol etmek için MATLAB Kodu
- Gerekli Malzeme
- Devre şeması
- MATLAB ile Step Motorun Kontrolü
Adım motorları, farklı adımlarla dönen fırçasız bir DC motordur ve birçok hassas hareket kontrol uygulaması için en iyi seçimdir. Ayrıca, step motorlar düşük hızda yüksek tork gerektiren konumlandırma, hız kontrolü ve uygulamalar için iyidir.
MATLAB'ın önceki derslerinde, DC motoru, Servo motoru ve Ev aletlerini kontrol etmek için MATLAB'ın nasıl kullanılacağını açıklamıştık. Bugün MATALB ve Arduino kullanarak Step Motorun nasıl kontrol edileceğini öğreneceğiz. MATLAB'da yeniyseniz, MATLAB ile basit LED yanıp sönme programına başlamanız önerilir.
Step Motorda çalışma modları
Step motor için kodlamaya başlamadan önce, bir step motorun çalışma veya dönme konseptini anlamalısınız. Kademeli modun statoru farklı bobin çiftlerinden yapıldığından, her bir bobin çifti birçok farklı yöntemle uyarılabilir, bu da modların birçok farklı modda çalıştırılmasını sağlar. Aşağıdakiler geniş sınıflandırmalardır
Tam Adım Modu
Tam adım uyarma modunda, minimum dönüş sayısı (adım) ile tam 360 ° dönüş elde edebiliriz. Ancak bu daha az eylemsizliğe yol açar ve ayrıca dönüş düzgün olmayacaktır. Tam Adım Uyarma'da iki sınıflandırma daha vardır, bunlar bir Faz-üzeri dalga adımlaması ve iki faz-açık modudur.
1. Tek fazlı adımlama veya Dalga Adımlama: Bu modda, herhangi bir zamanda motorun yalnızca bir terminaline (fazına) enerji verilecektir. Bu, daha az adıma sahiptir ve bu nedenle tam 360 ° dönüş sağlayabilir. Kademe sayısı az olduğu için bu yöntemle tüketilen akım da çok düşüktür. Aşağıdaki tablo, 4 fazlı bir step motor için dalga adımlama sırasını göstermektedir.
Adım | Aşama 1 (Mavi) | 2.Aşama (Pembe) | 3. Aşama (Sarı) | 4.Aşama (Turuncu) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. İki Aşamalı adımlama: Bu yöntemde adından da anlaşılacağı üzere iki aşama bir olacaktır. Dalga adımlama ile aynı sayıda adıma sahiptir, ancak bir seferde iki bobine enerji verildiği için, önceki yönteme göre daha iyi tork ve hız sağlayabilir. Bir dezavantajı, bu yöntemin daha fazla güç tüketmesidir.
Adım |
Aşama 1 (Mavi) |
2.Aşama (Pembe) |
3. Aşama (Sarı) |
4.Aşama (Turuncu) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Yarım Adım Modu
Yarım Adım modu, tek fazlı ve iki fazlı açık modların birleşimidir. Bu kombinasyon, her iki modun da yukarıda bahsedilen dezavantajını aşmamıza yardımcı olacaktır.
Tahmin edebileceğiniz gibi, her iki yöntemi de birleştirdiğimiz için, tam bir rotasyon elde etmek için bu yöntemde 8 adımlı gerçekleştirmek zorunda kalacağız. Aşağıda gösterilen 4 fazlı bir step motor için anahtarlama sırası
Adım |
Aşama 1 (Mavi) |
2.Aşama (Pembe) |
3. Aşama (Sarı) |
4.Aşama (Turuncu) |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Bu nedenle, step motorunuzu herhangi bir modda programlamak sizin seçiminizdir, ancak İki Fazlı Tam Adım Modunu tercih ediyorum. Bu yöntem, tek aşamalı yöntemden daha hızlı hız sağladığından ve yarım moda kıyasla kodlama kısmı, iki aşamalı yöntemde daha az sayıda adım olması nedeniyle daha azdır.
Adım motorları ve modları hakkında daha fazla bilgiyi burada bulabilirsiniz
Step Motorunu kontrol etmek için MATLAB Grafik Kullanıcı Arayüzü Oluşturma
Ardından Step motorunu kontrol etmek için GUI (Grafik Kullanıcı Arayüzü) oluşturmalıyız. GUI'yi başlatmak için, komut penceresine aşağıdaki komutu yazın
kılavuz
Bir açılır pencere açılacak, ardından aşağıdaki resimde gösterildiği gibi yeni boş GUI seçin,
Şimdi , aşağıda gösterildiği gibi, step Motorunu Saat yönünde ve saat yönünün tersine döndürmek için iki geçiş düğmesi seçin,
Düğmenin şeklini yeniden boyutlandırmak veya değiştirmek için, üzerine tıklamanız yeterlidir ve düğmenin köşelerini sürükleyebilirsiniz. Geçiş düğmesine çift tıklayarak, o belirli düğmenin rengini, dizesini ve etiketini değiştirebilirsiniz. Aşağıdaki resimde gösterildiği gibi iki düğmeyi özelleştirdik.
Düğmeleri tercihinize göre özelleştirebilirsiniz. Şimdi bunu kaydettiğinizde, MATLAB'ın Editör penceresinde bir kod üretilir. Arduino'nuzu projenizle ilgili herhangi bir görevi yerine getirecek şekilde kodlamak için, her zaman bu üretilen kodu düzenlemeniz gerekir. Bu yüzden aşağıda MATLAB kodunu düzenledik. MATLAB öğreticisine Başlarken bölümünde Komut penceresi, düzenleyici penceresi vb. Hakkında daha fazla bilgi edinebilirsiniz.
Arduino ile Step Motoru kontrol etmek için MATLAB Kodu
Step motorun kontrolü için eksiksiz MATLAB kodu bu projenin sonunda verilmiştir. Ayrıca, indirmek için GUI dosyasını (.fig) ve kod dosyasını (.m) buraya ekliyoruz (bağlantıya sağ tıklayın ve ardından 'Bağlantıyı farklı kaydet…' seçeneğini seçin), bu düğmeleri kullanarak ihtiyacınıza göre özelleştirebilirsiniz. Aşağıda, Step Motorunu iki geçiş düğmesi kullanarak saat yönünde ve saat yönünün tersine döndürmek için yaptığımız bazı ince ayarlar bulunmaktadır.
Aşağıdaki kodu kopyalayıp satır no. 74. m-dosyasını her çalıştırdığınızda Arduino'nun MATLAB ile konuştuğundan emin olmak için.
hepsini temizle; küresel a; a = arduino ();
Aşağı kaydırdığınızda, GUI'deki her iki Düğme için de iki işlevin oluşturulduğunu göreceksiniz. Şimdi kodu, tıklama ile gerçekleştirmek istediğiniz göreve göre her iki fonksiyona da yazın.
In Saat yönünde düğmenin işlevi, kopyalama ve saat yönünde motoru döndürmek için sadece fonksiyonun sona ermeden kod aşağıda yapıştırın. Step motoru saat yönünde sürekli döndürmek için, iki fazlı adım adım tam mod adımlarını saat yönünde tekrarlamak için while döngüsünü kullanıyoruz.
get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); duraklama (0.0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); duraklama (0.0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); duraklama (0.0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); duraklama (0.0002); son
Şimdi saat yönünün tersine düğmenin işlevinde, motoru saat yönünün tersine döndürmek için aşağıdaki kodu işlevin önüne yapıştırın. Step motoru sürekli olarak saat yönünün tersine döndürmek için, saat yönünün tersine iki fazlı adım adım tam mod adımlarını tekrarlamak için while döngüsünü kullanıyoruz.
get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); duraklama (0.0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); duraklama (0.0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); duraklama (0.0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); duraklama (0.0002); son
Gerekli Malzeme
- MATLAB yüklü Dizüstü Bilgisayar (Tercih: R2016a veya üzeri sürümler)
- Arduino UNO
- Step Motor (28BYJ-48, 5VDC)
- ULN2003 - Step motor sürücüsü
Devre şeması
MATLAB ile Step Motorun Kontrolü
Donanımı devre şemasına göre kurduktan sonra, düzenlenen kodu.m dosyasında çalıştırmak için çalıştır düğmesine tıklamanız yeterlidir.
MATLAB'ın yanıt vermesi birkaç saniye sürebilir, MATLAB aşağıda gösterildiği gibi sol köşenin alt tarafında meşgul mesajı gösterene kadar herhangi bir GUI düğmesine tıklamayın,
Her şey hazır olduğunda motoru döndürmek için saat yönünde veya saat yönünün tersine düğmesine tıklayın. Toggle butonunu kullandığımız için, butona tekrar basana kadar step motor sürekli olarak saat yönünde hareket edecektir. Benzer şekilde, saat yönünün tersine değiştirme düğmesine basılarak, düğmeye tekrar basana kadar motor saat yönünün tersine dönmeye başlar.