CONTROL DE MOTOR PASO A PASO

Documentos relacionados
INTRODUCCIÓN DESCRIPCIÓN... 4 Características Hardware... 4

CONSTRUCCIÓN DE TIMER PARA VUELO CIRCULAR CON NANO ARDUINO

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO

EL MICROCONTROLADOR ARDUINO

EJERCICIOS CON ARDUINO LED ENCENDIDO. Se conecta el Led al pin 52 y a alimentación. Compilar Se enciende el LED.

TECLADO TACTIL CAPACITIVO SIGMA ELECTRONICA

DFRduino Romeo, todo en un controlador (RoMeo V1.0) Por favor, lea atentamente este manual antes de encender el dispositivo.

CONSTRUCCION DE TIMER PARA VUELO CIRCULAR CON MOTOR ELECTRICO

Programación de dispositivos Arduino Asignatura Sistemas Digitales!

RELÉS. En este instante (tal como está) Al pulsar el interruptor A. Al pulsar el interruptor A. Al pulsar el interruptor A

EducaBot. Motores y movilidad.

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO

PROYECTO DE ELECTRÓNICA

Entradas Analógicas.

Introducción. Que es Arduino? 1. Por qué Arduino? 2. Asequible

Control por Computador. Manual de arduino. Jorge Pomares Baeza. Grupo de Innovación Educativa en Automática 2009 GITE IEA

Práctica de manejo de motores CC con arduino. Antonio Martínez

Encender un LED utilizando un pulsador (Ref libro 1 pg 82 pero como y pg 132 como 1.2.3)

Arduino. OPEN HARDWARE - David Cuartielles, Máximo Banti.

Práctica 5 Diseño de circuitos con componentes básicos.

Curso de Automatización y Robótica Aplicada con Arduino

Este manual aborda todos los conceptos básicos de Arduino y es una excelente guía para todo aquel que quiera iniciarse en este apasionante mundo.

Módulo Radio frecuencia FSK y Arduino

Raspberry Pi Expansion Board v1.01 Datasheet. Electroensaimada

El Famoso CUBO LED. Nombre 1 Nombre 2

Práctica 4. Entradas/Salidas Analógicas con Arduino

5.- ENTRADAS/SALIDAS DIGITALES

Sesión 3 (Práctica) Sensores Actuadores

TARJETA HC-05 ARDUINO

Taller de electrónica para usos creativos. Practicando con Arduino

TuBot 2014 GUIA DE MONTAJE Y PROGRAMACIÓN MOTORES. Dpto. de Electrónica - Universidad de Alcalá TuBot

Tema: Introducción a la Plataforma Arduino

SIMULACIÓN CON PROTEUS

Electricidad Inducción electromagnética Inducción causada por un campo magnético variable

Sistemas Elec. Digitales. Instrumentación del laboratorio. Pag INSTRUMENTACIÓN DEL LABORATORIO.

Tutorial de motores paso a paso (PaP)

Empezando con Arduino. Controla tu entorno con un microcontrolador PIIISA

Taller de Interrupciones

I.E.S. " HERNÁN PÉREZ DEL PULGAR CIUDAD REAL MECANISMOS

Engranaje Conducido. Se logra hacer girar un engranaje conducido en el mismo sentido que el motor añadiendo otro, denominado loco, entre ellos.

3º ESO - Ejercicios de mecanismos HOJA 1

español modelos con calendario

Rastreador de Luz para Panel Solar y Sistema de Carga para Dispositivos USB

Boletín de problemas de BJT

1. Concepto de amplificación de señales en los circuitos de control Amplificadores estáticos Amplificadores magnéticos...

INTERFACES FÍSICOS. Prof. Moisés Mañas Carbonell Dpto. Escultura. UPV

Fernando castaño Portela Ingeniero de soporte y Asesor técnico La Red Electrónica s.a.

Ejercicios de ELECTRÓNICA ANALÓGICA

MANUAL DE USUARIO ARDUINO DMX MASTER SHIELD MCI-TDD REV. 1.0

Tema: Manejo de pantallas y teclados

Tutorial para principiantes: Cómo aprender a programar un Dreamster v1.0?

