stepper motor pololulu A4988 tester
- Войдите на сайт для отправки комментариев
Пт, 23/05/2014 - 12:10
типа подпрограмки на будущее
эх сколько не разбрасывай все равно через пол года сам не вспомню что я писал
типа код что-ли поругайте
щиток на arduino от Pololulu A4988
он конечно помикрошагонутестее но и хлипковат он
думаю надо десяточек затарится бо горят как пирожки забытые
// art100 to write 20140523 test stepper motors pololulu A4988 // pins--------------------------------------- // joystick -------------------------- int joypinx = A0; //joystick pin int joypiny = A1; //joystick pin int joypinf = A2; //joystick pin // lasers leds ---------------- int led3 = A4;//3; // // stepper motors ------------ int dir_Pin1 = 4;// int stepPin1 = 3;// #define microstep16pin A5// #define sleeppin 2// // constants for joystick ------------------------------------------- int sp1table = 120;// a4988 1000;//slow int sp2table = 10;// a4988 10000;//a3987 speed int joyx = 0; //joystick int joyy = 0; //joystick int joyf = 0; //joystick int stepxcor =10;// for correction >0< int stepycor =10;// for correction >0< // usb------------------------------ int commandusb = 0; // //--------------------------- // stepper motor 1 pololulu A4988 ------------------------------- void stepA4988(boolean dir1,int steps1,int msec1){ digitalWrite(dir_Pin1,dir1); // direction for(int i=0;i<steps1;i++){ digitalWrite(stepPin1,HIGH); delayMicroseconds(msec1); digitalWrite(stepPin1, LOW); delayMicroseconds(msec1); } } //-------------------------------------------------------------------------------------- void setup(){ pinMode(joypinx, INPUT); //joystick X pinMode(joypiny, INPUT); //joystick Y pinMode(joypinf, INPUT_PULLUP); //joystick fire pin pinMode (led3,OUTPUT); //laser digitalWrite(led3, HIGH); // pinMode(dir_Pin1, OUTPUT);//table pinMode(stepPin1, OUTPUT);//table pinMode(microstep16pin, OUTPUT); digitalWrite(microstep16pin, HIGH); //HIGH for 16microstepping, LOW for no microstepping pinMode(sleeppin, OUTPUT); Serial.begin(9600); } //====================================================================== void loop(){ // joystick ---------------------------------------------------------- joyx = analogRead(joypinx)>>7; // 3 button 0/4/7 0.1.2.3.4.5.6.7 sanks for speed registry shift Dimax joyy = analogRead(joypiny)>>7; // 3 button 0/4/7 0.1.2.3.4.5.6.7 sanks for speed registry shift Dimax // Serial.print('X');Serial.print(joyx);Serial.print(';'); Serial.print('Y');Serial.print(joyy);Serial.println(';'); //test if(joyx==0){stepA4988(false,stepxcor,sp1table);}//speed if(joyx==7){stepA4988(true ,stepxcor,sp1table);}//speed if(joyy==0){stepA4988(false,stepxcor,sp2table);}//speed if(joyy==7){stepA4988(true ,stepxcor,sp2table);}//speed // led -------------------------------------------------------- if(digitalRead(joypinf)==LOW) { digitalWrite(led3, LOW); } // laser to work else { digitalWrite(led3,HIGH); } // laser to work Serial.print("joyx joyy sp1table sp2table: "); Serial.print(joyx);Serial.print(joyy);Serial.println(";");//Serial.print(sp1table);Serial.print(sp2table);Serial.println(";");// // joystick ---------------------------------------------------------- // usb ---------------------------------------------------------------- if (Serial.available() > 0) { commandusb = Serial.read(); if (commandusb==76 ) {digitalWrite(led3, HIGH);} // Laser on L if (commandusb==108) {digitalWrite(led3, LOW);} // laser off l if (commandusb==45 ) {stepA4988(true, stepycor,sp1table);} // down+ if (commandusb==43 ) {stepA4988(false,stepycor,sp1table);} // up - Serial.print("commanda usb received: "); Serial.println(commandusb); } // usb ---------------------------------------------------------------- }
кино немножко на 4 мегабайтика
http://yadi.sk/d/sydH7XAzR5NQQ
схема включения конечно типовая
на макетке
Радиатор приклей через термопасту и будет счастье. Пробовал, помогло...
статистика лично моя
из 10 штук 2 штуки вышли из строя
причина
нет защищающих диодов в землю и плюс
в принципе их нет и впаивать некуда потому как места толком тоже нет
да на фото да залило яркостью щас попробую по другому фото получить
сегодня обнаружил в крайнем справо косяк
разбирать конечно лень
потому тестер слепил
вот посмотри как питание 2 амперное в 0 душит :)
6 долларов улетело в мусор без хлопков щелчков вони гари тихо и безшумно
хорошо что со стрелочниками отлаживаю станок
не то что видно а слышно как они в истерике бьются ;)
http://yadi.sk/d/RJdHKSOIR6ymj
Почитайте про " Current limiting " здесь http://www.pololu.com/product/1183
Там есть потенциометр....
Ток на драйвере выставите под свой шаговик . Сколько мотор кушает?
Ток на драйвере выставите под свой шаговик . Сколько мотор кушает?
честно говоря даже лень думать об этом
сначало даже крутил потенциометр специально для этого распаянный сначало против часовой стрелки на минимум под лупой
компом давал шаги
и под лупой мелко-отверткой по часовой добавлял пока моторы не перестанут рычать
а начинают устойчиво станок двигать
и все равно пришел к среднему положению -+ 10%
так нафига об этом думать
у китайца заказал
на почте отстоял
в плату воткнул
забыл
а вот когда механику не тянет рычит и греется
тогда может быть буду мозг включать в этом направлении- поиска лупы и мелкотвертки
а если солнце всходит и заходит зачем его трогать?
я как думаю напряжение 12вольт
китаский NEMA17 по постоянке от 9.5 ом. !!!впервые за 5 месяцев померял мотор!!!
советский который не все мое тянет 140 ом приходилось потенциометр на максимум выкручивать но все равно слабоваты
вот вам и токи 1,26 ампера на мотор в режиме удержания,
что в принципе похоже 5 моторов общий амперметр с ардуиной больше 5 ампер не показывал
во даже мозг напряг
если еще один станок будет и я на второй десяток таких ПлавающихЛу запусков пойду
а ссылка фигня там даже не накалякано что sleep-reset разумно закорачивать
я правдо не понял нафига не сразу ms1 ms2 ms3 поднимать отдельной ногой как только отдельно рулить начал чип адекватен всегда ну да ладно лень думать
я вообще использую самы компактный вариант
потенциометр меж ног 2.54 мм запутался
repeate up