Vous êtes sur la page 1sur 10

28/01/2017

A4988MCHobbyWiki

A4988
DeMCHobbyWiki

Sommaire
1Prsentation
2Dtailtechniques
2.1Brochage
2.1.1Entresdecontrle
2.1.2ConfigurationStep/MicroStepping
2.2Lessourcesd'alimentation
2.3Branchementmoteur
2.4Limiterlecourant
2.4.1Ajusterlalimitedecourant
2.4.2Autremthode
2.4.3omesurerlecourant
2.5Dissipationdechaleur
3ExempleArduino
3.1Montage
3.1.1Codificationrouge,bleu,vert,noir
3.1.2Codificationrouge,jaune,vert,gris
3.2Lecode
4ExempleRaspberry
5Ressources
6Oacheter

Prsentation
CettecartebreakoutsupporteunepiloteMicrosteppingAllegroA4988(DMOS)incluantuneprotectioncontre
lessurcourants(overcurrent).C'estlecontrleurdemoteurpaspasquel'onretrouvesurlescartesde
commandedesimprimantes3DcommeOrdBot(http://shop.mchobby.be/product.php?id_product=41)Hadron.

http://wiki.mchobby.be/index.php?title=A4988

1/10

28/01/2017

A4988MCHobbyWiki

Cecontrleurpermetdecontrlerdesmoteurspaspasbipolaires(http://shop.mchobby.be/product.php?
id_product=236)enmicrosteppingavecunmaximumde2ampresparbobine(attentionauxconditionsde
dissipationdechaleur!!!).
Voiciquelquescaractristiquesclsdecebreakout:
Interfacedecontrledepasetdedirectionsimplissime.
5rsolutionsdiffrentesdepas:
fullstep:Pascomplet
halfstep:1/2pas
quarterstep:1/4depas
eighthstep:1/8imedepas
sixteenthstep:1/16imedepas
Contrleencourantajustableunpotentiomtrepermetdefixerlecourantmaximuml'aided'un
potentiomtre.Celapermetd'utiliserunetensionsuprieurecellerecommandeparlemoteur(puisque
lecourantestlimit)etpermetainsid'atteindreundbitdepaspluslev(etdoncunevitesseplus
leve)
Unecommandedehachageintelligentequislectionneautomatiquementlebonmodededcroissancede
courant(fastdecay=baisse/chuterapideducourantOUslowdecay=chutelente)
Protection(arrt)encasdesurchauffe,soustension,surcharge/surcourant/courtcircuit.Utileencasde
surcharge/blocagemoteur(carlecourantvamontenflche,cequidoitprovoquerlamiseen
protection).

