سلام به همه، من به کمک نیاز دارم. من یک موتور پلهای NEMA23 دارم که با یک درایور سروو هیبریدی HSD57 همراه است، اما نمیتوانم آن را به درستی کار کنم. موتور پلهای به صورت داخلی میچرخد و گاهی اوقات شفت به جلو و عقب حرکت میکند، اما حرکت ناهموار است و لرزش زیادی دارد.
سیمکشی من به شرح زیر است:
Pulse+ و Dir+ در PulseAudio به منبع تغذیه 5 ولت آردوینو متصل هستند.
Pulse- و Dir- در PulseAudio به پینهای خروجی آردوینو متصل هستند.
تنظیمات سوئیچ:
من آن را روی 1600 پالس در هر دور تنظیم کردهام.
SW7 فعال است زیرا نمیخواهم سیگنال فعالسازی را مدیریت کنم.
از هرگونه پیشنهاد و راهنمایی بسیار سپاسگزارم.
کد فعلی من
define PULSE_PIN 5 // اتصال PUL
define DIR_PIN 4 // اتصال DIR
void setup() {
pinMode(PULSE_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
digitalWrite(DIR_PIN, HIGH);
// تنظیم جهت اولیه
}
void loop() {
// چرخش ۱ دور کامل در جهت عقربههای ساعت (۱۶x میکرواستپینگ = ۳۲۰۰ پالس)
digitalWrite(DIR_PIN, HIGH);
for(int i = 0; i < 75; i++) {
digitalWrite(PULSE_PIN, HIGH);
delayMicroseconds(25);
// پهنای پالس
digitalWrite(PULSE_PIN, LOW);
delayMicroseconds(25);
}
// چرخش ۱ دور کامل در خلاف جهت عقربههای ساعت
digitalWrite(DIR_PIN, LOW);
for(int i = 0; i < 75; i++) {
digitalWrite(PULSE_PIN, HIGH);
delayMicroseconds(25);
digitalWrite(PULSE_PIN, LOW);
delayMicroseconds(25);
}
}
سیمکشی من به شرح زیر است:
Pulse+ و Dir+ در PulseAudio به منبع تغذیه 5 ولت آردوینو متصل هستند.
Pulse- و Dir- در PulseAudio به پینهای خروجی آردوینو متصل هستند.
تنظیمات سوئیچ:
من آن را روی 1600 پالس در هر دور تنظیم کردهام.
SW7 فعال است زیرا نمیخواهم سیگنال فعالسازی را مدیریت کنم.
از هرگونه پیشنهاد و راهنمایی بسیار سپاسگزارم.
کد فعلی من
define PULSE_PIN 5 // اتصال PUL
define DIR_PIN 4 // اتصال DIR
void setup() {
pinMode(PULSE_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
digitalWrite(DIR_PIN, HIGH);
// تنظیم جهت اولیه
}
void loop() {
// چرخش ۱ دور کامل در جهت عقربههای ساعت (۱۶x میکرواستپینگ = ۳۲۰۰ پالس)
digitalWrite(DIR_PIN, HIGH);
for(int i = 0; i < 75; i++) {
digitalWrite(PULSE_PIN, HIGH);
delayMicroseconds(25);
// پهنای پالس
digitalWrite(PULSE_PIN, LOW);
delayMicroseconds(25);
}
// چرخش ۱ دور کامل در خلاف جهت عقربههای ساعت
digitalWrite(DIR_PIN, LOW);
for(int i = 0; i < 75; i++) {
digitalWrite(PULSE_PIN, HIGH);
delayMicroseconds(25);
digitalWrite(PULSE_PIN, LOW);
delayMicroseconds(25);
}
}




دیدگاه