Veriler ne şekilde alınıyor derken, gösterilecek değer ne şekilde mcu ya iletiliyor usart mı, analog voltaj veya akım mı, dişliden hall ile üretilen darbeleri saymak mı gibi.. Buna göre uygun donaımsal modülleri olan bir denetleyici seçmek için..
Motorlar direkt olaraka mcu ile sürülebiliyorsa, her bir motor sarımı için bir çift çıkış kullanmak yeterli görünüyor.
Step motorların hız ile endüktansı çok değiştiğinden motorun hızlı hareket ederken ve dururken çektiği akımlar çok farklılık gösterir. Bu nedenle akımı kontrol edebilmek için motorları sürdüğünüz çıkışların donanımsal PWM destekli çıkışlar olmasında fayda var. Ama belki de PWM de gereksizdir, direnç vs de iş görebilir. motora bağlı..
Öte yandan sargılar motor akımı kesildiği durumda EMK üretirmi gibi şeyler de var. En azından test aşmasında garanti olsun diye çıkışlara bipolar 5.1V zener veya tvs gibi şeyler, yeterince küçük değerli kapasitör vs. konabilir.
Yazılım kısmında ise önerim, motoru full- half-mstep sürmenize göre, full step için 4 half için 8 elemanlı bir array kullanıp motorun elektiriksel döngünün hangi aşamasında olduğunu tutun. Her bir adımda indisi arttırıp azaltarak ve indisin 0-4 veya 0-7 aralığında olmasını da sağlayıp çıkışları array'e önceden atanmış değer ile set edin. PWM ile ilgili registerleri de bu şekilde kullanmak mümkün.
Birde genel olarak kaç derece açı için hangi pozisyon da olduğunuzu tutmak yeterli. Geriye hızlanmalar vs. gibi şeyler kalır. Söylediğim işleri bir timer kesmesinde yaparsanız timer set değerleri ile oynayarak istediğiniz hıza ulaşabilirsiniz.
C bilgisi olarak da öyle ahım şahım bilgi gerekmez. Registerlere, değişkenlere değer atamak, basit matematik işlemler, basit if blokları yazabilmek yeterli olur.