SlideShare una empresa de Scribd logo
Motor Pasó a Paso Arduino
Hola controlarosycontrolaras,bienvenidosaotraentrada del sitiowebdonde abordaremos como
usar un Motor Paso a Paso con Arduino, sea Unipolar o Bipolar, y veremos cómo implementarlo
con un ejemploclaroy detallado.En esta entradatomaremoscomo ejemploel motorpaso a paso
28BYJ-48 y lo controlaremos a través de un UNL2003, sin embargo, veremos que podremos
controlar un motor pasoa paso con arduinousando transistoresenpuente H u otro tipo de driver
como el L298.
Antes que nada te dejo la invitación para que veas nuestro Curso Gratis de Arduino.
Motor Paso a Paso con Arduino
Un motorpasoa pasoo tambiénconocidoscomo“steppermotor”esun dispositivoelectrónicoque
permite efectuar un movimiento muy preciso en ángulos pequeños y por pasos en ambas
direcciones,porlotantoeste dispositivoesusadoeninfinidadde procesosde precisióncomoCNC,
impresoras 3D, robots, fotocopiadoras, cortadoras láser entre otros.
Los motores paso a paso son motores de CC que se mueven en pasos discretos. Tienen múltiples
bobinasque se organizanengruposllamados“fases”.Al energizarcadafase ensecuencia,el motor
rotará, un paso a la vez.
Los pasosdel motorsoncontroladosporuna computadoraoun microcontrolador,pudiendolograr
un posicionamientomuyprecisoy/ocontrolarde velocidaddel motorpasoapaso.Porestarazón,
los motorespasoa paso son el motor elegidoparamuchas aplicacionesde control de movimiento
de precisión.
Losmotorespasoapasovienenendiferentestamañosyestilosycaracterísticaseléctricas.Estaguía
detalla lo que necesita saber para elegir el motor adecuado para su trabajo.
Nosotrosyahabíamostenidolaoportunidadde hablarde losmotorespasoapasoennuestrocurso
de PIC donde explicamos en detalle su funcionamiento. Ver motor paso a paso con PIC.
Básicamente un motor paso a paso puede ser representado por la siguiente figura:
5. Motores Paso a Paso
Como puede ser observado en la figura anterior y como ya fue mencionado, el motor paso a paso
posee diferentes cables “fases” y es porque internamente dicho motor posee varias bobinas, las
cualesdebenserenergizadasen una secuenciaordenada para poderconseguirel movimientodel
motor.
Tipos de Motores Paso a Paso
Pero antes es importante entender que en el mercadoexisten dos tipos de motor paso a paso los
cuales podremos controlar con Arduino.
Bobinas del motor pasó a paso
A continuación podemos ver un esquema que muestra la configuración de las diferentes
bobinas dentro de un motor paso a paso unipolar y bipolar.
Estos motoresde paso puedenserencontradosendiferentesdispositivoscomunestalescomolas
impresoras y muchas veces puede resultar especialmente útil poder reconocercada uno de los
terminales del motor, por lo tanto preparé el siguiente video explicándote como reconocer
fácilmentelasbobinasyloscablesde unmotorpasoapasopara controlarloposteriormente conun
Arduino.
Motor Pasó a Paso Unipolar con Arduino
Este esel motor de pasomás común,el cual posee dosbobinasencadaunode losestatoresdonde
cada una de esasbobinasposee unpuntocomún, por lotanto este motor típicamente posee 5o 6
cables.Yviendoestaentradaestarásenlacapacidadde controlarunmotorpasoa paso de 6 cables
con Arduino y mucho más.
Los motores unipolares, siempre energizan sus fases de la misma forma. La derivación “común”,
siempre seránegativaopositivasegúnnuestrocriterio.Laotrapunta de la derivacióncontendrála
polarización contraria. Los motores unipolares se pueden implementar con un simple circuito de
transistor. La desventaja es que hay menostorque disponible porque solola mitad de las bobinas
se pueden energizar a la vez.
Motor Pasó a Paso Bipolar con Arduino
También posee dos bobinas, con la diferencia que no tienen un punto intermedio común, por lo
tanto,esfácil intuirque posee4cables. Sinembargo,paraconseguirelcontrol deestemotorbipolar
seránecesarioefectuarunaconfiguraciónde 2puente Husando8transistores,obienusandoalgún
driver o integrado especial para poder mandar la secuencia de pasos.
Los motores bipolares necesitan los circuitos de puente H porque es necesario invertir el flujode
corriente a través de las fases. Al energizar las fases alternando la polaridad, todas las bobinas
pueden ponerse a trabajar girando el motor.
Movimiento del Motor pasó a Paso con Arduino o cualquier Microcontrolador
Para conseguir el movimiento de un motor paso a paso con Arduino o cualquier otro
microcontrolador, necesariamente vamos a tener que recurrir a la ayuda de un circuito externo,
debido a que un sistema microcontrolado no cuenta con la corriente suficiente para mover este
dispositivo con carga.
En el mercado existen varios drivers diseñados para este fin tales como el ULN2003, L298, L296
entre otros, o también podríamos pensar en controlar un motor paso a paso con Arduino sin
Driver a través de 4 transistores (unipolar) para activar cada bobina o 8 transistores (bipolar) para
hacer una configuración de 2 Puente H que direccione la corriente dentro del motor.
A travésde estosdispositivosmandaremoslasecuenciaenordenparapodermoverel motorpaso
a paso.
Entonces,para podercontrolarun motor paso a paso con Arduinopodemosemplearalgunade las
siguientes 3 secuencias de pasos descritas a continuación:
Secuenciaa 1 Fase
Encendemosúnicamente unabobinaporvezsiguiendo lasiguientetablade verdad.
Paso In1 In2 In3 In4
1 ON OFF OFF OFF
2 OFF ON OFF OFF
3 OFF OFF ON OFF
4 OFF OFF OFF ON
Secuenciaa 2 pasos
En estasecuenciaencendemosde a2 bobinasparaaumentarel Par del motor
Paso In1 In2 In3 In4
1 ON ON OFF OFF
2 OFF ON ON OFF
3 OFF OFF ON ON
4 ON OFF OFF ON
Secuenciaa MedioPaso
Es una combinaciónde lasdossecuenciasanterioresdonde se enciende1bobinaintercaladacon
la activaciónde 2 bobinas,porlo tantopuede seraplicadoen aplicacionesque requierande una
mayor precisión.
Paso In1 In2 In3 In4
1 ON OFF OFF OFF
2 ON ON OFF OFF
3 OFF ON OFF OFF
4 OFF ON ON OFF
5 OFF OFF ON OFF
6 OFF OFF ON ON
7 OFF OFF OFF ON
8 ON OFF OFF ON
Invertir giro motor paso a paso
La inversiónde girode unmotorpasoa pasoessumamente sencilla,paraellosolobastaconenviar
lospasosmostradosenlastablasanterioresenladireccióncontraria,osea,debemosmirarlatabla
de abajohaciaarriba.Si se respetaeseordenenlaprogramacióndelmotorpasoapasoconArduino,
conseguiremos invertir el cambio de sentido del motor pap sin ninguna complicación.
Por ejemploparalasecuenciaa1 fase,debemosenviarprimeroel paso4, luegoel paso3, luegoel
paso 2 y finalmente el paso 1.
Usando un Motor Paso a Paso 28BYJ-48 con ULN2003 y Arduino
Para esta práctica del Motor paso a paso con Arduino vamos a usar el popular motor 28BYJ-48
(datasheet) conel driverULN2003 controladocon Arduino.Porlo tanto esta práctica consistiráen
un motor paso a paso unipolar con Arduino.
El motor 28BYJ-48 es un motor paso a paso Unipolar, por lo tanto no necesita de un complejo
sistemade driverpara ser controladopor eso haremosuso del ULN2003 el cual es una agrupación
de 7 darlingtons que sirven para proporcionarle la corriente necesaria al motor para moverse.
Según el datasheet, cuando el motor 28BYJ-48 funciona con una secuencia a medio paso,
cada medio paso corresponde a una rotación de 5.625 °. Eso significa que hay 64 impulsospor
revolución (360 ° / 5.625 ° = 64).
Además, el motor posee una reducción de 1/64. (En realidad es 1 / 63.68395 pero a hacer un
redondeo para 1/64 que es una buena aproximación)
Esto significaque enrealidadhayque dar 64 * 63.68395 pasospor revolución=4,075.7728 ~ 4076
pasos por vuelta.
El motor 28BYJ-48 es más un motor de precisión que de velocidad. La velocidad máxima para un
motor paso a paso 28BYJ-48 es aproximadamente 10-15 rpm a 5 V.
EjemploMotor PaP con ArduinoUNL2003
Hagamos un ejemplo de un motor paso a paso unipolar arduino.
Crear un programa en arduinousando el driver UNL2003 y el Motor paso a paso28BYJ-48 que sea
capaz de detectarel cambioen4 pulsadores.Unpulsadorserviráparahacerel girosentidohorario,
otro pulsador hará el giro anti horario, otro pulsador cambiará la secuencia de pasos para 1, 2 o
medio paso y el ultimo pulsador modificará la velocidad del motor.
El esquemaesrepresentadoacontinuación,dondese muestracomoconectarunmotorpasoapaso
en Arduino:
Lista de Materiales
 1 Arduino
 1 Driver UNL2003
 1 Motor paso a paso 28BYJ-48
 4 Resistencias de 10k
 4 Pulsadores