Tema 9 Periféricos de Entrada

PARALELO INFORMACIÓN GENERAL ENCODERS ABSOLUTOS PARALELOS Y PARALELOS PROGRAMABLES. Código BCD 2ª decada 1ª decada. Dec Código Binario Código Gray

Contenido Unidad de Robótica

Taller de Hardware Libre con Arduino

Tutorial sobre Motores Paso a Paso (Stepper motors)

Examen de TEORIA DE MAQUINAS Diciembre 99 Nombre...

Amplificador de sensor de fibra óptica Modelo FA1

Ajustable. Set de conexión para vacuostato

1.- INTRODUCCIÓN EL HARDWARE DE LA PLACA ARDUINO Alimentación Entradas y Salidas Comunicaciones...

Control de Motores Paso a Paso (Stepper motors)

Ardunio. Test Placa. LunikSoft. Fco. Javier Andrade.

CONTROL DE MOTORES PASO A PASO MEDIANTE MICROCONTROLADORES. (Stepper motor)

Page 1 of 12 SET AB09 Este set contiene:

SENSOR DE VISIÓN ZFX

GUIÓN DE PRÁCTICAS Arduino San Valero

Control por cable táctil KCT-02.1 SR KCT-02.1 SR

Instituto Tecnológico de Colima

IEC Estandarización de esquemas y normalización

Compact NSX Esquemas eléctricos

HP Power Distribution Unit with Power. Monitoring (Modelos S124 y S132) Instrucciones de instalación

TEMA 5: Motores de Corriente Continua.

Proyecto de Introducción a la Ingeniería. Domótica accesible. Prendido/apagado de un electrodoméstico a través de una página web.

UNIVERSIDAD DEL PAIS VASCO - EUSKAL HERRIKO UNIBERTSITATEA

3. SECCIÓN DE MOTORES A PASOS

Sensor de presencia PIR

Robótica en la Universidad

INTERRUPTOR CREPUSCULAR CON LDR Y ARDUINO OBJETIVOS MATERIAL NECESARIO

TECLADO TACTIL CAPACITIVO SIGMA ELECTRONICA

Universidad de Costa Rica

Guía rápida para gestionar el puerto paralelo del PC

Controlador John Deere AutoTrac - Raven PFP11783

Curso de introducción a la robótica. Juan Antonio Infantes Díaz Óscar Ramírez Jiménez

EJERCICIOS DE ARDUINO RESUELTOS

Proyecto : Control coche Arduino-Android

Uso de la plataforma hardware/software Arduino para aplicaciones didácticas en el ámbito de la energía y la eficiencia energética

V 1.0. Ing. Juan C. Guarnizo B.

Como utilizar un servo motor con Arduino.

Centinela. Monitorización sistemas TCP/IP con Arduino. Objeto del proyecto y descripción

V 1.0. Ing. Juan C. Guarnizo B.

AUTOMATIZACIÓN - CURSO: Práctica 3: Automatización de una Puerta de Garaje mediante Arduino

KITS PARA INICIAR EN LA ROBÓTICA Y PROGRAMACIÓN EN SECUNDARIA

Robot Hipopótamo. Estructura de enlaces. Control remoto. Sensor de Infrarrojos. Dirección. Botón de canal. Teclas de función. Visualizador canales

FUNDAMENTOS DE ELECTRÓNICA

M-Bus Master MultiPort 250D

PRÁCTICAS CON ARDUINO UNO

Motores de corriente continua (DC)

Control de Motores Paso a Paso (Stepper motors)

INFORMACION DE PRODUCTO. Sistema de Encendido Electrónico

Transcripción:

UNIVERSIDAD DE SALAMANCA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INDUSTRIAL Avda. Fernando Ballesteros,2 37700 BÉJAR Fax 923 40 81 27 Telf. 923 40 80 80 ÁREA DE INGENIERÍA ELÉCTRICA CONTROL DE MOTOR PASO A PASO PRÁCTICAS DE MÁQUINAS ELÉCTRICAS Norberto Redondo Melchor Profesor Asociado Ingeniero Industrial Doctor por la Universidad de Salamanca