Dtailtechniques
PensezprendreconnaissancedelafichetechniqueduA4988.Eneffet,s'ilestcapabledepiloteruncourant
important,celanesefaitpasdansn'importequelcondition,ilfaittreattentifladissipationdechaleur.
Tensiondefonctionnementminimum:8V
Tensionmaximaledefonctionnement:35V
Courantparphase(encontinu):1,2Amp
Courantmaximumparphase:2.3Amp
Logiquedecontrle
Tensionminimale:3V
TensionMaximale:5.5
RsolutionMicrostep:Pascomplet,1/2,1/4,1/8et1/16depas
Protectioncontreinversiondetension:NON
FichetechniqueduA4988(http://df.mchobby.be/datasheet/A4988.pdf)(pdf)

Brochage

http://wiki.mchobby.be/index.php?title=A4988

2/10

28/01/2017

A4988MCHobbyWiki

Enable:LogiqueInverse,permetd'activeroudsactivlemoteur.EtatHaut=High=Moteuractif...et
axebloquentrelespas.Etatbas=Low=Axetotalementlibre
MS1,MS2,MS3:permetdeslectionnerlaconfigurationStep/MicroStep.Cesbrochesdisposentde
rsistancesPullDownramenantlepotentiel0vlorsquerienn'estconnectsurcesbroches.Voirla
sectioncidessouspourplusd'information.
Reset:Logiqueinverse.Permetdefaireunerinitialisationdumodule.Gnralementconnectsurla
broche"sleep".
Sleep:Logiqueinverse.Gnralementconnectsurlabroche"Reset"dumodule.
Step:Envoyerunsignald'horloge(NiveauHautpuisNiveaubas,HighpuisLow)pouravancerlemoteur
d'unpas.
DIR:Permetd'indiquerladirectionderotationdumoteur.EtatHaut=Highpourtournerdansunsens,
Etatbas=Lowpourtournerdansl'autresens.
VMot:Tensiond'alimentationdumoteur.Habituellement12Vpourlesmoteurspaspas.Tensionentre
8et12v.
GND:Sous"VMOT",massepourl'alimentationmoteur.Habituellementmiseencommunaveclamasse
delogiquedecommande(cellesous"VDD").
2B2A:Premirebobinedumoteurpaspasbipolaire(voirexemplecidessous)
1A1B:Deuximebobinedumoteurpaspasbipolaire(voirexemplecidessous)
VDD:Alimentationdelalogiquedecommandeentre3et5.5v.Habituellement5V.
GND:Sous"VDD",massedelalogiquedecommande.Souventmiseencommunaveclamasse
d'alimentationdumoteur.
Entresdecontrle
Chaqueimpulsionsurl'entreSTEPcorrespondunmicrostepdumoteurpaspasdansladirection
slectionnesurlabrocheDIR.
NotezquelesbrochesSTEPetDIRnedisposentpasdersistancespulldownoupullupinterne.Vousdevez
contrlerlesdeuxtatsHaut(High)etbas(Low)avecvotreapplication.Latensionsurcesbrochesnepeutpas
treflottante.Cequin'estpasunproblmepourlesplateformesArduino:)
Sivousnedevezfairetournerlemoteurquedansunseulsens,vouspouvezplacerlabrocheDIRdirectement
surVCCouGND.Lecircuitdisposede3entresdiffrentespourcontlersontagedepuissance:RST
(Reset),SLP(sleep)etEN(enabled).Voyezlafichetechniquepourplusd'informationsurcestats
(http://df.mchobby.be/datasheet/A4988.pdf).
http://wiki.mchobby.be/index.php?title=A4988

3/10

28/01/2017

A4988MCHobbyWiki

NotezquelabrocheRST(reset)estflottanteSivousnecomptezpasutilisercettebroche,vouspouvezla
connectersurlabrocheSLP(sleep)adjacentepourplacerRSTauniveaulogiquehaut(high)etactiverlacarte.
ConfigurationStep/MicroStepping
Laconfigurationsefaitl'aidedesbrochesMS1,MS2etMS3.
Lesmoteurspaspasdisposedeleurproprespcificationphysiquede"pas"(stepspecificationenanglais)
connucommeun"pascomplet"(fullstepenanglais).Unmoteur1.8ou200pasparrvolution
(http://shop.mchobby.be/product.php?id_product=236)faitpartidesmoteurslesplusrpandus.Unpilote
microsteppingtelqueleA4988permetd'obteniruneplusgrandersolutionenautorisantdespositions
intermdiairesdansunpas.Celaestrendupossibleenmodulantintelligemmentlaquantitdecourantdansles
bobinesdumoteurpaspas.Parexemple,piloterunmoteurenmode"1/4depas"permetd'obtenir800
microsteps(micropas)surunmoteurprvupour200pasarrvolutionetcelaenutilisant4niveaudecourants
diffrentspourchacundesmicrosteps.
Larsolution(latailledupas)estslectionnl'aidedesentresMS1,MS2etMS3.Grceeux,vous
disposezde5rsolutionsdiffrentesreprisentdanslatablecidessous.
MS1etMS3disposed'unersistancepulldowninternede100k.
Unersistancepulldownsignifiequesivousneplacerpaslepotentieldecesbrochesauniveaulogique
haut=high=VDD(latensionchoisiepourlalalogiquedecommande)alorselleserontautomatiquement
rameneauniveaulogiquebas=Low.
MS2disposed'unersistancepulldownde50k.
SivousneraccordezaucunedecesbrochesMS1,MS2etMS3alorsvotrebreakoutA4988fonctionneraen
mode"pascomplet"(fullstep).Pourquelemicrosteppingfonctionnecorrectement,ilfautquelalimitede
courantsoitassezbas(voircidessous)defaonnepasactiverlaprotectionensurcourant.Sinon,lesniveaux
decourantintermdiaireneserontpascorrectementmaintenuetnemoteurpourraitsauterdesmicrosteps.
MS1 MS2 MS3 RsolutionMicrostepping
Low Low Low Pascomplet(fullstep)
High Low Low 1/2pas
Low High Low 1/4depas
High High Low 1/8imedepas
High High High 1/16imedepas

Lessourcesd'alimentation
Lepiloterequireunetensiond'alimentationentre3et5.5Vpourlalogiquequidoittreconnectentreles
brochesVDDetGND(adjacente).
Latensiond'alimentationmoteurestcompriseentre8et35VquidoittreconnectentrelesbrochesVMOTet
GND.Cettealimentationdevraittreaccompagned'unecapacitdedcouplageprochedelacarte,etdevrait
trecapablededlivrerlecourantattendu(despointesjusqu'4Apourl'alimentationmoteur).

http://wiki.mchobby.be/index.php?title=A4988

4/10

28/01/2017

A4988MCHobbyWiki

Cettecarteutilisedescapacitscramiquesfaiblersistancesrie
quivalente(lowESR(http://www.jmax
hardware.com/forum/index.php?topic=5171.0wap2)),cequilasensible
auxdestructionsparlespointesdesurtensionsinduitesparlescircuits
LC,plusspcialementsurvousutilisezdescblesd'alimentationsd'une
longueursuprieurequelquescentimtres.Sousdemauvaises
conditions,cespointesdetensionpeuventexcderles35Vdetension
maximaleduA4988etendommagerlacartedefaonpermanente
(mmepourunealimentationmoteur12V).Unefaondeprotgerles
pilotesestdeplacer,auplusprsdelacarte,unecapacitlectrolytique
importante(aumoins47F)entreVMOTetlamasse.

Branchementmoteur
Connecteroudconnecterlesmoteurspaspaspendantquelepilote
estsoustensionpeutledtruire.
D'unefaongnrale,changerlecblageencoursdefonctionnementseralasourcedeproblmes.

Limiterlecourant
Pourpouvoiratteindreunevitesseplusleve(unplushautdbitdepas),l'alimentationmoteurest
typiquementpluslevequecequiseraitpermitsanslimitationactivedecourant.Parexemple,unmoteurpas
pastypiquepourraitavoiruncourantmaximumvalu1Ampavecunersistancedebobinede5,cequi
nousindiquequelatensionmaximaledumoteurestde5Volts(U=R*I).Utiliseruntelmoteursous12V
permettraitd'atteindreundbitdepasnettementplusimportant,maislecourantdoittreactivementlimit
moinsde1Amptpourviterd'endommagerlemoteur.
LeA4988supportecettefonctionnalitde"limitationactivedecourant"etlepetitpotentiomtredisponiblesur
lacarteestutilispourfixerenfixerlavaleur.
Ajusterlalimitedecourant
Unefaond'ajusterlalimitedecourantestdeplacerlepiloteenpascomplet(fullstep)etdemesurerlecourant
passantdansunebobinedumoteursansenvoyerdesignalsurlabroched'entreSTEP.Lecourantmesursera
quivalent0.7foislecourantlimite(puisqueenmode"fullstep"lesdeuxbobinessonttoujoursactivesetle
courantlimit70%ducourantlimiteconfigur/slectionn).
Notezquelaconfigurationducourantlimitechangelorsquevousmodifiezlatensiondelalogiquede
commande(VDD)latensionappliqusurlabroche"ref"duA4988parlepotentiomtredpenddirectement
delavaleurdeVDD.
http://wiki.mchobby.be/index.php?title=A4988

5/10

28/01/2017

A4988MCHobbyWiki

Autremthode
Sivousdisposezdematrieldeprcision,vouspouvezlocaliserlabroche"ref"etenmesurerlatension.Cela
serauntchetrsdlicatequenousrecommandonspasmaisdocumentonsnanmoins(carplusfacilement
accessiblesurlesbreakoutPololu).
Uneautrefaond'ajusterlecourantlimiteestdemesurerlatensionsurlabroche"ref"etdecalculerlecourant
limitecorrespondant(Larsistanced'valuationducourantcurrentsenseresistorsfait0.05).Surlescartes
pololu,cettebrochedetension"ref"estaccessibleviaunesrigraphie(encercle)enbasdelacarte.
Lalimitedecourantestcalculcommesuitparrapportlatensionderfrence:
Limitedecourant=Vref2.5

Parexemple:silatensionderfrenceestde0.3V,lecourantlimiteestde0.75A.
Commementionnciavant,enmode"pascomplet"(fullstep),lecourantdanslesbobinesseralimit70%du
courantlimite.Donc,pourobteniruncourantde1Amp(enmodefullstep),lecourantlimitedevraittrede1
Amp/0.7=1.4Amp,cequicorrespondaunVrefde1.4A/2.5=0.56V.
Pourdesinformationsplusdtailles,vouspouvezvousrfrerlafichetechniqueduA4988
(http://df.mchobby.be/datasheet/A4988.pdf)(pdf).
omesurerlecourant
Lecourantdanslabobinedumoteurpeuttrevraimentdiffrentducourantdlivrparl'alimentation.Par
consquent,ilnefautpasmesurerlecourantlasortirdevotrealimentation.
L'emplacementappropripourreleverlecourantc'estensrieaveclabobinedumoteurdoncentrelapilote
etlemoteur.
Notezquemesurerlecourantlasortiedel'alimentationnefournitpasunemesurefidleducourant
danslesbobines.Lamesureducourantsurl'alimentationpeuttreplusfaiblequelecourantdebobinecarla
tensiond'entredupilotepeuttresignificativementpluslevequelatensiondelabobine.Ainsi,silatension
d'alimentationestnettementpluslevequecellencessairepourlemoteur,lecycleutile(dutycycle)seratrs
courtpouratteindrelalimitedecourantconfigur,cequiconduitnediffrencenotableentrelescourants
moyensetlescourantsRMS.

Dissipationdechaleur
LecircuitintgrA4988supportuncourantmaximumde2Ampparbobine,maislecourantquevouspouvez
vraimentdlivrdpendprincipalementdel'efficacitdurefroidissementducircuitintgr.Lecarteestconue
pourvacuerlachaleuraussiefficacementquepossiblemaissivousvoulezfourniruncourantd'environ1
Ampparbobineilfaudraprvoirundissipateurdechaleuret/ouautremthodederefroidissement.
Ceproduitpeutdevenirsuffisammentchaudpourvousbrulerlongtemps
avantd'entrerluimmeentatdesurchauffe.Restezprudentlorsquevous
manipulezceproduitoud'autrescomposantsconnectssurceluici.

ExempleArduino
CommentraccorderetutiliservotrejouetavecunArduinoUno

http://wiki.mchobby.be/index.php?title=A4988

6/10

28/01/2017

A4988MCHobbyWiki

Montage
Voustrouverezcidessouslemontageaveclesdeuxcodificationdecouleursdesmoteurspaspaslesplus
rpandues
Pourcommencer,nousalimentonsleStepStickavec5volts.
Brancherle+5Vd'ArduinosurlabrocheVDD
BrancherleGNDd'ArduinosurlabrocheGND(endessousdeVDD)
Ensuite,nousbranchonsl'alimentationmoteuren12V
Brancherle+12VvoltssurlabrocheVMOT
BrancherleGMD/Massedel'alimentation12VsurlabrocheGND(souslabrocheVMOT).
Mettrelesdeuxmasseencommun.BrancherunfilentreleGNDmoteur(sousVMOT)etleGNDdela
logique(sousVDD).
Brancherunecapacitlectrolytiquedemin47FentrelesdeuxbrochesGNDetVMOT
RaccorderArduinosurleStepStick:
Brancherlabroche13d'Arduinosurl'entreENABLEduStepStick
Brancherlabroche9d'Arduinosurl'entreSTEPduStepStick
Brancherlabroche8d'Arduinosurl'entreDIRduStepStick
ConfigurerStepStick+MicroStepping:
Pourcetexemple,nousallonsutiliserlemodeFullStep(sansmicrostepping).
NebrancherpasMS1,MS2etMS3quiserontdoncLOW.
BrancherensemblelesbrochesSLEEPetRESETdustepstick.

Codificationrouge,bleu,vert,noir

Cliquezpouragrandir
http://wiki.mchobby.be/index.php?title=A4988

7/10

28/01/2017

A4988MCHobbyWiki

Codificationrouge,jaune,vert,gris
CettecodificationestutilispourlesmoteurspaspasquenousproposonsicichezMCHobby
(http://shop.mchobby.be/product.php?id_product=236).

Cliquezpouragrandir

Lecode
LeseulpointareleverdanscecodeestlecomportementdelabrocheENABLEbranchsurlasortie13
d'Arduino.
Enablefonctionneenlogiqueinverse!
Celasignifieque:
Lemoduleestactivlorsquelasortie13estLOW(niveaubas)L'axedumoteurestdoncmaintenu
bloquenattenteduprochainpas.
Lemoduleestdsactivlorsquelasortie13estHIGH(niveauhaut)L'axedumoteurestdonc
totalementlibredetoutmouvementpuisquelemoteurestdsactiv.
//Commanded'unStepStick/DriverA4988
//A4988_Test.ino
//
//Commanded'unmoteurpaspasl'aided'unpiloteA4988avec
//Arduino.
//
//Unprojetwww.mchobby.be(ventedekitetcomposant)
//MeurisseD.LicenceCCSABY
//
//Untutorielhttp://mchobby.be/wiki/index.php?title=A4988
//OuAcheterunStepStickA4988
//http://shop.mchobby.be/product.php?id_product=349
//
#definepinEnable13//Activationdudriver/pilote
#definepinStep9//SignaldePAS(avancement)
#definepinDir8//Direction

http://wiki.mchobby.be/index.php?title=A4988

8/10

28/01/2017

A4988MCHobbyWiki

voidsetup(){
Serial.begin(9600);
Serial.println("TestA4988");

pinMode(pinEnable,OUTPUT);
pinMode(pinDir,OUTPUT);
pinMode(pinStep,OUTPUT);
}
voidloop(){
inti=0;

digitalWrite(pinDir,HIGH);//Directionavant
digitalWrite(pinStep,LOW);//Initialisationdelabrochestep

//Avancede200pas
for(i=0;i<200;i++){
Serial.println(i);
digitalWrite(pinStep,HIGH);
delay(10);
digitalWrite(pinStep,LOW);
delay(10);
}

//Changerdedirection
digitalWrite(pinDir,LOW);//Directionavant

//Refaire200pasdansl'autresens
for(i=0;i<200;i++){
Serial.println(i);
digitalWrite(pinStep,HIGH);
delay(1);
digitalWrite(pinStep,LOW);
delay(1);
}

//Pasdestepetpasd'ordre...
//l'axedumoteurestdoncbloqu
Serial.println("Axebloqu+attendre5sec");
delay(5000);

//dblocagedel'axemoteur
Serial.println("Deblocageaxe");
digitalWrite(pinEnable,HIGH);//logiqueinverse

//Finetblocageduprogramme
//Presserresetpourrecommander
Serial.println("Findeprogramme");
while(true);
}

ExempleRaspberry
Selontoutevraisemblance,cemoduledevraitfonctionneravecunRaspberryPipuisqu'ilfonctionneavecune
tensiond'alimentationVDDpartirde3v.
Brancherle3.3vdevotreGPIORaspberrysurl'entreVDD(pourcommanderlestepsticken3.3v)
BrancherlesbrochesduGPIOsurlesbrochesduStepStick.
SivousvouleztesterunStepStickavecunRaspberryPi,alimentezle
StepSticken3.3vsursabrocheVDD.
***N'ALIMENTEZPAS***LESTEPSTICKEN5VSIVOUS
UTILISEZUNRaspberryPi
Nousnel'avonspasencoretestetnepouvonsdoncriengarantir.

Ressources
http://wiki.mchobby.be/index.php?title=A4988

9/10

28/01/2017

A4988MCHobbyWiki

Enapprendreplussurl'effetdestructeurdespointesdesurtensiondansuncircuitLC.
Voirl'article"LCVoltageSpikes(http://www.pololu.com/docs/0J16/1)"publiparpolulu.com(anglais)

Oacheter
ControleurmoteurpaspasA4988(http://shop.mchobby.be/product.php?id_product=349)
Moteurpaspasbipolaire(http://shop.mchobby.be/product.php?id_product=236)etsonquivalentavec
uncouplepluslev(http://shop.mchobby.be/product.php?id_product=192)
Rcupredehttps://wiki.mchobby.be/index.php?title=A4988&oldid=9000

Derniremodificationdecettepagele12janvier201421:54.

http://wiki.mchobby.be/index.php?title=A4988

10/10