Buczący silnik - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: Buczący silnik (/watek-bucz%C4%85cy-silnik) |
Buczący silnik - emil1319 - 20-02-2018 Hej. Mam taki programik. // simple stepper motor control // only x axis is used for dolly #define EN 8 // stepper motor enable #define X_DIR 5// x axis direction control #define Y_DIR 6// y axis direction control #define Z_DIR 7// z axis direction control #define X_STP 2// x axis step control #define Y_STP 3// y axis step control #define Z_STP 4// z axis step control /* // step(): to control direction and steps of stepper motor // parameter: dir for direction control, // dirPin maps to DIR pin of stepper motor, // stepperPin maps to STEP pin of stepper motor // return value: none */ void step(boolean dir, byte dirPin, byte stepperPin, int steps) { digitalWrite(dirPin, dir); delay(50); for (int i = 0; i < steps; i++) { digitalWrite(stepperPin, HIGH); delayMicroseconds(800); digitalWrite(stepperPin, LOW); delayMicroseconds(800); } } void setup (){ // setup stepper motor I/O pin to output pinMode(X_DIR, OUTPUT); pinMode(X_STP, OUTPUT); pinMode(Y_DIR, OUTPUT); pinMode(Y_STP, OUTPUT); pinMode(Z_DIR, OUTPUT); pinMode(Z_STP, OUTPUT); pinMode(EN, OUTPUT); digitalWrite(EN, LOW); } void loop (){ // 200 steps per turn step(false, X_DIR, X_STP, 0); // run 360 mm step(false, Y_DIR, Y_STP, 200); step(false, Z_DIR, Z_STP, 0); delay(1000); step(true, X_DIR, X_STP, 0); // run 360 mm in reverse direction step(true, Y_DIR, Y_STP, 0); step(true, Z_DIR, Z_STP, 0); delay(1000); } Niestety po załadowaniu silniczek tylko buczy. Tak jakby obracał się w jedną i drugą stronę. Arduino mega 2560 Silnik d3725802 STP-43d1006-01 1,8 /step 4,7V 0,85 A Zasilacz 19V 3.5 A RE: Buczący silnik - Smaczek - 20-02-2018 WItam, A jaki masz sterownik do silnika? Pozdrawiam, Tomek. RE: Buczący silnik - emil1319 - 20-02-2018 (20-02-2018, 09:16)Smaczek napisał(a): WItam, CNC shield. Niby nie powinno być z nim problemu bo program był pisany pod niego. RE: Buczący silnik - Smaczek - 20-02-2018 Witam, A dokonywałeś regulacji prądu potencjometrem? Na sterowniku powinien się taki znajdować. To może pomóc. Czasami też należy zmienić czas w funkcji delayMicroseconds(). Pozdrawiam, Tomek. RE: Buczący silnik - emil1319 - 20-02-2018 Tak. Regulowałem potencjometrem. W sumie w delayMicroseconds() nie zmieniałem. Spróbuję jak wrócę do domu. Jak na razie to jest jedyny program do sterowania krokowcami który może pójść na moim zestawie ta2560 i cncshield. RE: Buczący silnik - emil1319 - 20-02-2018 Panowie. grzebałem trochę i wprowadziłem poprawki. Teraz wygląda to tak / simple stepper motor control // only x axis is used for dolly #define X_StepPin 2 #define X_DirPin 5 #define StepEn 8 void step(boolean DIRECTION, byte dirPin, byte steprPin, int stepen) { digitalWrite(dirPin, dirPin); delay(1000); for (int i = 0; i < stepen; i++) { digitalWrite(steprPin, HIGH); delayMicroseconds(1000); digitalWrite(steprPin, LOW); delayMicroseconds(1); } } void setup (){ // setup stepper motor I/O pin to output pinMode(X_DirPin, OUTPUT); pinMode(X_StepPin, OUTPUT); pinMode(StepEn, OUTPUT); digitalWrite(StepEn, LOW); } void loop (){ // 200 steps per turn step(false, X_DirPin, X_StepPin, 10); } Raz buczy. Raz się kręci. W różne strony. Bez sensu Zauważyłem że bez podłączonego zasilacza silniczki też buczą. Czyli tak jakby napięcie dochodzące do silnika było za małe, bo rząd z zasilacza nie dochodzi. RE: Buczący silnik - Smaczek - 20-02-2018 Witam, Spróbuj po zadaniu stanu niskiego też dac zwłokę 1000, a nie 1. Pozdrawiam, Tomek |