Sunteți pe pagina 1din 14

Instituto Tecnológico de Piedras Negras

Ingeniería Electrónica
Microcontroladores
Practica #6 Control de motor de Pasos.
Ing. Ewald Fritsche R.
Integrantes:
Pablo Cárdenas Gallegos
15430067
Jonás Emmanuel Delgadillo Berrones
15430157

Piedras Negras, Coahuila


31 de Mayo del 2018
Contenido
Índice .................................................................................................................................................. 1
1.- Introducción .................................................................................................................................. 2
2.- Objetivo ......................................................................................................................................... 3
3.- Marco Teórico................................................................................................................................ 4

3.1.- Arduino ....................................................................................................................................... 4


3.2.- Arduino Leonardo ...................................................................................................................... 5

3.3.- Arduino Mega 2560 .................................................................................................................... 5


3.4.- Arduino Yun ................................................................................................................................ 5
3.5.- Control de motores paso a paso ................................................................................................ 6
4.- Desarrollo ...................................................................................................................................... 7

4.1.- Material y equipo utilizado ........................................................................................................ 7


4.2.- Procedimiento ............................................................................................................................ 7

4.3.- Programación en arduino .......................................................................................................... 8


4.4.- Fotografía ................................................................................................................................... 9

5.- Fuentes Bibliográficas ................................................................................................................ 12


6.- Conclusiones y observaciones .................................................................................................... 13

Página 1
1.- Introducción

El Arduino básicamente es una placa con un microcontrolador programable,


barata y de fácil uso.

Lo primero que tenemos que tener claro es, que es un microcontrolador y en


qué se diferencia con el microprocesador. Todos alguna vez hemos entrado
en contacto con ambos conceptos, es decir, todos en casa tenemos un
ordenador, ya sea de sobremesa, portátil… Pues bien, el núcleo de nuestros
ordenadores es un microprocesador, un chip encargado de realizar
operaciones complejas a partir de unas instrucciones (que llamaremos
programa) y unos datos de entrada obteniendo unos datos de salida. Para
procesar y almacenar estos datos necesitamos conectar el microprocesador a
la memoria RAM y demás dispositivos de E/S (Entrada/Salida), que se
conectan a través de la placa base.

Definido de forma escueta el microprocesador, y teniendo en cuenta que


habíamos dicho que el microprocesador necesita que se conecte a la
memoria a través de la placa base, en el microcontrolador tenemos tanto la
memoria donde almacenamos el programa, como la memoria donde se
almacena los datos, en el mismo ensamblado (en el mismo chip).

Página 2
2.- Objetivo

Esta práctica muestra cómo controlar un motor paso a paso usando el


microcontrolador Arduino al especificar un ángulo desde el monitor serie.

Ingresando un cierto ángulo, el motor enciende el monitor serie y el motor


girará en ese ángulo en relación a su posición anterior.

Página 3
3.-Marco teórico
3.1.-Arduino

Hace unos años apareció un proyecto libre, llamado arduino, el cual


facilitaba el acceso a esta clase de dispositivos a los estudiantes, dado que es
una placa basada en openhardware (su diseño es libre y es posible
reproducirlo por cualquier persona).

La programación de arduino no se realizaba a bajo nivel con ensamblador


como muchos Microcontroladores (a partir de ahora los llamaremos PICs),
sino que se realiza con un lenguaje más comprensible por la mayoría de
nosotros, C/C++ (la referencia básica al lenguaje la encontramos aquí y
ejemplos en esta ruta).

Con estos elementos, un programador que no sabe de PICs, sería capaz de


programar el arduino en poco tiempo.

La placa de la versión UNO se componía de 14 pines de E/S digitales, de los


cuales, tenía 2 para conexión serie. Estos pines nos sirve para la mayoría de
sensores básicos, o para relees, accionadores, etc. los cuales solo tienen 2
estados, encendido o apagado (o con las constantes de arduino HIGH y LOW).
También tiene 6 pines analógicos, capaces de leer hasta 1024 niveles de
tensión, llamados resolución del puerto analógico. Estos sirven para leer
sensores que nos devuelven rangos de tensiones diferentes dependiendo de
su estado, como pueda ser, una termoresistencia, una resistencia variable,
etc.

Básicamente, con la estructura del arduino UNO, cualquier persona puede


adentrarse en el mundo de la programación de PICs. Pero, para proyectos
más grandes, se necesita mayor potencia, con lo que los chicos de arduino
fueron creando placas y versiones mejoradas del arduino UNO.

Página 4
3.2.- Arduino Leonardo

Es la primera evolución del arduino Mega, de hecho, tiene los mismos


puertos pero el PIC es diferente, con mayor capacidad y mayor frecuencia de
trabajo. Otra diferencia es el puerto USB, que a la vez de ser usado para subir
el programa, el Leonardo es capaz de usar dicho USB como host, es decir,
podemos usarlo de teclado, etc. Otra inclusión son los puertos SDA y SCL,
utilizados para dispositivos que se comunican a través del protocoloI2C.

3.3.- Arduino Mega 2560

Para los que se les queda corto el Leonardo diseñaron el arduino Mega 2560,
con muchísima más velocidad en el microcontrolador y muchos más puertos
digitales (54 pines) y analógicos (16 pines). Tenemos los pines para I2C como
el Leonardo (aunque cambian de posición).

De este diseño nace también el Arduino Mega ADK, que es una placa
modificada del Mega 2560, pero se le añade un puerto USB host. Google ha
diseñado varios proyectos con esta placa y su buque insignia.

