- Gerekli Bileşenler
- Step Motorun Pin Açıklaması
- ULN2003 Modülünü kullanan Step Motor Kontrolü için Devre Şeması
- L293D Modülünü kullanan Step Motor kontrolü için Devre Şeması:
- AVR ATmega16 ile Step Motorun Kontrolü
Step Motorlar, adımlarla 0 0'dan 360 0'a dönebilen fırçasız DC motorlardır. Adım motoru, motoru adım adım döndürmek için elektronik sinyaller kullanır ve her sinyal mili sabit artışlarla (bir adım) döndürür. Dönme meleği, belirli sinyal dizileri uygulanarak kontrol edilir. Servo Motordan farklı olarak, step motorlar PWM pimleri yerine mikro denetleyicinin GPIO pimleri kullanılarak çalıştırılabilir ve (+360 0) ve (-360 0)). Sinyallerin sırası, step motorun saat yönünde ve saat yönünün tersine karar verir. Motorun hızını kontrol etmek için, uygulanan kontrol sinyallerinin oranını değiştirmemiz yeterlidir. Kademeli motorlar adım adım döner. Tam adım, yarım adım ve mikro adım gibi Adım Motoru çalıştırmak için birkaç adım modu vardır. Step motorun temelleri, teorisi ve çalışma prensibi hakkında daha fazla bilgi edinmek için bağlantıyı takip edin.
Daha önce Step Motor'u birçok Mikroişlemci ile arayüzledik:
- ARM7-LPC2148 ile Step Motor Arayüzü
- Arduino Uno ile Step Motor Arayüzü
- Step Motorun MSP430G2 ile Arayüzü
- STM32F103C8 ile Step Motor Arayüzü
- Step Motor ile PIC Mikrodenetleyicinin Arayüzü
- 8051 Mikrodenetleyici ile Step Motor Arayüzü
- Raspberry Pi ile Step Motor Arayüzü
Bu eğitimde, 28BYJ-48 Step Motor ile Atmel Studio 7.0 kullanarak Atmega16 AVR Mikrodenetleyici arasında arayüz oluşturacağız. Step motor 5V'ta çalışacak şekilde derecelendirilmiştir. Step motoru hem motor sürücüleri, yani ULN2003 ve L293 ile arayüz oluşturacağız. Her ikisi de 5V besleme ile çalıştırılacaktır. Arayüzü basitleştirmek için her iki motor sürücüsünün de önceden oluşturulmuş modülünü kullanıyoruz. ULN2003 ve L293D bağımsız IC'leri de kullanabilirsiniz. Kablo ve atlama tellerinin sayısı daha fazla olabilir, bu nedenle tüm bağlantıları bağlarken dikkatli olun.
Gerekli Bileşenler
- Step Motor (28BYJ-48)
- ULN2003 Modülü / L293D Motor Sürücüsü
- Atmega16 Mikrodenetleyici IC
- 16Mhz Kristal Osilatör
- İki adet 100nF Kapasitör
- İki adet 22pF Kapasitör
- Butona basınız
- Atlama Telleri
- Breadboard
- USBASP v2.0
- Led (Herhangi Bir Renk)
Step Motorun Pin Açıklaması
ULN2003 Modülünü kullanan Step Motor Kontrolü için Devre Şeması
ULN2003'ü kullanırken tüm bileşenleri aşağıdaki şemada gösterildiği gibi bağlayın. Benzer şekilde bir sonraki adımda L293D'yi kullanarak arayüz oluşturacağız. Atmega16'nın PORTA'sını, her iki motor sürücüsü için de step motor arabirimi oluşturmak için kullanıyoruz. Step motorun 5V pinini bağlamanıza gerek yoktur. Step motoru hareket ettirmek için sadece bobin pimleri gereklidir. Adımlara ulaşmak için bobinlere enerji verilmesi gerektiğinden, adım motoru sürmek için pin sırası çok önemlidir. Bu projede dört adet ULN2003 girişi ve dört adet ULN2003 çıkışı kullanılmaktadır. Girişler PORTA pinlerine bağlanacak ve çıkışlar Step Motor Sinyal pinlerine bağlanacaktır. Ayrıca, gerektiğinde Atmega16'yı sıfırlamak için Sıfırlama pimindeki bir düğmeyi bağlayın. Atmega16'yı uygun kristal osilatör devresine bağlayın. Tüm sistem 5V besleme ile beslenecektir.
ULN2003 Motor Sürücü Modülünün gerçek Resmi aşağıdadır:
Aşağıda, step motoru döndürmek için ULN2003 ve L293D ile Atmega16 pin bağlantılarını verdik. Step motor ile L293D modülünün arayüzlenmesi sonraki bölümde açıklanacaktır, step motor kontrolü için ULN2003 veya L293D'den sadece bir modülün gerekli olduğunu unutmayın.
INPUT için pin bağlantıları aşağıdaki gibidir:
Atmega16 |
ULN2003 |
L293D |
A0 |
GİRİŞ1 (PİM1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PİM15) |
OUTPUT için pin bağlantıları aşağıdaki gibidir:
Step Motor |
ULN2003 |
L293D |
Portakal |
OUT1 (PİM16) |
OUT1 (PIN3) |
Sarı |
OUT2 (PİM15) |
OUT2 (PIN6) |
Pembe |
OUT3 (PİM14) |
OUT3 (PİM11) |
Mavi |
OUT4 (PİM13) |
OUT4 (PİM14) |
L293D Modülünü kullanan Step Motor kontrolü için Devre Şeması:
AVR ATmega16 ile Step Motorun Kontrolü
Daha önce de belirtildiği gibi, Servo Motordan farklı olarak, Step motorlar, örneğin ULN2003 veya L293D motor sürücüsü gibi harici sürücülere ihtiyaç duyar. Bu yüzden Devreyi yukarıdaki gibi bağlayın ve sonunda verilen main.c programını yükleyin.
Çizim, step motorun her iki tarafta, yani saat yönünde ve saatin tersi yönde döndüğünü göstermektedir. Adımlayıcıyı bir yönde döndürmek istiyorsanız, çizimde başka bir yönün kod satırlarını yorumlamanız yeterlidir.
Step Motorun kontrolü için eksiksiz AVR kodu aşağıda verilmiştir. Kod basittir ve kolayca anlaşılabilir. Aşağıda, biri ULN2003 ile dönen step motor ve ikincisi L293D modülü ile olmak üzere iki kod verilmiştir.
USBASP v2.0'ınızı bağlayın ve USBASP ve Atmel Studio 7.0 kullanarak Atmega16 AVR Mikrodenetleyiciyi programlamak için bu bağlantıdaki talimatları izleyin. Sadece çizimi oluşturun ve harici araç zincirini kullanarak yükleyin.
Tanıtım Videosu ile kodun tamamı aşağıda verilmiştir.