Motor pasó a paso arduino L293D y L298 Unipolar
Note que el ejemplo anterior del Motor Paso a Paso con Arduino Unipolar también puede ser
implementado con drivers comercialescomo el L293D y el Driver L298, que internamente poseen
configuracionesenPuente H.Por lo que puedesusar exactamente el mismocódigo,cambiandoel
driver que tengas en tu poder.
También puede implementarse el control del motor paso a paso con arduino sin driver utilizando
para ello un arreglo de 4 transistores que activen cada una de las bobinas del motor UNIPOLAR.
Motor Pasó a Paso Bipolar con Arduino
El ejemploanteriortambiénpuedeserutilizadoconMotoresPasoa Paso Bipolares,sinembargoel
control de este tipo de motor puede resultar un poco más complejo, en el caso que se quiera
implementar con un arreglo de 8 transistores para hacer 2 puente H.
A diferenciadelmotorpasoapasounipolar,elmotorpasoapasobipolartienedosconductorespor
fase, ninguno de los cuales es común.
SinembargousandolosDriversque poseenpuente Hinternoscomoel casodel L293D o el L298, es
sumamente fácil poner a trabajar nuestros motores BIPOLARES, es más, puede
emplearse EXACTAMENTE EL MISMO programa hecho para el motor UNIPOLAR, haciendo las
conexiones correctas.
Diferenciaenla conexióndel Motor PaP Unipolary Bipolar
Motor Pasó a Paso UNIPOLAR y BIPOLAR con Arduino
A continuación se muestra el esquema electrónico del ejemplo, que muestra la conexión para
motores paso a paso unipolares y bipolares usando cualquiera de los drivers anteriormente
mencionadosoinclusivevamosaconectarunmotorpasoapasoa ArduinosinusarDRIVERylomás
importante es que todos los esquemas usan el MISMO CÓDIGO DE PROGRAMACIÓN DEL
ARDUINO.
Inicialmente veamos el esquema del motor paso a paso en proteus:
CódigoMotor Paso a Paso Arduino
Sabesque para bajar el códigosolobastacon compartir el contenidode este postconcualquiera
de lossiguientes3botones,asíayudasa difundirlainformaciónde estawebyque máspersonas
aprendany conozcan el maravillosomundode Arduino.
Si lo deseasPuedesDescargarel Archivoconel Códigoyconlos diagramasde simulaciónen
Proteus8
//*************************************************************//
//*************************************************************//
//**** *****//
//**** MOTOR PASO A PASO CON ARDUINO *****//
//**** *****//
//**** By: SERGIO ANDRES CASTAÑO GIRALDO *****//
//**** https://controlautomaticoeducacion.com/ *****//
//**** RIO DE JANEIRO - BRASIL - 2018 *****//
//**** *****//
//*************************************************************//
//*************************************************************//
//Declaración de los PULSADORES
byte PHorario = 2; //Pulsador sentido horario
byte PAntiHorario = 3; //Pulsador sentido anti horario
byte PPasos = 4; //Pulsador numero de pasos
byte PVel = 5; //Pulsador velocidad
//Declaración de los PINES del Driver
byte IN1=8; // 28BYJ48 In1
byte IN2=9; // 28BYJ48 In2
byte IN3=10; // 28BYJ48 In3
byte IN4=11; // 28BYJ48 In4
int horario=1;
//*** Crear Matriz con los Pasos del Motor ***//
int paso=4; //Variable que indica el numero de pasos de las matrices
int Cpaso=0; //Contador de pasos
int vel[5]={5,10,30,100,500}; //Vector de velocidad
int Cvel=0; //Contador de Velocidad
int conf=1; //Variable que configura la secuencia de pasos
//secuencia 1 paso
const int UnPaso[4] = { B1000,
B0100,
B0010,
B0001 };
//secuencia 2 pasos
const int DosPasos[4] = { B1100,
B0110,
B0011,
B1001 };
// Secuencia a medio paso
byte const MedioPaso[8] = { B1000,
B1100,
B0100,
B0110,
B0010,
B0011,
B0001,
B1001 };
//Función que coloca en el puerto de salida los bits comenzando
// desde el pin ini hasta el pin fin
void puerto(int bits,int ini,int fin){
for(int i=ini;i<=fin;i++)
{
digitalWrite(i,bitRead(bits,i-ini));
}
}
void setup() {
//Configura los 4 Pines de Pulsadores como ENTRADAS
for(int i=2;i<=5;i++){
pinMode(i,INPUT);
}
//Configura los 4 Pines digitales como SALIDAS
for(int i=IN1;i<=IN4;i++){
pinMode(i,OUTPUT);
}
}
void loop() {
//***********************************************************************
*******//
//*********** Pregunta por los Pulsadores
*********************************//
//***********************************************************************
*******//
// Giro en Sentido Horario
if(digitalRead(PHorario)) // Pregunta si pulsador horario fue presionado
{
delay(100); //Anti-Rebote
horario=1;
Cpaso=-1;
}
// Giro en Sentido Anti-Horario
if(digitalRead(PAntiHorario)) // Pregunta si pulsador horario fue
presionado
{
delay(100); //Anti-Rebote
horario=0;
Cpaso=paso;
}
// Cambio de la secuencia de pasos
if(digitalRead(PPasos)) // Pregunta si pulsador horario fue presionado
{
delay(100); //Anti-Rebote
while(digitalRead(PPasos)); //Espera hasta soltar el boton
delay(100); //Anti-Rebote
conf++;
//Si ya paso por las 3 configuraciones reinicie
if(conf>3)
conf=1;
if(horario==1)
Cpaso=-1;
else
Cpaso=paso;
puerto(B0000,IN1,IN4);
}
// Velocidad del Motor
if(digitalRead(PVel)) // Pregunta si pulsador horario fue presionado
{
delay(100); //Anti-Rebote
while(digitalRead(PVel)); //Espera hasta soltar el boton
delay(100); //Anti-Rebote
Cvel++;
//Si ya paso por las 5 velocidades reinicie
if(Cvel>4)
Cvel=0;
}
//***********************************************************************
*******//
//*********** Logica de los contadores
*********************************//
//***********************************************************************
*******//
if(horario==1)
{
Cpaso++; //Incremente la variable cont
if(Cpaso>=paso)
Cpaso=0; //Se pone Contador de pasos en cero
}
else{
Cpaso--; //Decremente la variable cont
if(Cpaso<0)
Cpaso=paso-1; //Se pone Contador igual al paso
}
//***********************************************************************
*******//
//*********** Secuencia de Movimiento del Motor
***************************//
//***********************************************************************
*******//
switch(conf){
case 1:
puerto(UnPaso[Cpaso],IN1,IN4); //Envíe al puerto la información de la
tabla
paso=4;
break;
case 2:
puerto(DosPasos[Cpaso],IN1,IN4); //Envíe al puerto la información de la
tabla
paso=4;
break;
case 3:
puerto(MedioPaso[Cpaso],IN1,IN4); //Envíe al puerto la información de la
tabla
paso=8;
break;
}
delay(vel[Cvel]); //Retardo de 100 milisegundos
}

