Lab13 Arduino - Control Motores v3
Lab13 Arduino - Control Motores v3
CÓDIGO C33529
LABORATORIO N° 13
FECHA
TAREA: Lab12 - Arduino - Control de motores DIA MES AÑO
FIRMA
DOCENTE: TRABAJO
TALLER SESION Nº
OTROS
PASOS DE LA TAREA RIESGOS MEDIDAS DE CONTROL
(ESPECIFICAR PARA CADA
CASO)
1
2
3
4
5
6
7
8
9
10
11
12
Nro. DD-107
Arduino - Control de motores Página 4
1. OBJETIVOS
Implementar aplicaciones de circuitos electrónicos con Arduino.
Realizar aplicaciones básicas con los componentes y materiales de software y de hardware en Arduino.
Implementar un circuito de control básico de un servomotor con Arduino.
Simular un circuito de control básico de un motor DC con Arduino.
Describir e interpretar los códigos y comandos del lenguaje de programación utilizados en la interface
Arduino para control con de motores DC y servomotor.
2. MATERIAL A EMPLEAR
Computadora con software Arduino IDE.
Tarjeta SparkFun RedBoard (tarjeta Arduino).
Servomotores, cables de conexión.
Protoboard o módulo de conexiones.
Multímetro digital.
Programa de simulación online Tinkercad.
3. PROCEDIMIENTO
NOTAS DE CÓDIGO
A continuación se muestran algunos comandos que aparecerán en el programa para el circuito con el
potenciómetro:
#include <Servo.h> : Librería que permite utilizar de manera más facil y transparente los servomotores.
Nro. DD-107
Arduino - Control de motores Página 6
Después de verificar que no hay errores en el código del programa, conectar el módulo Arduino con la
computadora. Para ello, utilice el conector USB que viene con el módulo para conectar la tarjeta Arduino
(tarjeta RedBoard) a una de las entradas USB de la computadora.
Si la conexión de hardware y software entre la computadora y la tarjeta Arduino fue exitosa, no debería salir
ningún mensaje de error.
Para dar inicio al programa debemos hacer uso de la librería Servo h para poder controlar el servomotor desde
el Arduino. De la librería Servo h declaramos tres variables, servo 1, servo 2, servo 3 y también declaramos una
variable tipo entero o int que valdrá 0, luego de esto hacemos uso de dos métodos. Por un lado, se usará
attach, que nos permite indicar en que pin tenemos conectado el servomotor, y por otro lado Serial.begin
(9600) que le indicará al Arduino que inicie comunicación con la computadora. Luego de esto crearemos una
variable tipo char y switch, la condición switch nos va a permitir definir múltiples casos que puede llegar a
cumplir la variable char, y que acción pueda tomar en cualquiera de las situaciones que se le derive. Por un
lado, la variable tipo char se llamará comando y se encargara de leer todo lo escrito en el monitor serie para
cumplir con todas las acciones que se declaró en switch
Nro. DD-107
Arduino - Control de motores Página 7
Colocar el guion o código del programa elaborado en Arduino, agregando comentarios en castellano:
Guion
#include <Servo.h> //llamamos a la libreria servo.h
char comando=Serial.read(); //creamos una variable de tipo character que se llamara comando
break;
break;
break;
Programación
Nro. DD-107
Arduino - Control de motores Página 9
DESAFIO: Con un solo servomotor reducir la velocidad de este sin movimientos brusco (utilizar salidas PWM)
NO SE HACE
Nro. DD-107
Arduino - Control de motores Página 10
Circuito
Guion
#include <Servo.h> //llamamos a la ibreria del servo
Servo servo1, servo2, servo3; //declaramos 3 variables de tipo Servo
int serPos1 = 0; //declaramos una variable de tipo entero llamada "serPos1"
int serPos2 = 0; //declaramos una variable de tipo entero llamada "serPos2"
int serPos3 = 0; //declaramos una variable de tipo entero llamada "serPos3"
Programación
Nro. DD-107
Arduino - Control de motores Página 13
Colocar el guion o código del programa elaborado en Arduino, agregando comentarios en castellano:
Guion
const short in1 = 10, in2 = 11; //declaramos 2 variables de tipo corta
void setup() {
void loop() {
char comando=Serial.read(); //creamos una variable de tipo character que se llamara comando
break;
break;
break;
break;
Programa
El circuito integrado L293D es un puente H de tipo cuádruple de alta corriente el cual está diseñado para hacer
girar dos motores de corriente directa en ambos sentidos o de forma bidireccional, es decir: en modo avance y
retroceso.
Nro. DD-107
Arduino - Control de motores Página 17
Circuito
Guion
const short in1 = 10, in2 = 11, in3 = 9, in4 = 8; //declaramos 4 variables de tipo corta
void setup() {
pinMode(in1, OUTPUT); //pin 10 (in1) sera salida
pinMode(in2, OUTPUT); //pin 11 (in2) sera salida
pinMode(in3, OUTPUT); //pin 9 (in3) sera salida
pinMode(in4, OUTPUT); //pin 8 (in4) sera salida
Serial.begin(9600); //iniciamos la transmision de datos seriales con el arduino
}
void loop() {
char comando=Serial.read(); //creamos una variable de tipo character que se llamara comando
switch(comando) //dentro del switch pondremos la variable "comando"
{
//ordenes para el motor 1
Programación
Nro. DD-107
Arduino - Control de motores Página 20
OBSERVACIONES
El control de un servo se reduce a indicar su posición mediante una señal de voltaje. El Angulo de
ubicación del motor dependerá del nivel alto de señal y cada servomotor dependiendo de donde se lo
compre tendrá distintas operaciones. Bueno todo esto no será necesario ya que los trabajos realizados
se hicieron en simulaciones, pero es importante tomar en cuenta lo antes dicho
Tinkercad es una herramienta muy útil para hacer simulaciones de circuitos, pero necesita algunas
mejores como incluir una pausa cada que se inicie una simulación
CONCLUSIONES
Dado que se utiliza la biblioteca Servo.h, controlar el servo desde Arduino es una tarea muy sencilla y
practica llevar a cabo grandes proyectos con servomotores
El uso de un l293D es de gran valor cuando necesitamos controlar motores de corriente continua o
incluso universales en DC, también es capaz de utilizarse en otras aplicaciones o controlar otros
componentes que requieran de una alta tensión
TEMA DE INVESTIGACIÓN
El módulo Ethernet Arduino Shield permite que la placa Arduino se conecte a Internet. Se basa en el chip
Ethernet Wiznet W5100 (hoja de datos W5100_Datasheet). El chip Wiznet W5100 proporciona una red (IP)
capaz de utilizar TCP y UDP. Admite hasta cuatro conexiones de socket simultáneas