Béjar (Salamanca - España) Copyright Norberto Redondo Melchor (NRM) 2016 Todos los derechos reservados Reproducción autorizada siempre que se haga de todo el documento íntegro y sin alterarlo lo más mínimo, incluyendo esta nota. 2 NRM 2016

UNIVERSIDAD DE SALAMANCA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INDUSTRIAL Avda. Fernando Ballesteros,2 37700 BÉJAR ÁREA DE INGENIERÍA ELÉCTRICA Esta práctica pretende mostrar una manera de controlar un motor paso a paso mediante un teclado de cuatro pulsadores. Material necesario: 1 Motor 28BJY-48 1 Controlador basado en el ULN2003A 1 Microcontrolador Arduino Uno o equivalente 1 Cable USB 1 Teclado de membrana Montaje El motor 28BJY-48 viene cableado como muestra la figura de la derecha. El movimiento se consigue excitando ordenadamente cada una de las 4 bobinas de sus devanados internos. El microcontrolador servirá para proporcionar los pulsos requeridos y de la duración necesaria (ms). Pero no puede entregar la potencia que precisan los devanados del motor, por lo que es necesario intercalar una serie de transistores que, excitados en su base por el micro, permitan pasar la intensidad necesaria sin daño para el Arduino. NRM 2016 3

El ULN2003A es una matriz de 7 transistores NPN de los que se usan 4. Al poner a +5V respecto de GND cualquiera de los pines IN1 a IN4 del circuito donde va instalada se habilita el paso de potencia hacia el motor por la salida correspondiente. Además el led asociado también se encenderá. Cualquiera de las dos secuencias de las tablas de la derecha moverán el motor en sentido horario, forzando ¼ de vuelta del motor (un 'paso') cada fila. Si se siguen las secuencias al revés el sentido de giro será el antihorario. El eje de 5 mm Ø de color latón no es el eje del motor eléctrico, sino el eje del último engranaje de una cascada de ellos, que proporcionan una desmultiplicación de 283712 / 4455 (64 : 1 aprox) Si ninguna de las bobinas está excitada el motor se parará, pero su eje no ejercerá mucha oposición a ser arrastrado por la carga. Si se mantienen activas las bobinas del último paso, en cambio, se podrá notar una mayor resistencia del motor que quedará suficientemente bloqueado. El programa de la página siguiente permite dar los pulsos correspondientes a las posiciones 1 a 4 de la tabla de arriba (Full Step Sequence): al soltar la tecla 1 se encenderán durante 200 ms las salidas IN1 & IN4 del controlador, excitando las bobinas 1a & 2b del motor respectivamente; con la tecla 2 se excitarán 200 ms la 1a & 1b; con la tecla 3 serán la 1b & 2a, y con la tecla 4 la 2a & 2b. El resultado habrán sido 4 pasos sucesivos del motor para mover el eje exterior en sentido antihorario. La secuencia de teclas 4-3-2-1 moverá el motor de manera que el eje exterior lo haga en el sentido de las agujas del reloj. El otro programa hace girar continuamente el motor primero en un sentido y luego en el otro. Nota: la holgura de la cascada de engranajes induce cierta 'pereza' hasta que se nota el movimiento del eje externo. Esto es más patente cuando se invierte la secuencia de teclas para girar en sentido contrario. El motor eléctrico da el paso requerido siempre, pero hasta que la holgura de los engranajes no se ha compensado ese movimiento no se nota. Agradecimientos: a Vaquero y a Fortu por el interés mostrado en este proyecto. 4 NRM 2016

