Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino - servo motor
#21
To je driver koji ce sigurnno zavrsiti posao , doduse malo predimenzionisan za motor koji ti imas na lageru Smile . Ne zaboravi da podesis struju kada sve povezes.
Reply
#22
Kao što ti je Andrić već savetovao u postu: http://forum.yu3ma.net/showthread.php?ti...2#pid64472
Možeš da ga kupiš za 350 din. http://www.kupujemprodajem.com/Arduino-A...-oglas.htm

***
A može i taj sa TB6600.

Pozz
Reply
#23
Hvala drugari  , naruceno sutra stize .
Ja sam megaloman volim da preterujem . Smile
Moracu i motor da kupim ,na ovaj je osovina 4mm .
Nema remenica za njega ,koliko sam video.
Reply
#24
Stigo driver Smile


Attached Files Thumbnail(s)

Reply
#25
Odlicno, to je dobar drajver.

Ispovezuj to, imaju i neki tu DIP prekidaci da se usteluje struja i mozda jos neki parametar. To ces probati prakticno …

Sad malo sa programom se pozabavi i to bi ti bilo to Wink
Reply
#26
Ako me secanje sluzi dobro , DIP prekidaci su za microsteping , za regulaciju struje je trimpot .
Uki jesi li dobio neki papir uz driver , podesavanja i pin out ?
Reply
#27
Ima samo oznake na pcb.
Nasao sam ovo oko povezivanja .  Smile


Attached Files Thumbnail(s)

Reply
#28
Povezao sve nastelovao struju , sve lepo radi.

Ali ne mogu nikako da namestim kod.
Treba da odradi loop jednom , kad pritisnem taster.
A sada radi samo dok drzim taster.
Menjao sam i pinove , ne znam sta vise da mu radim . Smile
Reply
#29
Uki daj neki soure code pa da komentarisemo-pomognemo, ovako samo mozemo da nagadjamo gde gresis.
Reply
#30
Evo kod ,pokusavam al dzaba ...

int stp = 5;  //connect pin 11 to step
int dir = 2;  // connect pin 10 to dir
int buttonPin = 11;     
int a = 0;

void setup()
{
 
  pinMode(buttonPin, INPUT_PULLUP);

  pinMode(stp, OUTPUT);
  pinMode(dir, OUTPUT);

}
void loop()
{

  if(digitalRead(buttonPin) == LOW) //functions based off of button pulling input pin LOW 

{
 
   
  
   
 if (a <  200)  //sweep 200 step in dir 1
   {
    a++;
    digitalWrite(stp, HIGH);   
    delay(10);               
    digitalWrite(stp, LOW);  
    delay(10);              
  
}
}
}
Reply
#31
[quote pid='64767' dateline='1475788295']
Ako su microstep DIP prekidaci postavljeni na sledeci nacin M1>0 ,M2>0 , M3>1
 
ovaj kod bi trebalo da radi 10 punih rotacija 

int stp = 5;  //connect pin 11 to step

int dir = 2;  // connect pin 10 to dir
int buttonPin = 11;     
int a = 0;

void setup()
{
 
  pinMode(buttonPin, INPUT_PULLUP);

  pinMode(stp, OUTPUT);
  pinMode(dir, OUTPUT);

}
void loop()
{
  setup();

  if(digitalRead(buttonPin) == LOW) //functions based off of button pulling input pin LOW 

{
 

 if (a <  2000)  //sweep 200 step in dir 1
   {
    a++;
    digitalWrite(stp, HIGH);   
    delay(10);               
    digitalWrite(stp, LOW);  
    delay(10);              
  
}
a=0;
}
}

Ovo je samo primer kako  bi to trblo da radi , trebalo bi jos doraditi da bi to bio potpuno  funkcionalni kod. Recimo debouncing procedura da kod ne pravi problem sa prelaznim rezimom kada se pritisne taster....
Probaj i javi da li radi . 

[/quote]
Reply
#32
ista stvar vrti dok drzim .
Reply
#33
Jesi li siguran da si iskopirao kod koji sam ja prepravio i kompajlirao ga ponovo ? Nema logike da to radi tako kako kazes . Kojom brzinom se vrti motor kada stisnes taster ?
Reply
#34
Gde si povezao ENA pin ?
Reply
#35
Jesam par puta sam kopirao .
Vrti negde oko 1 obr/sek.
Evo sta mi lik na arduino forumu napisao , nije mi bas jasno.

 you should look at the state change detection example in the digital examples in the IDE File menu.  That way you can know when the button BECOMES pressed not IS pressed.
Reply
#36
Nisam povezao ena na driver .
Reply
#37
int stp = 5;  //connect pin 11 to step
int dir = 2;  // connect pin 10 to dir
int buttonPin = 11;     
int a = 0;

void setup()
{
 
  pinMode(buttonPin, INPUT_PULLUP);

  pinMode(stp, OUTPUT);
  pinMode(dir, OUTPUT);

}
void loop()
{
  setup();

  if(digitalRead(buttonPin) == LOW) //functions based off of button pulling input pin LOW 
{
a=0;
do
{
     a++;
     digitalWrite(stp, HIGH);   
     delay(10);               
     digitalWrite(stp, LOW);  
     delay(10);              

}while(a<200);


}
}
Reply
#38
Too radi ! Big Grin

Hvala vam puno sto mi pomazete .
Reply
#39
Pin ENA povezi na neki pin arduina i definisi ga output HIGH ili +5v preko otpornika od 1 - 47k za probu .
Evo ti jedan link gde je neko koristio bas taj driver .
http://diyprojects.eu/wiring-and-running...h-arduino/
Da bi mogao da kompajliras program moraces da instaliras library sa ove stranice
http://www.airspayce.com/mikem/arduino/A...index.html
Reply
#40
Probaj i ovako. Ja ne koristim arduino ali treba da radi.


#define DESNO 1
#define LEVO 0

int stp = 5;  //connect pin 11 to step
int dir = 2;  // connect pin 10 to dir
int buttonPin = 11;     
int a = 0;

void setup()
{
 
  pinMode(buttonPin, INPUT_PULLUP);

  pinMode(stp, OUTPUT);
  pinMode(dir, OUTPUT);

}


void Vrti(unsigned int broj_koraka, unsigned char smer)
{
unsigned int i = 0;

  if(smer == DESNO)
     digitalWrite(dir, HIGH);
  else
     digitalWrite(dir, LOW);

     delay(100);               

   while(i++ < broj_koraka)
   {
     digitalWrite(stp, HIGH);   
     delay(10);               
     digitalWrite(stp, LOW);  
     delay(10);              

   }

}

void loop()
{
  setup();

  if(digitalRead(buttonPin) == LOW) //functions based off of button pulling input pin LOW 
  {
     Vrti(200, DESNO);
  }

}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)