Más contenido relacionado

La actualidad más candente

Trabajo mezclador de pintura2
Trabajo mezclador de pintura2Trabajo mezclador de pintura2
Trabajo mezclador de pintura2
Magna Cossio
 
Pdf logica-cableada-parte-11
Pdf logica-cableada-parte-11Pdf logica-cableada-parte-11
Pdf logica-cableada-parte-11
Jeoc89
 
Explicativo bombas de alimentacion diesel}
Explicativo  bombas de alimentacion diesel}Explicativo  bombas de alimentacion diesel}
Explicativo bombas de alimentacion diesel}
Carlos Erazo
 
Circuitos EléCt.1
Circuitos EléCt.1Circuitos EléCt.1
Circuitos EléCt.1
guest75cca
 
Amplificador lm741 integrador y diferenciador pd
Amplificador lm741 integrador y  diferenciador pdAmplificador lm741 integrador y  diferenciador pd
Amplificador lm741 integrador y diferenciador pd
Franklin J.
 

La actualidad más candente (20)

Intro,diagramas y ejemplos
Intro,diagramas y ejemplosIntro,diagramas y ejemplos
Intro,diagramas y ejemplos
 
Analisis resueltos neumaticos
Analisis resueltos neumaticosAnalisis resueltos neumaticos
Analisis resueltos neumaticos
 