UNIVERSIDAD DE SALAMANCA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INDUSTRIAL Avda. Fernando Ballesteros,2 37700 BÉJAR ÁREA DE INGENIERÍA ELÉCTRICA /* Programa demostración del funcionamiento del motor paso a paso 28BYJ-48, controlado mediante la pulsación ordenada de 4 teclas (P1,P2,P3,P4) en Full Step mode Para Arduino Uno, Arduino Nano, Arduino Mini, etc. By Norber 2016 Freely distributable if you cite the source */ #define IN1 9 // Pines de salidas al motor #define IN2 10 #define IN3 11 #define IN4 12 #define P1 2 // Pines de entradas de teclado #define P2 3 #define P3 4 #define P4 5 #define LED_ON digitalwrite(13, HIGH); #define LED_OFF digitalwrite(13, LOW); #define DUR_PULSO 200 // En ms #define NO_HAY_PULSACION 20 struct Botonera { // Definición del teclado byte numpuls; byte pinpuls; int rebotepuls; ; Botonera Pulsador[] = { // numpuls, pinpuls, rebotepuls) {0, P1, 0, {1, P2, 0, {2, P3, 0, {3, P4, 0 ; void setup() { // Configuración de entradas y salidas pinmode(in1, OUTPUT); pinmode(in2, OUTPUT); pinmode(in3, OUTPUT); pinmode(in4, OUTPUT); pinmode(p1, INPUT_PULLUP); pinmode(p2, INPUT_PULLUP); pinmode(p3, INPUT_PULLUP); pinmode(p4, INPUT_PULLUP); pinmode(13, OUTPUT); byte leerpulsadores() { // Devuelve el pin pulsado, con antirrebote for (int i = 0; i < 4; i++) { Pulsador[i].rebotePuls = (Pulsador[i].rebotePuls << 1)!digitalRead(Pulsador[i].pinPuls) 0xFE00; if (Pulsador[i].rebotePuls == 0xFF00) return Pulsador[i].pinPuls; return NO_HAY_PULSACION; void pulsoen(byte pin) { // Ejecuta los pulsos en 'pin' y en 'sigpin' long ahora = millis(); LED_ON; byte sigpin = (pin + 1); if (sigpin > IN4) sigpin = IN1; digitalwrite(pin, HIGH); digitalwrite(sigpin, HIGH); while ((millis()-ahora) < DUR_PULSO) { digitalwrite(pin, LOW); digitalwrite(sigpin, LOW); LED_OFF; void loop() { // Rutina principal que se ejecuta continuamente byte pulsado = leerpulsadores(); if (pulsado!= NO_HAY_PULSACION) { if (pulsado == P1) pulsoen(in1); if (pulsado == P2) pulsoen(in2); if (pulsado == P3) pulsoen(in3); if (pulsado == P4) pulsoen(in4); NRM 2016 5

/* Programa demostración del funcionamiento del motor paso a paso 28BYJ-48 que gira continuamente consumiendo 200 ma en Half Step mode */ Obtenido de http://elcajondeardu.blogspot.com.es //Declaración de las variables para los pines del motor int motorpin1 = 9; // Azul - 28BYJ48 pin 1 motor int motorpin2 = 10; // Rosa - 28BYJ48 pin 2 motor int motorpin3 = 11; int motorpin4 = 12; // Amarillo - 28BYJ48 pin 3 motor // Naranja - 28BYJ48 pin 4 motor // Rojo - 28BYJ48 pin 5 (VCC) motor int motorspeed = 1200; // Fija la velocidad del motor (el retraso entre cada secuencia) int count = 0; // Cuenta de los pasos dados int countsperrev = 512; // Número de pasos por vuelta completa int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001; void setup() { pinmode(motorpin1, OUTPUT); pinmode(motorpin2, OUTPUT); pinmode(motorpin3, OUTPUT); pinmode(motorpin4, OUTPUT); void loop(){ if(count < countsperrev) clockwise(); else if (count == countsperrev * 2) count = 0; else anticlockwise(); count++; //sentido agujas del reloj //sentido antihorario void anticlockwise() { for(int i = 0; i < 8; i++) { setoutput(i); delaymicroseconds(motorspeed); void clockwise() { for(int i = 7; i >= 0; i--) { setoutput(i); delaymicroseconds(motorspeed); void setoutput(int out) { //función secuencia giro digitalwrite(motorpin1, bitread(lookup[out], 0)); digitalwrite(motorpin2, bitread(lookup[out], 1)); digitalwrite(motorpin3, bitread(lookup[out], 2)); digitalwrite(motorpin4, bitread(lookup[out], 3)); 6 NRM 2016