Sie sind auf Seite 1von 8

5/5/2016 TutorialUsoDriverL298NparamotoresDCypasoapasoconArduino

Buscarproductos

Tutorial:UsodeDriverL298NparamotoresDCypasoa
pasoconArduino
ElsiguientetutorialestabasadoenelDriverdualparamotores(FullBridge)L298N,ofrecido
porELECTRONILAB.CO.Puedesadquirirestemduloennuestratienda.

EstemdulobasadoenelchipL298Ntepermitecontrolardosmotoresdecorrientecontinuao
unmotorpasoapasobipolardehasta2amperios.

Elmdulocuentacontodosloscomponentesnecesariosparafuncionarsinnecesidadde
elementosadicionales,entreellosdiodosdeproteccinyunreguladorLM7805quesuministra
5ValapartelgicadelintegradoL298N.Cuentaconjumpersdeseleccinparahabilitarcada
unadelassalidasdelmdulo(AyB).LasalidaAestaconformadaporOUT1yOUT2yla
salidaBporOUT3yOUT4.LospinesdehabilitacinsonENAyENBrespectivamente.

http://electronilab.co/tutoriales/tutorialdeusodriverduall298nparamotoresdcypasoapasoconarduino/ 1/28
5/5/2016 TutorialUsoDriverL298NparamotoresDCypasoapasoconArduino

Enlaparteinferiorseencuentranlospinesdecontroldelmdulo,marcadoscomoIN1,IN2,IN3
eIN4.

Conexindealimentacin
Estemdulosepuedealimentarde2manerasgraciasalreguladorintegradoLM7805.

Cuandoeljumperdeseleccinde5Vseencuentraactivo,elmdulopermiteunaalimentacin
deentre6Va12VDC.Comoelreguladorseencuentraactivo,elpinmarcadocomo+5Vtendr
unvoltajede5VDC.Estevoltajesepuedeusarparaalimentarlapartedecontroldelmduloya
seaunmicrocontroladorounArduino,perorecomendamosqueelconsumonoseamayora500
mA.

Cuandoeljumperdeseleccinde5Vseencuentrainactivo,elmdulopermiteunaalimentacin
deentre12Va35VDC.Comoelreguladornoestafuncionando,tendremosqueconectarelpin
de+5Vaunatensinde5VparaalimentarlapartelgicadelL298N.Usualmenteestatensin
eslamismadelapartedecontrol,yaseaunmicrocontroladoroArduino.

Recomendamosnuncaconectarunatensindeentradaalpinde+5V,cuandoel
jumperdeseleccinde5Vseencuentreactivado.Estoprovocarauncortoypodra
daarpermanentementeelmdulo.

ControldeunmotorDC
Comodemostracin,vamosacontrolarunmotorDCatravsdelasalidaBdelmdulo.Elpin
ENBseconectarconeljumpera+5V.

ElejemploestadesarrolladoenArduinoUNO,peroelcdigoescompatibleconcualquier
Arduinoopinguino.

http://electronilab.co/tutoriales/tutorialdeusodriverduall298nparamotoresdcypasoapasoconarduino/ 2/28
5/5/2016 TutorialUsoDriverL298NparamotoresDCypasoapasoconArduino

Esquemadeconexin

CdigoenArduino

Elprogramabsicamenteactivaelmotorenunsentidopor4segundos,luegodetieneelmotor
por0.5segundos,despusactivaelmotorensentidoinversopor4segundosyporltimo
detieneelmotorpor5segundos.Luegorepitelaaccinindefinidamente.

1 /*
2 EjemplodecontroldemotorDCusandomoduloL298
3 http://electronilab.co/tienda/driverdualparamotoresfullbridgel298n/
4
5 Elprogramaactivaelmotorenunsentidopor4segundos,
6 paraelmotorpor500ms,activaelmotorensentidoinversopor4segundos
7 ysedetienepor5segundos.Luegorepitelaaccinindefinidamente.
8
9 Creado16/05/14
10 porAndresCruz
11 ELECTRONILAB.CO
12 */
13
14 intIN3=5;
15 intIN4=4;
16
17 voidsetup()
18 {
19 pinMode(IN4,OUTPUT);//Input4conectadaalpin4

http://electronilab.co/tutoriales/tutorialdeusodriverduall298nparamotoresdcypasoapasoconarduino/ 3/28
5/5/2016 TutorialUsoDriverL298NparamotoresDCypasoapasoconArduino

20 pinMode(IN3,OUTPUT);//Input3conectadaalpin5
21 }
22 voidloop()
23 {
24 //Motorgiraenunsentido
25 digitalWrite(IN4,HIGH);
26 digitalWrite(IN3,LOW);
27 delay(4000);
28 //Motornogira
29 digitalWrite(IN4,LOW);
30 delay(500);
31 //Motorgiraensentidoinverso
32 digitalWrite(IN3,HIGH);
33 delay(4000);
34 //Motornogira
35 digitalWrite(IN3,LOW);
36 delay(5000);
37 }
38

Control_motor_dc_L298_Electronilab.inohostedwith byGitHub viewraw

ControldeunmotorDCvariandosuvelocidad
Siqueremoscontrolarlavelocidaddelmotor,tenemosquehacerusodePWM.EstePWMser
aplicadoalospinesdeactivacindecadasalidaopinesENAyENBrespectivamente,portanto
losjumperdeseleccinnosernusados.

Esquemadeconexin

