- Gerekli malzemeler
- Step Motor (28BYJ-48)
- ULN2003 Motor Sürücüsü IC
- Devre Şeması ve Bağlantılar
- STM32F103C8 ile Dönen Step Motor
- Step Motor için STM32'yi PROGRAMLAMA
Step motor, küçük açılarda döndürülebilen fırçasız DC motordur, bu açılara adım denir. Genel olarak step motor, 360 derece dönüşü tamamlamak için 200 adım kullanır, bu da adım başına 1.8 derece dönmesi anlamına gelir. Adım motoru, robotlar, antenler, sabit sürücüler vb. Gibi hassas dönme hareketine ihtiyaç duyan birçok cihazda kullanılır. Step motoru, ona uygun talimatlar vererek herhangi bir açıya döndürebiliriz. Esas olarak iki tip step motor mevcuttur, Unipolar ve Bipolar. Unipolar'ın çalıştırılması, kontrol edilmesi ve elde edilmesi daha kolaydır. Bu eğitimde, Step Motor ile STM32F103C8 (Mavi hap) kartı arasında arayüz oluşturuyoruz.
Gerekli malzemeler
- STM32F103C8 (Mavi hap)
- Step Motor (28BYJ-48)
- ULN2003 IC
- Potansiyometre 10k
- Breadboard
- Atlama telleri
Step Motor (28BYJ-48)
28BYJ-48, 5V besleme gerektiren bir Unipolar Step motordur. Motorun 4 bobin tek kutuplu bir düzenlemesi vardır ve her bir bobin + 5V olarak derecelendirilmiştir, bu nedenle Arduino, Raspberry Pi ve STM32 gibi herhangi bir mikrodenetleyici ile kontrol edilmesi nispeten kolaydır ancak sürmek için ULN2003 gibi bir Motor Sürücü IC'sine ihtiyacımız var çünkü step motor yüksek akım tüketir ve mikrodenetleyicilere zarar verebilir.
Dikkat edilmesi gereken bir diğer önemli veri ise Adım Açısı: 5.625 ° / 64. Bu, motorun 8 adımlı sırayla çalıştırıldığında her adım için 5.625 derece hareket edeceği ve bir tam dönüşü tamamlamak için 64 adım (5.625 * 64 = 360) alacağı anlamına gelir. Diğer özellikler aşağıdaki veri sayfasında verilmiştir:
Ayrıca, Step Motor ile diğer Mikrodenetleyiciler ile arayüz oluşturmayı kontrol edin:
- Arduino Uno ile Step Motor Arayüzü
- Raspberry Pi ile Step Motor Kontrolü
- 8051 Mikrodenetleyici ile Step Motor Arayüzü
- Step Motor ile PIC Mikrodenetleyicinin Arayüzü
Step motor, herhangi bir Mikroişlemci olmadan da kontrol edilebilir, bu Step Motor Sürücü Devresine bakın.
ULN2003 Motor Sürücüsü IC
Mikrodenetleyiciden alınan darbelere göre motoru sürmek için kullanılır. ULN2003'ün resim diyagramı aşağıdadır:
Pinler (IN1'den IN7'ye) giriş pinleridir ve (OUT 1'den OUT 7'ye) karşılık gelen çıkış pinleridir. COM, çıkış cihazları için gerekli olan pozitif kaynak voltajı olarak verilir. Step motor için diğer bağlantılar aşağıda devre şeması bölümünde verilmiştir.
Devre Şeması ve Bağlantılar
Aşağıda, yukarıdaki devre şeması için bağlantı açıklaması verilmiştir.
STM32F103C8 (Mavi Hap)
Aşağıdaki diyagramda da görebileceğimiz gibi PWM pinleri dalga formatında (~) belirtilmiştir, step motora puls çıkışı için kullanılabilecek bu tür 15 pin vardır. Sadece dört pime ihtiyacımız var, kullanıyoruz (PA0 toPA3).
ULN2003 Motor Sürücü IC'li STM32F103C8
Pinler (PA0 - PA3), ULN2003 IC'nin giriş pinlerine (IN1-IN4) bağlanan çıkış pinleri olarak kabul edilir.
STM32F103C8 PİMLERİ |
ULN2003 IC PİNLERİ |
PA0 |
IN1 |
PA1 |
IN2 |
PA2 |
IN3 |
PA3 |
IN4 |
5V |
COM |
GND |
GND |
Step Motorlu ULN2003 IC (28BYJ-48)
ULN2003 IC'nin çıkış pinleri (OUT1-OUT4) step motor pinlerine (Turuncu, Sarı, Pembe ve Mavi) bağlanır.
ULN2003 IC PİNLERİ |
STEPPER MOTOR PİMLERİ |
OUT1 |
PORTAKAL |
OUT2 |
SARI |
OUT3 |
PEMBE |
OUT4 |
MAVİ |
COM |
KIRMIZI |
Potansiyometreli STM32F103C8
Step motorun hızını ayarlamak için bir potansiyometre kullanılır.
POTANSİYOMETRE |
STM32F103C8 |
SOL (GİRİŞ) |
3.3 |
MERKEZ (ÇIKTI) |
PA4 |
SAĞ (GND) |
GND |
STM32F103C8 ile Dönen Step Motor
Aşağıda, Step Motoru çalıştırmak için birkaç adım bulunmaktadır:
- Potansiyometreyi değiştirerek step motorun hızını ayarlayın.
- Ardından, ARDUINO IDE'de bulunan SERIAL MONITER (Araçlar-> Seri monitör) veya CTRL + SHIFT + M aracılığıyla saat yönünde (+ değerler) veya saat yönünün tersine (-değerler) döndürme adımlarını manuel olarak girin.
- Seri monitörde verilen giriş değerine göre step motorda belirli dönüş adımları gerçekleşir.
Örneğin
SERİ MONİTÖRDE VERİLEN DEĞER |
DÖNME |
2048 |
(360) CLK WISE |
1024 |
(180) CLK WISE |
512 |
(90) CLK WISE |
-2048 |
(-360) ANTI CLK WISE |
-1024 |
(-180) ANTI CLK WISE |
-512 |
(-90) ANTI CLK WISE |
Step Motor için STM32'yi PROGRAMLAMA
Önceki eğitimde olduğu gibi, STM32F103C8'i FTDI programlayıcı kullanmadan USB portu üzerinden Arduino IDE ile programladık. STM32'yi Arduino IDE ile programlamayı öğrenmek için bağlantıyı takip edin. Onu bir Arduino gibi programlamaya devam edebiliriz. Proje sonunda tam kod verilmektedir.
Öncelikle step kütüphane dosyaları dahil etmek zorunda #include
#Dahil etmek
Sonra hayır tanımlarız. Döndürmede tamamlanacak adımların sayısı için burada 32'yi kullanıyoruz çünkü Tam Adım (4 Adım dizisi) yani (360/32 = 11.25 derece) kullanıyoruz. Yani bir adım için, şaft adım açısı olan 11.25 derece hareket eder. 4 Adımlı sırada, bir tam dönüş için 4 adım gereklidir.
#define STEPS 32
8 adımlı sekans (360/64 = 5.625) adım açısı olan Yarım adım modunu da kullanabiliriz.
Devir başına adım sayısı = 360 / ADIM AÇISI
Hızı ayarlarken potansiyometreye bağlı PA4'ten analog değer almalıyız. Yani bunun için pin ilan etmeliyiz
const int hızm = PA4
Daha sonra bu değerleri tamsayı türünde değişken olarak saklayarak analog değeri dijitale dönüştürdük, bundan sonra hızı ayarlamak için ADC değerlerini eşlemeliyiz, böylece aşağıdaki ifadeyi kullanıyoruz. ADC'yi STM32 ile kullanma hakkında daha fazla bilgiyi burada bulabilirsiniz.
int adc = analogRead (speedm); int sonuç = harita (adc , 0, 4096, 1, 1023);
Hızı ayarlamak için stepper.setSpeed (sonuç) kullanırız; (1-1023) hız aralığımız var.
Motora bağlı pinleri ayarlamak için aşağıdaki gibi örnek oluşturmalıyız. Bu aşamada çoğu burada bir hata yaptığı için bu adımlarda dikkatli olun. Yanlış model verirler ve bu nedenle bobinlere enerji verilemez.
Adımlayıcı adımlayıcı (STEPS, PA0, PA2, PA1, PA3);
Aşağıdaki ifade, seri monitörden adımların değerini almak için kullanılır. Örneğin, bir tam dönüş için (32 * 64 = 2048) 2048 değerine ihtiyacımız var, yani 64 dişli oranı ve 32, bir dönüş için yarım adım dizisi olacaktır.
rotate = Serial.parseInt ();
Aşağıdaki kod, örneği çağırmak ve motoru çalıştırmak için kullanılır. Döndürme değeri 1 ise, işlev adımını bir kez çağırır ve bir hareket yapılır.
stepper.step (döndür);
Tanıtım Videosu ile kodun tamamı aşağıda verilmiştir. Ayrıca, çeşitli diğer mikro denetleyicilerle arayüz oluşturarak, burada step motorla ilgili tüm projeleri kontrol edin.