Cuaderno 2 Neumática
Cuaderno 2 NeumáticaCuaderno 2 Neumática
Cuaderno 2 Neumática
 
Trabajo mezclador de pintura2
Trabajo mezclador de pintura2Trabajo mezclador de pintura2
Trabajo mezclador de pintura2
 
Rectificadores De Onda Completa Con Tap Central
Rectificadores De Onda Completa Con Tap CentralRectificadores De Onda Completa Con Tap Central
Rectificadores De Onda Completa Con Tap Central
 
Funciones ODB2
Funciones ODB2Funciones ODB2
Funciones ODB2
 
Programacion de un PLC
Programacion de un PLCProgramacion de un PLC
Programacion de un PLC
 
Electroneumática y Neumática: ejercicios básicos en fluidsim
Electroneumática y Neumática: ejercicios básicos en fluidsimElectroneumática y Neumática: ejercicios básicos en fluidsim
Electroneumática y Neumática: ejercicios básicos en fluidsim
 
Simbologia neuMATICA
Simbologia neuMATICASimbologia neuMATICA
Simbologia neuMATICA
 
Cilindros
CilindrosCilindros
Cilindros
 
Variadores de frecuencia
Variadores de frecuenciaVariadores de frecuencia
Variadores de frecuencia
 
Motores paso a paso
Motores paso a pasoMotores paso a paso
Motores paso a paso
 
006. diseño de circuitos neumaticos metodo secuenciador
006. diseño de circuitos neumaticos metodo secuenciador006. diseño de circuitos neumaticos metodo secuenciador
006. diseño de circuitos neumaticos metodo secuenciador
 
Pdf logica-cableada-parte-11
Pdf logica-cableada-parte-11Pdf logica-cableada-parte-11
Pdf logica-cableada-parte-11
 
Explicativo bombas de alimentacion diesel}
Explicativo  bombas de alimentacion diesel}Explicativo  bombas de alimentacion diesel}
Explicativo bombas de alimentacion diesel}
 
motor de inducción de corriente alterna, exposición
 motor de inducción de corriente alterna, exposición motor de inducción de corriente alterna, exposición
motor de inducción de corriente alterna, exposición
 
Circuitos EléCt.1
Circuitos EléCt.1Circuitos EléCt.1
Circuitos EléCt.1
 
Electroneumática
Electroneumática Electroneumática
Electroneumática
 
Maquinas Eléctricas sincronas o sincrónicas - Universidad Nacional de Loja
Maquinas Eléctricas sincronas o sincrónicas - Universidad Nacional de LojaMaquinas Eléctricas sincronas o sincrónicas - Universidad Nacional de Loja
Maquinas Eléctricas sincronas o sincrónicas - Universidad Nacional de Loja
 
Amplificador lm741 integrador y diferenciador pd
Amplificador lm741 integrador y  diferenciador pdAmplificador lm741 integrador y  diferenciador pd
Amplificador lm741 integrador y diferenciador pd
 

Similar a Arduino: Motor paso a paso Arduino

Metodo de Control de velocidad y de motores
Metodo de Control de velocidad y de motores  Metodo de Control de velocidad y de motores
Metodo de Control de velocidad y de motores
Josue Rivera
 
Controlar motores de corriente continua con puente h
Controlar motores de corriente continua con puente hControlar motores de corriente continua con puente h
Controlar motores de corriente continua con puente h
edyhard
 
Robot seguidor de línea con software y hardware
Robot seguidor de línea con software y hardwareRobot seguidor de línea con software y hardware
Robot seguidor de línea con software y hardware
Namsohj Ozarazil
 

Similar a Arduino: Motor paso a paso Arduino (20)

Proyecto balancing joaquin berrocal piris abril 2016 - 53 pag
Proyecto balancing joaquin berrocal piris abril 2016  - 53 pagProyecto balancing joaquin berrocal piris abril 2016  - 53 pag
Proyecto balancing joaquin berrocal piris abril 2016 - 53 pag
 
Bipolar l293b arduino
Bipolar l293b arduinoBipolar l293b arduino
Bipolar l293b arduino
 
Practica motor pap
Practica motor papPractica motor pap
Practica motor pap
 
Metodo de Control de velocidad y de motores
Metodo de Control de velocidad y de motores  Metodo de Control de velocidad y de motores
Metodo de Control de velocidad y de motores
 
Accionamiento para servomotor y motor a pasos
Accionamiento para servomotor y motor a pasosAccionamiento para servomotor y motor a pasos
Accionamiento para servomotor y motor a pasos
 
Controlar motores de corriente continua con puente h
Controlar motores de corriente continua con puente hControlar motores de corriente continua con puente h
Controlar motores de corriente continua con puente h
 
Informe N°1-Microcontroladores
Informe N°1-MicrocontroladoresInforme N°1-Microcontroladores
Informe N°1-Microcontroladores
 
Robot seguidor de línea con software y hardware
Robot seguidor de línea con software y hardwareRobot seguidor de línea con software y hardware
Robot seguidor de línea con software y hardware
 