Otra evolución, es el Arduino DUE, con el mismo diseño que el Mega 2560
pero con microprocesador de 32 bits. Es muchísimo más rápido que el Mega
2560.

3.4.- Arduino YUN

Básicamente, esta placa tiene las mismas características de pines y


procesador que el Arduino Leonardo, pero se le ha incorporado un
microordenador donde reside un pequeño Unix, el cual nos permite montar
servidores web muy básicos. Esta placa, se usa mayoritariamente para
proyectos en los que los sensores tienen que informar a través de una red
Ethernet de una forma rápida y sencilla.

Existen más desarrollos que vendrán en un futuro, fusionando la potencia de


las placas arduino con placas madres de ordenador. Ofreciéndonos la
posibilidad de crear multitud de proyectos, con potencia y escalabilidad sin
límites.

Página 5
3.5.- Control de motores paso a paso.

El motor paso a paso es el convertidor electromecánico que permite la


conversión de una información en forma de energía eléctrica, en una energía
mecánica y una información de posición. Está constituido por un estator
cuyos devanados se llaman fases y un rotor de un elevado número de polos.
Su funcionamiento es síncrono y la alimentación cíclica de sus fases debe
originar en cambio de configuración un giro elemental del rotor, constante,
llamado paso.

El control de posición de motores paso a paso se puede efectuar en lazo


abierto siempre que se tomen las precauciones necesarias para no perder
ningún paso. Indicaremos que utilizando técnicas de PWM para el control de
la corriente, asegurando de esta manera un aprovechamiento máximo de par
y con la programación adecuada de aceleración y deceleración, se puede
trabajar perfectamente en lazo abierto siempre que las variaciones que el par
de carga sean conocidas de antemano. Es en estas aplicaciones de carga
conocida donde el motor paso a paso tiene sus posibilidades industriales. En
el caso de tener que accionar cargas desconocidas, su funcionamiento en
lazo cerrado sería del todo perfecto, pero el coste del transductor de
realimentación generalmente no justifica esta aplicación.

El ángulo de paso real para el motor es 5.625 °, sin embargo, emplea


engranajes con relación de transmisión de 1:64 para reducir aún más el
ángulo a 5.625 / 64 = 0.0879 °

La resolución del motor (Paso por revolución) = 360 / paso de ángulo o 360 /
0.0879 = 4096 pasos / revolución.

Switching sequence for Half Stepping (1 or 2 phase ON)


1 2 3 4 5 6 7 8
IN1 ON ON OFF OFF OFF OFF OFF ON
IN2 OFF ON ON ON OFF OFF OFF OFF
IN3 OFF OFF OFF ON ON ON OFF OFF
IN4 OFF OFF OFF OFF ON OFF ON ON

Página 6
4.- Desarrollo
4.1.- Material y equipo utilizado:

 Arduino o Genuino Board


 Pantalla LCD (compatible con el controlador Hitachi HD44780)
 conectores de pin para soldar a los pines de la pantalla LCD
 Motor paso a paso (28BYJ-48)
 Conductor de motor paso a paso
 cables de conexión (jumpers)
 tablilla Protoboard
Software
 Una computadora que ejecuta el software Arduino (IDE)

4.2.- Procedimiento del Circuito:

 Antes de conectar la pantalla LCD a su placa Arduino o Genuino, le


sugerimos soldar una tira de cabeza de alfiler al conector de conteo de
14 (o 16) pines de la pantalla LCD.
 Para conectar su pantalla LCD a su tablero, conecte los siguientes
pines:
 Pin LCD RS a pin digital 12
 LCD Habilitar pin a pin digital 11
 Pin LCD D4 a pin digital 5
 Pin LCD D5 a pin digital 4
 Pin LCD D6 a pin digital 3
 LCD D7 pin a digital pin 2
 Además, cablee un pot de 10k a + 5V y GND, con su wiper (salida) a las
pantallas LCD de pin VO (pin3). Una resistencia de 220 ohm se usa para
alimentar la luz de fondo de la pantalla, generalmente en los pines 15 y
16 del conector LCD
 Conecte IN1 - IN4 a arduino pin 8,9,10,11 .

Página 7
4.3.- Programación en arduino.
#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
//define pin numbers
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 6

int ang = 0;
//for the delay
int mils = 1;

void setup() {
lcd.begin(16, 2);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
Serial.begin(9600);

void loop() {
// Read input from serial Monitor if available
if (Serial.available()) {
ang = Serial.parseInt();
Serial.println("Read " + String(ang) + " degrees");
rotate(ang);
lcd.setCursor(0,0);

Página 8
lcd.print("Gira:");
lcd.print(String(ang));
lcd.print(" grados");
}

void rotate(int angle)


{
int numberOfRounds = (int) angle * 1.42222; // angle*512/360
for (int i = 0; i < numberOfRounds; i++) {

//1000
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(mils);

//1100
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(mils);

//0100
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(mils);

//0110
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(mils);

//0011
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, HIGH);
delay(mils);

//0010
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(mils);

//0001
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);

Página 9
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(mils);

//1001
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(mils);

}
// Switch off all phases
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}

Página
10
4.4.- Fotografía.

Evidencia fotográfica del armado de la práctica.

Evidencia fotográfica del armado de la práctica.

Página
11
5.- Conclusiones y observaciones

De una manera ingeniosa, se puede controlar este motor en función de los


ángulos. Lo relacionamos con una máquina de estados finitos. Nos parece
interesante la conversión de pasos a ángulos que se realiza en el código.

Página
12
6.- Fuente de información.

• https://blog.mazitekgh.com/2017/10/controlling-stepper-motor-using-
arduino.html

Página
13

S-ar putea să vă placă și