stepper motor pololulu A4988 tester

art100
Offline
Зарегистрирован: 09.03.2014

типа подпрограмки на будущее
эх сколько не разбрасывай все равно через пол года сам не вспомню что я писал

типа код что-ли поругайте
щиток на 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

схема включения конечно типовая

на макетке

 

vvadim
Offline
Зарегистрирован: 23.05.2012

Радиатор приклей через термопасту и будет счастье. Пробовал, помогло...

art100
Offline
Зарегистрирован: 09.03.2014

статистика лично моя

из 10 штук 2 штуки вышли из строя

причина

нет защищающих диодов в землю и плюс

в принципе их нет и впаивать некуда потому как места толком тоже нет

да на фото да залило яркостью щас попробую по другому фото получить

сегодня обнаружил в крайнем справо косяк

разбирать конечно лень

потому тестер слепил

 

вот посмотри как  питание 2 амперное в 0 душит :)

6 долларов улетело в мусор без хлопков щелчков вони гари тихо и безшумно

хорошо что со стрелочниками отлаживаю станок

не то что видно а слышно как они в истерике бьются ;)

http://yadi.sk/d/RJdHKSOIR6ymj

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Почитайте про  " Current limiting " здесь  http://www.pololu.com/product/1183

Там есть потенциометр....

vvadim
Offline
Зарегистрирован: 23.05.2012

Ток на драйвере выставите под свой шаговик . Сколько мотор кушает?

art100
Offline
Зарегистрирован: 09.03.2014

vvadim пишет:

Ток на драйвере выставите под свой шаговик . Сколько мотор кушает?

честно говоря даже лень думать об этом

сначало даже крутил потенциометр специально для этого распаянный сначало против часовой стрелки на минимум под лупой 

компом давал шаги

и под лупой мелко-отверткой по часовой добавлял пока моторы не перестанут рычать

а начинают устойчиво станок двигать

и все равно пришел к среднему положению -+ 10%

так нафига об этом думать

у китайца заказал

на почте отстоял

в плату воткнул

забыл

а вот когда механику не тянет рычит и греется

тогда может быть буду мозг включать в этом направлении- поиска лупы и мелкотвертки

а если солнце всходит и заходит зачем его трогать?

я как думаю напряжение 12вольт

китаский NEMA17 по постоянке от 9.5 ом. !!!впервые за 5 месяцев померял мотор!!!

советский который не все мое тянет 140 ом приходилось потенциометр на максимум выкручивать но все равно слабоваты

вот вам и токи 1,26 ампера на мотор в режиме удержания,

что в принципе похоже 5 моторов общий амперметр с ардуиной больше 5 ампер не показывал

во даже мозг напряг

если еще один станок будет и я на второй десяток таких ПлавающихЛу запусков пойду

а ссылка фигня там даже не накалякано что sleep-reset разумно закорачивать

я правдо не понял нафига не сразу ms1 ms2 ms3 поднимать отдельной ногой как только отдельно рулить начал чип адекватен всегда ну да ладно лень думать

я вообще использую самы компактный вариант

потенциометр меж ног 2.54 мм запутался 

 

 

art100
Offline
Зарегистрирован: 09.03.2014

repeate up