Proyecto brazo robotico ksr10 enero marzo 2015
Proyecto brazo robotico ksr10  enero marzo 2015Proyecto brazo robotico ksr10  enero marzo 2015
Proyecto brazo robotico ksr10 enero marzo 2015
 
Proyecto slider
Proyecto sliderProyecto slider
Proyecto slider
 
Proyecto brazo robotico ksr10 enero marzo 2015
Proyecto brazo robotico ksr10  enero marzo 2015Proyecto brazo robotico ksr10  enero marzo 2015
Proyecto brazo robotico ksr10 enero marzo 2015
 
Informe de la araña robótica (1).pdf
Informe de la araña robótica (1).pdfInforme de la araña robótica (1).pdf
Informe de la araña robótica (1).pdf
 
Práctica06.Controlando Motores
Práctica06.Controlando MotoresPráctica06.Controlando Motores
Práctica06.Controlando Motores
 
Seminari
SeminariSeminari
Seminari
 
Brazo robotico
Brazo roboticoBrazo robotico
Brazo robotico
 
motor paso a paso
 motor paso a paso motor paso a paso
motor paso a paso
 
Oso Hormiguero informe final de robotica.pdf
Oso Hormiguero informe final de robotica.pdfOso Hormiguero informe final de robotica.pdf
Oso Hormiguero informe final de robotica.pdf
 
Introduccion arduino
Introduccion arduinoIntroduccion arduino
Introduccion arduino
 
Aulo Wilfredo Inga PeñA
Aulo Wilfredo Inga PeñAAulo Wilfredo Inga PeñA
Aulo Wilfredo Inga PeñA
 
Construccion seguidor de línea por joaquín berrocal verano 2017
Construccion seguidor de línea por joaquín berrocal verano 2017Construccion seguidor de línea por joaquín berrocal verano 2017
Construccion seguidor de línea por joaquín berrocal verano 2017
 

Más de SANTIAGO PABLO ALBERTO

Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
SANTIAGO PABLO ALBERTO
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
SANTIAGO PABLO ALBERTO
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1
SANTIAGO PABLO ALBERTO
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMART
SANTIAGO PABLO ALBERTO
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
SANTIAGO PABLO ALBERTO
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
SANTIAGO PABLO ALBERTO
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
SANTIAGO PABLO ALBERTO
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
SANTIAGO PABLO ALBERTO
 

Más de SANTIAGO PABLO ALBERTO (20)

secuencia electroneumática parte 1
secuencia electroneumática parte 1secuencia electroneumática parte 1
secuencia electroneumática parte 1
 
secuencia electroneumática parte 2
secuencia electroneumática parte 2secuencia electroneumática parte 2
secuencia electroneumática parte 2
 
Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzada
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio Pereira
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
 
Arduino: Arduino de cero a experto
Arduino: Arduino de cero a expertoArduino: Arduino de cero a experto
Arduino: Arduino de cero a experto
 
Fisica I
Fisica IFisica I
Fisica I
 
Quimica.pdf
Quimica.pdfQuimica.pdf
Quimica.pdf
 
Manual básico PLC OMRON
Manual básico PLC OMRON Manual básico PLC OMRON
Manual básico PLC OMRON
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMART
 
Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART
 
PLC: Automatismos industriales
PLC: Automatismos industrialesPLC: Automatismos industriales
PLC: Automatismos industriales
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
 
PLC: Motor Dahlander
PLC: Motor DahlanderPLC: Motor Dahlander
PLC: Motor Dahlander
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
 

Último

Mecanismos de transferencia de un generador de vapor
Mecanismos de transferencia de un generador de vaporMecanismos de transferencia de un generador de vapor
Mecanismos de transferencia de un generador de vapor
alema3825
 
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptxtema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
DianaSG6
 
matematicas en la ingenieria de la construccion
matematicas en la ingenieria de la construccionmatematicas en la ingenieria de la construccion
matematicas en la ingenieria de la construccion
alberto891871
 

Último (20)

&PLC Ladder.pdf automatización industrial
&PLC Ladder.pdf automatización industrial&PLC Ladder.pdf automatización industrial
&PLC Ladder.pdf automatización industrial
 
Tasaciones Ñuñoa - La Reina - Las Condes
Tasaciones Ñuñoa - La Reina - Las CondesTasaciones Ñuñoa - La Reina - Las Condes
Tasaciones Ñuñoa - La Reina - Las Condes
 
Joseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidadJoseph juran aportaciones al control de la calidad
Joseph juran aportaciones al control de la calidad
 
Mecanismos de transferencia de un generador de vapor
Mecanismos de transferencia de un generador de vaporMecanismos de transferencia de un generador de vapor
Mecanismos de transferencia de un generador de vapor
 
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
14. DISEÑO LOSA ALIGERADA MOD G VOLADO.pdf
 
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptxtema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
 
SISTEMA ARTICULADO DE CUATRO BARRAS .pdf
SISTEMA ARTICULADO DE CUATRO BARRAS .pdfSISTEMA ARTICULADO DE CUATRO BARRAS .pdf
SISTEMA ARTICULADO DE CUATRO BARRAS .pdf
 
DESVIACION
DESVIACION DESVIACION
DESVIACION
 
matematicas en la ingenieria de la construccion
matematicas en la ingenieria de la construccionmatematicas en la ingenieria de la construccion
matematicas en la ingenieria de la construccion
 
Diagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdfDiagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdf
 
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALESLA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
 
Trabajo Mecanismos de cuatro barras.pdf
Trabajo  Mecanismos de cuatro barras.pdfTrabajo  Mecanismos de cuatro barras.pdf
Trabajo Mecanismos de cuatro barras.pdf
 
