Documente Academic
Documente Profesional
Documente Cultură
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
Página 1
1.- Introducción
Página 2
2.- Objetivo
Página 3
3.-Marco teórico
3.1.-Arduino
Página 4
3.2.- Arduino Leonardo
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.
Página 5
3.5.- Control de motores paso a paso.
La resolución del motor (Paso por revolución) = 360 / paso de ángulo o 360 /
0.0879 = 4096 pasos / revolución.
Página 6
4.- Desarrollo
4.1.- Material y equipo utilizado:
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");
}
//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.
Página
11
5.- Conclusiones y observaciones
Página
12
6.- Fuente de información.
• https://blog.mazitekgh.com/2017/10/controlling-stepper-motor-using-
arduino.html
Página
13