http://electronilab.co/tutoriales/tutorialdeusodriverduall298nparamotoresdcypasoapasoconarduino/ 4/28
5/5/2016 TutorialUsoDriverL298NparamotoresDCypasoapasoconArduino

CdigoenArduino

ElprogramacontrolalavelocidaddeunmotorDCaplicandoPWMalpinENBdelmduloL298N.

1 /*
2 EjemplodecontroldemotorDCusandomoduloL298
3 http://electronilab.co/tienda/driverdualparamotoresfullbridgel298n/
4
5 Creado16/05/14
6 porAndresCruz
7 ELECTRONILAB.CO
8 */
9
10 intIN3=5;//Input3conectadaalpin5
11 intIN4=4;//Input4conectadaalpin4
12 intENB=3;//ENBconectadaalpin3deArduino
13 voidsetup()
14 {
15 pinMode(ENB,OUTPUT);
16 pinMode(IN3,OUTPUT);
17 pinMode(IN4,OUTPUT);
18 }
19 voidloop()
20 {
21 //Preparamoslasalidaparaqueelmotorgireenunsentido
22 digitalWrite(IN3,HIGH);
23 digitalWrite(IN4,LOW);

http://electronilab.co/tutoriales/tutorialdeusodriverduall298nparamotoresdcypasoapasoconarduino/ 5/28
5/5/2016 TutorialUsoDriverL298NparamotoresDCypasoapasoconArduino

24 //AplicamosPWMalpinENB,haciendogirarelmotor,cada2segaumentalavelocidad
25 analogWrite(ENB,55);
26 delay(2000);
27 analogWrite(ENB,105);
28 delay(2000);
29 analogWrite(ENB,255);
30 delay(2000);
31 //Apagamoselmotoryesperamos5seg
32 analogWrite(ENB,0);
33 delay(5000);
34 }

Control_pwm_L298_Electronilab.inohostedwith byGitHub viewraw

Controldeunmotorpasoapasobipolar
Losmotorespasoapasopuedenserbipolaresounipolares.Enesteejemplotrabajamosconun
motorpasoapasobipolar,sinembargoestedriverescapazdecontrolarunmotorpasoapaso
unipolarsiseconectaenconfiguracinbipolar,obviandoloscablesdeltabcentraldelasbobinas
delmotor.Elmximoconsumopermitidoesde2amperios.

Esquemadeconexin

http://electronilab.co/tutoriales/tutorialdeusodriverduall298nparamotoresdcypasoapasoconarduino/ 6/28
5/5/2016 TutorialUsoDriverL298NparamotoresDCypasoapasoconArduino

ElesquemadeconexinmuestralaconexinutilizadaentreelmoduloL298Nyelmotorpasoa
paso.Cadaunadelasbobinasdelmotorestaconectadaaunasalidadelmdulo.Para
identificarlasbobinasdeunmotorpasoapasoutilizamosunmultmetroenmodode
continuidad.Loscablesquedancontinuidadsonlosextremosdecadabobina.

Enestecaso,comoelmotorpasoapasoesde12VDC,utilizamoseljumperdeseleccinde
+5V,paraactivarelreguladorinternodelmduloysolohacerusodeunafuentede12VDCpara
alimentarelmotor.

LosjumperdeactivacinENAyENBloshemosactivadodeigualmanera.

CdigodeArduino

ElcdigodeArduinohacegirarelmotorpasoapasounavueltaenunsentidoyluegoejecuta
otravueltaensentidoopuesto.EstecdigohaceusodelalibreraStepper.h,queseinstalapor
defectoenlasultimasversionesdelIDEdeArduino.

http://electronilab.co/tutoriales/tutorialdeusodriverduall298nparamotoresdcypasoapasoconarduino/ 7/28
5/5/2016 TutorialUsoDriverL298NparamotoresDCypasoapasoconArduino

ElvalordelavariablestepsPerRevolutiondependedelnmerodepasosdelmotorpasoa
paso.Estevalorseencuentraenlasespecificacionesdelahojadedatosdelmotor.Ennuestro
casoelmotorpasoapasoutilizadoesde48pasos/vuelta.

1 /*
2 StepperMotorControlonerevolution
3
4 Esteprogramaimpulsaunmotorpasoapasounipolarobipolar.
5 Elmotorestconectadoalospinesdigitales811delaArduino.
6
7 Elmotordebegirarunavueltaenunadireccin,acontinuacin,
8 unarevolucinenlaotradireccin.
9
10 Created11Mar.2007
11 byTomIgoe
12
13 Modificado
14 16/05/14
15 porAndresCruz
16 ELECTRONILAB.CO
17 */
18
19 #include<Stepper.h>
20
21 constintstepsPerRevolution=48;//cambieestevalorporelnumerodepasosdesumotor
22
23 //inicializalalibreria'stepper'enlospines8a11
24 SteppermyStepper(stepsPerRevolution,8,9,10,11);
25
26 voidsetup(){
27 //establecelavelocidaden60rpm
28 myStepper.setSpeed(60);
29 //inicializaelpuertoserial
30 Serial.begin(9600);
31 }
32
33 voidloop(){
34 //giraunavueltaenunadireccion
35 Serial.println("clockwise");
36 myStepper.step(stepsPerRevolution);
37 delay(500);
38
39 //giraotravueltaenlaotradireccion
40 Serial.println("counterclockwise");
41 myStepper.step(stepsPerRevolution);
42 delay(500);
43 }

http://electronilab.co/tutoriales/tutorialdeusodriverduall298nparamotoresdcypasoapasoconarduino/ 8/28

Das könnte Ihnen auch gefallen