Sistemas de posicionamiento global (G.P.S.).pdf
Sistemas de posicionamiento global (G.P.S.).pdfSistemas de posicionamiento global (G.P.S.).pdf
Sistemas de posicionamiento global (G.P.S.).pdf
 
Los vidrios eléctricos en un automóvil.pptx
Los vidrios eléctricos en un automóvil.pptxLos vidrios eléctricos en un automóvil.pptx
Los vidrios eléctricos en un automóvil.pptx
 
Mapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIASMapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIAS
 
Instalación de GLPI en Debian Linux paso a paso
Instalación de GLPI en Debian Linux paso a pasoInstalación de GLPI en Debian Linux paso a paso
Instalación de GLPI en Debian Linux paso a paso
 
habilidad para el manejo de estación total.pdf
habilidad para el manejo de estación total.pdfhabilidad para el manejo de estación total.pdf
habilidad para el manejo de estación total.pdf
 
Mecanismo de cuatro barras articuladas!!
Mecanismo de cuatro barras articuladas!!Mecanismo de cuatro barras articuladas!!
Mecanismo de cuatro barras articuladas!!
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
 

Arduino: Motor paso a paso Arduino

  • 1. Motor Pasó a Paso Arduino Hola controlarosycontrolaras,bienvenidosaotraentrada del sitiowebdonde abordaremos como usar un Motor Paso a Paso con Arduino, sea Unipolar o Bipolar, y veremos cómo implementarlo con un ejemploclaroy detallado.En esta entradatomaremoscomo ejemploel motorpaso a paso 28BYJ-48 y lo controlaremos a través de un UNL2003, sin embargo, veremos que podremos controlar un motor pasoa paso con arduinousando transistoresenpuente H u otro tipo de driver como el L298. Antes que nada te dejo la invitación para que veas nuestro Curso Gratis de Arduino. Motor Paso a Paso con Arduino Un motorpasoa pasoo tambiénconocidoscomo“steppermotor”esun dispositivoelectrónicoque permite efectuar un movimiento muy preciso en ángulos pequeños y por pasos en ambas direcciones,porlotantoeste dispositivoesusadoeninfinidadde procesosde precisióncomoCNC, impresoras 3D, robots, fotocopiadoras, cortadoras láser entre otros. Los motores paso a paso son motores de CC que se mueven en pasos discretos. Tienen múltiples bobinasque se organizanengruposllamados“fases”.Al energizarcadafase ensecuencia,el motor rotará, un paso a la vez. Los pasosdel motorsoncontroladosporuna computadoraoun microcontrolador,pudiendolograr un posicionamientomuyprecisoy/ocontrolarde velocidaddel motorpasoapaso.Porestarazón, los motorespasoa paso son el motor elegidoparamuchas aplicacionesde control de movimiento de precisión.
  • 2. Losmotorespasoapasovienenendiferentestamañosyestilosycaracterísticaseléctricas.Estaguía detalla lo que necesita saber para elegir el motor adecuado para su trabajo. Nosotrosyahabíamostenidolaoportunidadde hablarde losmotorespasoapasoennuestrocurso de PIC donde explicamos en detalle su funcionamiento. Ver motor paso a paso con PIC. Básicamente un motor paso a paso puede ser representado por la siguiente figura: 5. Motores Paso a Paso Como puede ser observado en la figura anterior y como ya fue mencionado, el motor paso a paso posee diferentes cables “fases” y es porque internamente dicho motor posee varias bobinas, las cualesdebenserenergizadasen una secuenciaordenada para poderconseguirel movimientodel motor. Tipos de Motores Paso a Paso Pero antes es importante entender que en el mercadoexisten dos tipos de motor paso a paso los cuales podremos controlar con Arduino. Bobinas del motor pasó a paso A continuación podemos ver un esquema que muestra la configuración de las diferentes bobinas dentro de un motor paso a paso unipolar y bipolar. Estos motoresde paso puedenserencontradosendiferentesdispositivoscomunestalescomolas impresoras y muchas veces puede resultar especialmente útil poder reconocercada uno de los terminales del motor, por lo tanto preparé el siguiente video explicándote como reconocer fácilmentelasbobinasyloscablesde unmotorpasoapasopara controlarloposteriormente conun Arduino.
  • 3. Motor Pasó a Paso Unipolar con Arduino Este esel motor de pasomás común,el cual posee dosbobinasencadaunode losestatoresdonde cada una de esasbobinasposee unpuntocomún, por lotanto este motor típicamente posee 5o 6 cables.Yviendoestaentradaestarásenlacapacidadde controlarunmotorpasoa paso de 6 cables con Arduino y mucho más. Los motores unipolares, siempre energizan sus fases de la misma forma. La derivación “común”, siempre seránegativaopositivasegúnnuestrocriterio.Laotrapunta de la derivacióncontendrála polarización contraria. Los motores unipolares se pueden implementar con un simple circuito de transistor. La desventaja es que hay menostorque disponible porque solola mitad de las bobinas se pueden energizar a la vez. Motor Pasó a Paso Bipolar con Arduino También posee dos bobinas, con la diferencia que no tienen un punto intermedio común, por lo tanto,esfácil intuirque posee4cables. Sinembargo,paraconseguirelcontrol deestemotorbipolar seránecesarioefectuarunaconfiguraciónde 2puente Husando8transistores,obienusandoalgún driver o integrado especial para poder mandar la secuencia de pasos. Los motores bipolares necesitan los circuitos de puente H porque es necesario invertir el flujode corriente a través de las fases. Al energizar las fases alternando la polaridad, todas las bobinas pueden ponerse a trabajar girando el motor. Movimiento del Motor pasó a Paso con Arduino o cualquier Microcontrolador Para conseguir el movimiento de un motor paso a paso con Arduino o cualquier otro microcontrolador, necesariamente vamos a tener que recurrir a la ayuda de un circuito externo, debido a que un sistema microcontrolado no cuenta con la corriente suficiente para mover este dispositivo con carga. En el mercado existen varios drivers diseñados para este fin tales como el ULN2003, L298, L296 entre otros, o también podríamos pensar en controlar un motor paso a paso con Arduino sin Driver a través de 4 transistores (unipolar) para activar cada bobina o 8 transistores (bipolar) para hacer una configuración de 2 Puente H que direccione la corriente dentro del motor. A travésde estosdispositivosmandaremoslasecuenciaenordenparapodermoverel motorpaso a paso. Entonces,para podercontrolarun motor paso a paso con Arduinopodemosemplearalgunade las siguientes 3 secuencias de pasos descritas a continuación: Secuenciaa 1 Fase Encendemosúnicamente unabobinaporvezsiguiendo lasiguientetablade verdad.
  • 4. Paso In1 In2 In3 In4 1 ON OFF OFF OFF 2 OFF ON OFF OFF 3 OFF OFF ON OFF 4 OFF OFF OFF ON Secuenciaa 2 pasos En estasecuenciaencendemosde a2 bobinasparaaumentarel Par del motor Paso In1 In2 In3 In4 1 ON ON OFF OFF 2 OFF ON ON OFF 3 OFF OFF ON ON 4 ON OFF OFF ON
  • 5. Secuenciaa MedioPaso Es una combinaciónde lasdossecuenciasanterioresdonde se enciende1bobinaintercaladacon la activaciónde 2 bobinas,porlo tantopuede seraplicadoen aplicacionesque requierande una mayor precisión. Paso In1 In2 In3 In4 1 ON OFF OFF OFF 2 ON ON OFF OFF 3 OFF ON OFF OFF 4 OFF ON ON OFF 5 OFF OFF ON OFF 6 OFF OFF ON ON 7 OFF OFF OFF ON 8 ON OFF OFF ON Invertir giro motor paso a paso La inversiónde girode unmotorpasoa pasoessumamente sencilla,paraellosolobastaconenviar lospasosmostradosenlastablasanterioresenladireccióncontraria,osea,debemosmirarlatabla de abajohaciaarriba.Si se respetaeseordenenlaprogramacióndelmotorpasoapasoconArduino, conseguiremos invertir el cambio de sentido del motor pap sin ninguna complicación. Por ejemploparalasecuenciaa1 fase,debemosenviarprimeroel paso4, luegoel paso3, luegoel paso 2 y finalmente el paso 1. Usando un Motor Paso a Paso 28BYJ-48 con ULN2003 y Arduino Para esta práctica del Motor paso a paso con Arduino vamos a usar el popular motor 28BYJ-48 (datasheet) conel driverULN2003 controladocon Arduino.Porlo tanto esta práctica consistiráen un motor paso a paso unipolar con Arduino.
  • 6. El motor 28BYJ-48 es un motor paso a paso Unipolar, por lo tanto no necesita de un complejo sistemade driverpara ser controladopor eso haremosuso del ULN2003 el cual es una agrupación de 7 darlingtons que sirven para proporcionarle la corriente necesaria al motor para moverse. Según el datasheet, cuando el motor 28BYJ-48 funciona con una secuencia a medio paso, cada medio paso corresponde a una rotación de 5.625 °. Eso significa que hay 64 impulsospor revolución (360 ° / 5.625 ° = 64). Además, el motor posee una reducción de 1/64. (En realidad es 1 / 63.68395 pero a hacer un redondeo para 1/64 que es una buena aproximación) Esto significaque enrealidadhayque dar 64 * 63.68395 pasospor revolución=4,075.7728 ~ 4076 pasos por vuelta. El motor 28BYJ-48 es más un motor de precisión que de velocidad. La velocidad máxima para un motor paso a paso 28BYJ-48 es aproximadamente 10-15 rpm a 5 V. EjemploMotor PaP con ArduinoUNL2003 Hagamos un ejemplo de un motor paso a paso unipolar arduino. Crear un programa en arduinousando el driver UNL2003 y el Motor paso a paso28BYJ-48 que sea capaz de detectarel cambioen4 pulsadores.Unpulsadorserviráparahacerel girosentidohorario, otro pulsador hará el giro anti horario, otro pulsador cambiará la secuencia de pasos para 1, 2 o medio paso y el ultimo pulsador modificará la velocidad del motor.
  • 7. El esquemaesrepresentadoacontinuación,dondese muestracomoconectarunmotorpasoapaso en Arduino: Lista de Materiales  1 Arduino  1 Driver UNL2003  1 Motor paso a paso 28BYJ-48  4 Resistencias de 10k  4 Pulsadores Motor pasó a paso arduino L293D y L298 Unipolar Note que el ejemplo anterior del Motor Paso a Paso con Arduino Unipolar también puede ser implementado con drivers comercialescomo el L293D y el Driver L298, que internamente poseen
  • 8. configuracionesenPuente H.Por lo que puedesusar exactamente el mismocódigo,cambiandoel driver que tengas en tu poder. También puede implementarse el control del motor paso a paso con arduino sin driver utilizando para ello un arreglo de 4 transistores que activen cada una de las bobinas del motor UNIPOLAR. Motor Pasó a Paso Bipolar con Arduino El ejemploanteriortambiénpuedeserutilizadoconMotoresPasoa Paso Bipolares,sinembargoel control de este tipo de motor puede resultar un poco más complejo, en el caso que se quiera implementar con un arreglo de 8 transistores para hacer 2 puente H. A diferenciadelmotorpasoapasounipolar,elmotorpasoapasobipolartienedosconductorespor fase, ninguno de los cuales es común. SinembargousandolosDriversque poseenpuente Hinternoscomoel casodel L293D o el L298, es sumamente fácil poner a trabajar nuestros motores BIPOLARES, es más, puede emplearse EXACTAMENTE EL MISMO programa hecho para el motor UNIPOLAR, haciendo las conexiones correctas. Diferenciaenla conexióndel Motor PaP Unipolary Bipolar Motor Pasó a Paso UNIPOLAR y BIPOLAR con Arduino A continuación se muestra el esquema electrónico del ejemplo, que muestra la conexión para motores paso a paso unipolares y bipolares usando cualquiera de los drivers anteriormente mencionadosoinclusivevamosaconectarunmotorpasoapasoa ArduinosinusarDRIVERylomás importante es que todos los esquemas usan el MISMO CÓDIGO DE PROGRAMACIÓN DEL ARDUINO. Inicialmente veamos el esquema del motor paso a paso en proteus:
  • 9. CódigoMotor Paso a Paso Arduino Sabesque para bajar el códigosolobastacon compartir el contenidode este postconcualquiera de lossiguientes3botones,asíayudasa difundirlainformaciónde estawebyque máspersonas aprendany conozcan el maravillosomundode Arduino. Si lo deseasPuedesDescargarel Archivoconel Códigoyconlos diagramasde simulaciónen Proteus8
  • 10. //*************************************************************// //*************************************************************// //**** *****// //**** MOTOR PASO A PASO CON ARDUINO *****// //**** *****// //**** By: SERGIO ANDRES CASTAÑO GIRALDO *****// //**** https://controlautomaticoeducacion.com/ *****// //**** RIO DE JANEIRO - BRASIL - 2018 *****// //**** *****// //*************************************************************// //*************************************************************// //Declaración de los PULSADORES byte PHorario = 2; //Pulsador sentido horario byte PAntiHorario = 3; //Pulsador sentido anti horario byte PPasos = 4; //Pulsador numero de pasos byte PVel = 5; //Pulsador velocidad //Declaración de los PINES del Driver byte IN1=8; // 28BYJ48 In1 byte IN2=9; // 28BYJ48 In2 byte IN3=10; // 28BYJ48 In3 byte IN4=11; // 28BYJ48 In4 int horario=1; //*** Crear Matriz con los Pasos del Motor ***// int paso=4; //Variable que indica el numero de pasos de las matrices int Cpaso=0; //Contador de pasos int vel[5]={5,10,30,100,500}; //Vector de velocidad int Cvel=0; //Contador de Velocidad int conf=1; //Variable que configura la secuencia de pasos //secuencia 1 paso const int UnPaso[4] = { B1000,
  • 11. B0100, B0010, B0001 }; //secuencia 2 pasos const int DosPasos[4] = { B1100, B0110, B0011, B1001 }; // Secuencia a medio paso byte const MedioPaso[8] = { B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001 }; //Función que coloca en el puerto de salida los bits comenzando // desde el pin ini hasta el pin fin void puerto(int bits,int ini,int fin){ for(int i=ini;i<=fin;i++) { digitalWrite(i,bitRead(bits,i-ini)); } } void setup() { //Configura los 4 Pines de Pulsadores como ENTRADAS for(int i=2;i<=5;i++){ pinMode(i,INPUT); }
  • 12. //Configura los 4 Pines digitales como SALIDAS for(int i=IN1;i<=IN4;i++){ pinMode(i,OUTPUT); } } void loop() { //*********************************************************************** *******// //*********** Pregunta por los Pulsadores *********************************// //*********************************************************************** *******// // Giro en Sentido Horario if(digitalRead(PHorario)) // Pregunta si pulsador horario fue presionado { delay(100); //Anti-Rebote horario=1; Cpaso=-1; } // Giro en Sentido Anti-Horario if(digitalRead(PAntiHorario)) // Pregunta si pulsador horario fue presionado { delay(100); //Anti-Rebote horario=0; Cpaso=paso; } // Cambio de la secuencia de pasos if(digitalRead(PPasos)) // Pregunta si pulsador horario fue presionado { delay(100); //Anti-Rebote
  • 13. while(digitalRead(PPasos)); //Espera hasta soltar el boton delay(100); //Anti-Rebote conf++; //Si ya paso por las 3 configuraciones reinicie if(conf>3) conf=1; if(horario==1) Cpaso=-1; else Cpaso=paso; puerto(B0000,IN1,IN4); } // Velocidad del Motor if(digitalRead(PVel)) // Pregunta si pulsador horario fue presionado { delay(100); //Anti-Rebote while(digitalRead(PVel)); //Espera hasta soltar el boton delay(100); //Anti-Rebote Cvel++; //Si ya paso por las 5 velocidades reinicie if(Cvel>4) Cvel=0; } //*********************************************************************** *******// //*********** Logica de los contadores *********************************// //*********************************************************************** *******// if(horario==1) {
  • 14. Cpaso++; //Incremente la variable cont if(Cpaso>=paso) Cpaso=0; //Se pone Contador de pasos en cero } else{ Cpaso--; //Decremente la variable cont if(Cpaso<0) Cpaso=paso-1; //Se pone Contador igual al paso } //*********************************************************************** *******// //*********** Secuencia de Movimiento del Motor ***************************// //*********************************************************************** *******// switch(conf){ case 1: puerto(UnPaso[Cpaso],IN1,IN4); //Envíe al puerto la información de la tabla paso=4; break; case 2: puerto(DosPasos[Cpaso],IN1,IN4); //Envíe al puerto la información de la tabla paso=4; break; case 3: puerto(MedioPaso[Cpaso],IN1,IN4); //Envíe al puerto la información de la tabla paso=8; break; }
  • 15. delay(vel[Cvel]); //Retardo de 100 milisegundos }