Arduino in koračni motor

BrunoMars

Fizikalc
9. jan 2020
224
50
28
Pozdravljeni. Kupil sem koračni motor Nema 17 (podatki o motorju so nižje). Uporabil sem Arduino Uno in L298N. Napajanje imam 12V (5A) in vse stvari sem povezal tako kot mora biti.

Napisal sem osnovni program vendar se motor obcasno "zatakne" oziroma samo vibrira. Program sem naredil tako, da motor naredi en obrat potem je pavza in spet naredi en obrat. V povprecju vsak drugi obrat samo vibrira. Je imel kdo podobno izkusnjo in mi lahko svetuje kako odpraviti napako?

Podatki motorja
- Material: Metal
- Dimensions: 42x42x48mm/1.65”x1.65”x1.88”
- Phase Number: 2
- Step Angle: 1.8°±5%
- Rated Voltage: 2.8V
- Holding Torque: ≧5 Kg-cm(70 Oz-in)
- Rated Current: 2.0A
- Resistance(20℃): 1.4±10%?/phase
 

damirj

Guru
9. maj 2012
5.283
2.402
113
L298 ima switching (z razsekavanjem) napajanje koracnega motorja, ampak mora bit napajan s pravilno napetostjo in potem z uporom nastavis pravilen tok skozi navitje koracnega motorja. Verjetno si to ze preveril, a vseeno, izmeri tok skozi navitje, da ustreza podatkom motorja.
 

Robert

Majstr
21. jul 2007
2.649
466
83
Tolmin
L298 ima switching (z razsekavanjem) napajanje koracnega motorja, ampak mora bit napajan s pravilno napetostjo in potem z uporom nastavis pravilen tok skozi navitje koracnega motorja. Verjetno si to ze preveril, a vseeno, izmeri tok skozi navitje, da ustreza podatkom motorja.

Ima - ampak šele če je pred njim L287, kar pa kitajski modulčki ponavadi nimajo ;)

Nesrečno izbran modul za krmiljenje stepperja :(
Poizkusi zmanjšati obrate, da vidiš, če bo kaj bolje.
Za v prihodnje uporabi raje A4988 ali kaj podobnega - imaš pol manj kode saj mu daješ samo smer in korake ter po potrebi enable :)
 

BrunoMars

Fizikalc
9. jan 2020
224
50
28
Pozdravljeni,

vidim, da sem verjetno res ustrelil v temo. Moj koračni motor naj bi imel največjo porabo 2A po fazi, prav toliko toka pa naj bi bil tudi L289N sposoben zagotoviti. Tok sem izmeril na izhodu napajalnika in je skupna poraba pri neobremenjenem motorju okrog 0.6A.

Komponente sem povezal po spodnji shemi:

arduino.jpg
 

Utisevalec

Guru
12. nov 2007
16.113
4.083
113
Če koračni motor samo brni potem ima prenizek tok. A to si testiral na neobremenjenem motorju (nič konkretnega ne obrača)? Ker če je je tok zelo prenizek, pri 2A max. toku motorja bi ga moralo obračat neobremenjenega pri 500ma ali pa celo še manj odvisno od navitja. Bolj ga obremeniš bolj se greje, tako da ponavadi nikoli ne uporabiš višjega toka kot se potrebuje za dejanske potrebe.

In ja danes dobiš poceni stepper driverje ki imajo all-in-one in jih samo krmiliš s preprosto kodo, vse ostalo naredi driver. Za nastavljat tok imaš na driverju potenciometer. Cena teh driverjev je 1 eur dalje za kitajske "ponaredke" in se nima smisla ukvarjat s stepperji na low levelu.
 

BrunoMars

Fizikalc
9. jan 2020
224
50
28
Posnetek:


Koda:

#include <Stepper.h>
const int stepsPerRevolution = 200;
Stepper myStepper = Stepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
myStepper.setSpeed(100);
}
void loop() {
myStepper.step(200);
delay(2000);
myStepper.step(-200);
delay(2000);
}
 

Utisevalec

Guru
12. nov 2007
16.113
4.083
113
Sej vidiš da ti skipa stepe že pri delujočem obratu. Če imaš 1.8 stopinjski korak in 200 korakov za obrat bi moralo naredit cel obrat v nulo (prit na isto točko kjer je začel), tebi pa vedno zmanjka malo tudi če se vidno ne zašteka. Če daš manjšo/višjo hitrost je efekt enak? Kaj se zgodi če malo primeš os med premikanjem? Če pri obremenitvi začne izpuščat še več korakov, potem je zagotovo problem prenizek tok.
 

BrunoMars

Fizikalc
9. jan 2020
224
50
28
Tako je, pri obremenitvi začne puščati še več korakov. S spreminjanjem hitrosti se napaka ne spreminja.

Pri motorju je torej Rated Current: 2.0A, A4988 pa ima Max continuous current per phase: 1A. Verjetno to ne bo čisto dobro (Peak current per phase ima pa sicer 2A).

EDIT:

Danes sem naročil DRV8825. Poročam ko ga dobim.
 
Nazadnje urejeno:

damirj

Guru
9. maj 2012
5.283
2.402
113
No to z L297 da jih teli kitajski moduli nimajo, se mi zdi velika bedarija. Krmilit koracni motor direktno z mikrokontrolerjem se ze da, le da faze pac niso 100% pravilno poravnane, zato pride do skakanja korakov. Arduino dober ali ne, po mojem nima pravilno fazno usklajenih portov ali pa je koda napacna in generira slabo fazno usklajene kvadrate. Pri 0.6A za obe fazi bi tak motor moral brezhibno delovat se vedno in tudi z vecjo obremenitvijo. Sicer pa pac poskusi s kaksno kodo za mikrostepping, tam imas vec svobode.
 

BrunoMars

Fizikalc
9. jan 2020
224
50
28
Hvala za nasvete. Bom počakal, da dobim naročen driver in potem poizkusil še s tistim (da ne izgubljam časa).
 

jtfc

Guru
Izključen uporabnik
24. jul 2007
19.994
2.718
113
Da ne odpiram teme, pozimi bi rad malo se učil programirat in elektrotehniko...

Kaj tole kupim?
1654719181103.png


Ali kakšen boljši paket?
 

Irbis

Pripravnik
18. feb 2022
45
30
18
Jaz sem nabavil par stvari pri www.adeept.com, nisem sicer vzel paketa za Arduino, ampak za RPi. Za vsak element imaš preprosto vezje in program, da ga potem lahko krmiliš. Imajo pa tudi za Arduino podoben paket:
In imajo tudi brezplačno poštnino in običajno sem stvari zelo hitro dobil (tudi v dveh dneh), ker imajo očitno skladišče na Hrvaškem (tako da tudi ni bilo težav s carino).
Imaš tudi komplete za robotke pri njih: http://www.adeept.com/c/robotics_0389
 
  • Všeč mi je
Reactions: tony in jtfc

packon

Pripravnik
7. maj 2015
54
2
8
Da ne odpiram nove teme.... iščem nekoga iz Bele krajine z znanjem Arduina za pomoč pri nekem domačem projektu.