Guía practica de Arduino
-
Upload
christian-andres-lara-arellano -
Category
Documents
-
view
44 -
download
0
Transcript of Guía practica de Arduino
1
Santiago Sur. Automatización y Control Industrial. Proyecto de Control.
Guía de Arduino. Nombre Alumno (s): Joshua González Almarza
Christian Lara Arellano
Nombre Profesor (s): Hernán Pimentel Torrejón
Joel Vega Caro
Fecha: 29 de Noviembre de 2013
2
CONTENIDO
1 Información General sobre Hardware Arduino……………..………………… 3
2. Especificaciones técnicas Arduino Mega 2650………………………………...4
2.1. Alimentación....................................................................................................4
2.2. Pines de alimentación...................................................................................... 5
2.3. Ancho de pulso (PWM)................................................................................... 5
2.4. Entradas analógicas..........................................................................................5
2.5. Software de Programación...............................................................................6
2.6. Características físicas compatibilidad del Shield…………………………….6
2.7. Instalación y conexión de placa Arduino.........................................................6
2.8. Comunicación serial Arduino Y Matlab (Simulink)…………………………10
2.9. Experiencias prácticas de Arduino..................................................................15
2.9.1. Encender y Apagar un LED..........................................................................15
2.9.2. Conectar una pantalla LCD 16x2 a la placa de desarrollo Arduino. .......... 16
2.9.3. Ultrasónico................................................................................................... 18
2.9.4. Control dual................................................................................................. 19
2.9.5. Control de un Servomotor………………………………………………....20
BIBLIOGRAFIA………………………………………………………….………22
3
1. Información General sobre Hardware Arduino
Arduino es una plataforma física computacional open-hardware basada en una sencilla placa con
entradas y salidas (E/S), analógicas y digitales, y en un entorno de desarrollo que implementa el
lenguaje Processing/Wiring. Arduino puede utilizarse en el desarrollo de objetos interactivos
autónomos o puede conectarse a un PC a través del puerto serie utilizando lenguajes como Flash,
Processing, MaxMSP, etc. Las posibilidades de realizar desarrollos basados en Arduino tienen
como límite la imaginación.
El Arduino Mega está basado en el microcontrolador ATMega2560. Tiene 54 pines de
entradas/salidas digitales (14 de las cuales pueden ser utilizadas como salidas PWM), 16 entradas
análogas, 4 UARTs (puertos serial por hardware), cristal oscilador de 16 MHz, conexión USB, jack
de alimentación, conector ICSP y botón de reset. Incorpora todo lo necesario para que el
microcontrolador trabaje; simplemente conéctalo a tu PC por medio de un cable USB o con una
fuente de alimentación externa.
4
2. Especificaciones técnicas Arduino Mega 2650
Microcontrolador Atmega2560
Voltaje de funcionamiento Interno 5V
Voltaje de Entrada
(recomendado)
7-12V
Voltaje de Entrada (Límites) 6-20V
Digital pines I / O 54 (de los cuales 14 proporcionan una
salida PWM)
Pines de entrada analógica 16
Corriente DC máxima por Pin en 5v 40 mA.
Corriente DC máxima por Pin en 3,3v 50 mA.
Memoria Flash 256 KB de los cuales 8 KB utilizadas por
gestor de arranque
SRAM 8 KB
EEPROM 4 KB
Velocidad 16 MHz
2.1. Alimentación.
Arduino mega puede ser alimentado mediante el puerto USB o con una fuente externa de
poder. La alimentación es seleccionada de manera automática. Cuando se trabaja con una
fuente externa de poder se debe utilizar un convertidor AC/DC y regular dicho voltaje en el
rango operático de la placa. De igual manera se puede alimentar el micro mediante el uso
de baterías. Preferiblemente el voltaje debe estar en el rango de los 7v hasta los 12v.
2.2. Pines de alimentación.
Arduino mega posee algunos pines para la alimentación del circuito aparta del adaptador
para la alimentación:
VIN: A través de este pin es posible proporcionar alimentación a la placa.
5V: Podemos obtener un voltaje de 5V y una corriente de 40mA desde este pin.
3.3V: Podemos obtener un voltaje de 3.3V y una corriente de 50mA desde este pin.
GND: El tierra (ground) de la placa (0V).
NOTA: Al alimentar la placa Arduino corrobore que el voltaje de entrada esté dentro del
rango recomendado entre 7 y 12 voltios. Si utiliza más de 12V, el regulador de voltaje se
puede sobrecalentar y dañar la placa.
5
Memoria: El Atmega2560 tiene 256 KB de memoria flash para almacenar código (de los
cuales 8 KB se utiliza para el gestor de arranque), 8 KB de SRAM y 4 KB de EEPROM
(que puede ser leído y escrito con la librería EEPROM).
Cada uno de los 54 pines digitales de la placa Arduino Mega se puede utilizar como entrada
o de salida, mediante las funciones pinMode (), digitalWrite (), y digitalRead (). Ellos
operan a 5 voltios. Cada pin puede proporcionar o recibir un máximo de 40 mA. Y tiene
una resistencia interna de pull-up (desconectado por defecto) de 20 a 50 kΩ.
2.3. Ancho de pulso (PWM).
A través del software de programación, cualquier pin digital puede ser utilizado como
PWM, pero por defecto la placa Arduino viene pre-programada para trabajar con este
sistema en los pines 2 al 13 y 44 al 46, con una frecuencia de trabajo de 498 Hz,
aproximadamente 0,5KHz.
Figura 2.3.1.
Como se sabe, en ocasiones el trabajo de motores de corriente continua modulados a través
de ancho de pulso a bajas frecuencia, puede provocar sonidos audibles o perceptibles al
oído humano. Dado esto, la placa Arduino viene equipada con una función que permite
modificar la frecuencia de trabajo de algunos pines PWM; mediante 3 Timers incluidos en
la placa.
2.4. Entradas analógicas.
La placa Arduino Mega2560 tiene 16 entradas analógicas, cada una proporciona 10 bits de
resolución (es decir 1024 valores diferentes). Por defecto miden desde Gnd a 5 voltios,
aunque es posible cambiar el extremo superior de su rango, mediante los pines AREF y
analogReference () función.
6
2.5. Software de Programación.
El Arduino Mega se puede programar con el software de Arduino el cual se puede
descargar desde la página http://arduino.cc/en/Main/Software.
El Atmega2560 en el Arduino Mega viene pre-quemado con un gestor de arranque que le
permite cargar nuevo código a la misma, sin el uso de un programador de hardware
externo. Se comunica con el protocolo original STK500 También puede pasar por alto el
gestor de arranque y el programa del microcontrolador a través de la ICSP (programación
In-Circuit Serial).
2.6. Características físicas compatibilidad del Shield.
El largo y ancho de la placa Arduino Mega2560 es de 4 y 2,1 pulgadas respectivamente,
con el conector USB y conector de alimentación se extiende más allá de la dimensión
anterior. Tres orificios de los tornillos permiten que la tarjeta sea sujeta a una superficie o
caja. Obsérvese que la distancia entre los pines digitales 7 y 8 es de 160 milésimas de
pulgada (0,16 "), diferente al resto de los pines, para dar a conocer al usuario, el cambio de
“timer” que utiliza el puerto de salida.
2.7. Instalación y conexión de placa Arduino.
Para instalar el driver de Arduino y realizar su conexión con el computador es necesario lo
siguiente:
1. Es necesario de nuestra placa Arduino en este caso usaremos el modelo Mega 1280
y un cable USB tipo B.
Cable USB tipo B (impresoras) Placa Arduino Mega 1280
7
2. Es necesario también tener el Software de Arduino, se recomienda utilizar las
últimas versiones disponibles en la página oficial del Hardware. Cuando finalice la
descarga, descomprimir el archivo descargado. Haga doble clic en la carpeta para
abrirla. En el interior están los archivos de funcionamiento doble click en el
ejecutable y seguimos las recomendaciones del programa.
3. Conecte la placa Arduino al computador mediante el cable USB. El LED de
encendido verde (con la etiqueta PWR) debe encender y parpadear.
4. Respecto a la instalación de los controladores cuando conectas la placa, Windows
debería inicializar la instalación de los drivers (siempre y cuando no hayas utilizado
ese ordenador con una placa Arduino anteriormente).
En Windows Vista y Windows 7, los drivers deberían descargarse e instalarse
automáticamente.
En Windows XP, se abrirá el diálogo de instalación de Nuevo Hardware:
Cuando aparezca en la pantalla la siguiente pregunte: ¿Puede Windows
conectarse a Windows Update para buscar el software? Selecciona
“No”, no esta vez. Haz click en Siguiente.
Selecciona Instalar desde una lista o localización específica
(Avanzado) haz click en Siguiente.
Asegúrate que Buscar los mejores drivers en estas localizaciones esté
seleccionado; deselecciona Buscar en medios removibles;
selecciona Incluye esta localización en la búsqueda y navega al
directorio drivers/FTDI USB Drivers dentro de la carpeta de Arduino que
has descomprimido previamente.
El asistente de instalación buscará los drivers y te anunciará que encontró un
"USB Serial Converter" (se traduce por Conversor USB-Serie). Haz click
en Finalizar.
El asistente de instalación de hardware volverá a iniciarse. Repite los
mismos pasos que antes y selecciona la misma carpeta de instalación de
los drivers. Esta vez el sistema encontrará un "USB Serial Port" (o Puerto
USB-Serie).
8
Puedes comprobar que los drivers se han instalado correctamente abriendo la
carpeta del Administrador del Dispositivos, en el grupo Dispositivos del
panel de control del sistema. Busca "USB Serial Port" (o Puerto USB-Serie)
en la sección de puertos; esa es tu placa Arduino.
5. Ejecuta la Aplicación Arduino haciendo doble click en la aplicación Arduino.
6. Seleccione el programa de ejemplo para hacer parpadear un LED ("LED blink"):
Archivo > Ejemplos > Basics > Blink.
9
7. Para seleccionar el tipo de placa a utilizar nos posicionamos en el menú de
herramientas > Tarjeta > Arduino Mega (ATmega 1280).
8. Para seleccionar el puerto serie posicionamos el cursor en Herramientas > Puerto
Serial > ComX, (ComX, se dejara expresado de esta forma para cualquier número
que acompañe a “Com”). Lo más probable es que venga predeterminado con el
puerto COM3 o mayor (COM1 y COM2 se reservan, por regla general para
puertos serie de hardware). Para asegurarte de cuál es, puedes desconectar la placa y
volver a mirar el menú; el puerto de la placa habrá desaparecido de la lista.
Reconecta la placa y selecciona el puerto apropiado.
10
Después de los pasos anteriores cargamos el ejemplo en nuestra placa Arduino, unos
pocos segundos después de finalizar el proceso de envió del programa deberías ver
cómo el led de la placa comienza a parpadear (con un color naranja).
Nota: Si se instala el software de Arduino en un idioma incorrecto, puede cambiarlo
en el diálogo de preferencias.
2.8. Comunicación serial Arduino Y Matlab (Simulink)
1) Para empezar es necesario entrar en Matlab e iniciar Simulink como se muestra en
la imagen
2) Una vez que adentro de Simulink seleccionamos la librería llamada “Instrument
Control Toolbox” agregamos los bloques para la comunicación de la placa con el
software de Arduino y Matlab, cuales son:
11
Elementos de Comunicación Serial:
Serial Send.
Serial Receive.
Serial Configuration.
8.1) una vez seleccionados los elementos se comunicación serial es necesario
Configurarlos, damos doble click en el bloque “Serial Receive” apareciendo un
nuevo bloque llamado “Source Block: Serial Receive” donde debemos seleccionar
la opción “Communication Port”, esta opción nos permite seleccionar el puerto de
comunicación para él envió o recepción de datos.
Se debe seleccionar el mismo puerto de comunicación que se utiliza en la placa
Arduino, caso contrario no se producirá la comunicación entre el software y el
hardware.
12
8.2) De igual forma se debe configurar el bloque “Serial Send” dando doble click
en él, apareciendo un cuadro llamado “Sink Block Parameters: Serial Send”, acá
debemos cambiar al parámetro de comunicación llamado “Communication port” en el
seleccionamos el puerto de comunicación designado en los demás bloques de
comunicación y en la placa Arduino.
8.3) respecto al bloque “Serial Configuration” lo configuramos de igual forma
que los demás bloques haciendo doble click en él, acá es necesario seleccionar el
puerto de comunicación y además es necesario modificar el parámetro “Baud
Rate”, lo que configura esta opción es el número de unidades de señal por segundo
y el valor a ingresar es “115200”.
13
Este bloque se puede agregar de 2 formas, una es agregándolo directamente de la
librería de Simulink y la segunda forma agregar solo los 2 bloques restantes y al ser
configurado y apretando “Apply” aparecerá el siguiente cuadro:
Este bloque nos indica que para la configuración de comunicación es necesario
este bloque ya que en él se configuran variables importantes como lo es la
velocidad de comunicación.
14
Cuando aparece el cuadro solo ponemos “Yes” y aparecerá configurado con el
puerto ya seleccionado en el bloque de envió o de recepción según cual fue
configurado.
15
2.9. Experiencias prácticas de Arduino.
2.9.1. Encender y Apagar un LED
Al implementar el conexionado de la imagen; se deberá cargar el siguiente código, el cual
permitirá encender y apagar un LED.
Abra el software de programación Arduino y pegue el siguiente código, luego cárguelo al
Arduino con el botón de carga.
/* Inicia una sección de comentarios
-----------------------------------
Encender y apagar un LED
-----------------------------------
El LED enciende y apaga de manera infinita mientras el Arduino se encuentre con
suministro eléctrico.
*/ Cierra la sección de comentarios
int led = 2; //se declara el pin 2 como LED,
void setup () {
pinMode (led, OUTPUT); }// Se configura el pin 2, como salida
void loop () {
digitalWrite (led, HIGH); // Activa el pin 2, se envía la señal HIGH, y entrega 5v.
// Se enciende el LED
delay (1000); // Se debe esperar 1000ms o 1 segundo
digitalWrite (led, LOW); // Desactiva el pin 2, envía la señal LOW//
// Entrega 0v y posterior a esto se apaga el LED
delay (1000); // Se esperan 1000ms o 1 segundo// El ciclo se reiniciara
}
16
2.9.2. Conectar una pantalla LCD 16x2 a la placa de desarrollo Arduino.
Las pantallas de cristal líquido LCD o Display LCD para mensajes (Liquid Cristal
Display) tienen la capacidad de mostrar cualquier carácter alfanumérico, permitiendo
representar la información que genera cualquier equipo electrónico de una forma simple y
económica.
Para estos casos, Arduino dispone de una librería LiquidCrystal.h que permite utilizar y
manipular de forma sencilla pantallas LCD de diferentes tamaños y formatos.
Análogamente se podrá comparar una pantalla LCD con una matriz de la siguiente forma:
1 Potenciómetro de 4,7 K.
1 Display LCD 16x2 (16 columnas y 2 filas)
Dependiendo del fabricante, en ocasiones la disposición de los pines de salida de la pantalla
LCD puede variar, remplace el conexionado de los pines según la disposición de estos,
refiriéndose al datasheet del LCD adquirido y la siguiente referencia:
LCD RS pin al pin digital número 52 de la placa Arduino
LCD Enable pin al pin digital número 50 de la placa Arduino
LCD R/W pin al pin Gnd Arduino
LCD DB4 pin al pin digital número 48 de la placa Arduino
LCD DB5 pin al pin digital número 46 de la placa Arduino
LCD DB6 pin al pin digital número 44 de la placa Arduino
LCD DB7 pin al pin digital número 42 de la placa Arduino
LCD Vcc pin a alimentación 5v.
LCD GND pin al Gnd del Arduino
Adicionalmente se deberá conectar un potenciómetro en cuyos extremos deberá conectar
+Vcc a 5v y Gnd correspondientemente. La pata interior del potenciómetro se deberá
conectar el pin V0 del LCD. El potenciómetro permitirá modificar el contraste de la
pantalla LCD Por último se procederá a conectar la conexión USB de la placa de desarrollo,
el usuario abrirá el software de desarrollo de Arduino y se procederá a carga el siguiente
código.
17
// Incluir la siguiente librería para controlar LCD
#Include <LiquidCrystal.h>
// Inicializar la librería según los pines de conexión en la //placa de desarrollo
LiquidCrystal lcd (52, 50, 48, 46, 44, 42);
void setup () {
// Se configura el LCD para utilizar 16 columnas y 2 filas
lcd.begin (16, 2);
// Posicionar el cursor en la posición 0,0, eso es extremo superior izquierdo
lcd.setCursor (0, 1);
// Se imprime por la pantalla LCD, el mensaje
lcd.print ("Guía Inacap!");
}
void loop () {
// posicionar el cursor en la posición 0,1, eso es extremo inferior izquierdo
lcd.setCursor (0, 1);
// Se imprime el número de segundo desde el ultimo reinicio del Arduino
lcd.print (millis ()/1000);
}
18
2.9.3. Ultrasónico.
Módulo de alcance ultrasónico HC - SR04 ofrece 2 cm - 400 cm sin contacto función de
medición, la precisión que van puede llegar a 3 mm. Los módulos incluye transmisores
ultrasónicos, el receptor y el circuito de control.
5 Voltios (VCC), Tigger Entrada de pulsos (Trigonometría), Echo de salida de pulsos
(Echo), 0 Voltios (GND)
#include <Ultrasonic.h>
Ultrasonic ultrasonic(12,11); // (Trig PIN,Echo PIN)
void setup() {
Serial.begin(9600);
}
void loop()
{
Serial.print(ultrasonic.Ranging(CM)); // CM or INC
Serial.println(" cm" );
delay(100);
}
19
2.9.4. Control Dual.
Controlador de motor dual de 4.8V- 46V y 2A, que es la versión revisada del DF-MDV1.0.
Su rendimiento ha sido altamente mejorado. Puede soportar una mayor corriente debido a
que cuenta con una mayor disipación de calor. Es fácil de controlar, ya que usa el chip de
control de motor L298N de LGS de alta potencia. Este chip permite el control directo de 2
motores DC bidireccionales, e incorpora diodos cortos de alta velocidad para su protección.
Salida de corriente de hasta 2A. El controlador usa un diseño broad-brush que reduce la
resistencia que producen los cables.
int ENA = 5 ; / / conectarse al puerto de Arduino 5 (salida PWM)
int IN1 = 2 ; / / conectarse a la Arduino puerto 2
int IN2 = 3 ; / / conectarse al puerto de Arduino 3
int ENB = 6 ; / / conectarse a Arduino de puerto 6 (salida PWM)
int IN3 = 4 ; / / conectarse al puerto de Arduino 4
int IN4 = 7 ; / / conectarse al puerto de Arduino 7
digitalWrite ( IN1 , BAJA ) ;
digitalWrite ( IN2 , HIGH ) ; / / establecer directon de Motora
digitalWrite ( IN3 , HIGH ) ;
digitalWrite ( IN4 , BAJA ) ; / / establecer directon de motorB } void loop ( ) {
analogWrite ( ENA , 255 ) ; / / iniciar la conducción motora
analogWrite ( ENB , 255 ) ; / / empezar a conducir motorB
20
2.9.5. Control de un Servomotor.
En el siguiente ejemplo se procederá a manipular la posición de un servomotor, a través de
un potenciómetro.
Los servomotores tienen tres cables: alimentación, tierra, y de la señal. El cable de
alimentación es típicamente rojo, y debe ser conectado al pin de 5V en la placa Arduino. El
cable a tierra es típicamente negro o marrón y debe ser conectado a un pin Gnd o tierra de
la placa Arduino. El pin de la señal es generalmente de color amarillo o naranja y debe ser
conectado al pin 9 en la placa Arduino.
El potenciómetro debe ser conectado de modo que las dos conexiones exteriores están
conectadas a la alimentación (+5 V) y tierra, y la conexión del medio estará conectada a la
entrada analógica 2 en el Arduino.
Código Arduino control de un servo motor
#include <Servo.h>
//Se debe incluir la librería Servo.h para la manipulación de los
//servos.
Servo myservo;
// Creamos un objeto llamado servo, para poder manipularlo más fácilmente//
int potepin = 2;
// la variable potepin almacenara el pin en que está conectado el potenciómetro//
int val=0;
//variable que almacenara el valor leído desde el potenciómetro
21
void setup()
{
myservo.attach(9);
//Configuraremos que el objeto “myservo” tendrá el pin 9 para comunicarse//
}
void loop()
{
val = analogRead(potepin);
//lee el valor desde el potenciómetro (este valor estará comprendido entre (0 y 1023)//
val = map(val, 0, 1023, 0, 179);
// En la variable val almacenara un escalamiento entre los 1023
//posibles datos transmitidos desde el potenciómetro y los 180
//posibles datos que pueden ser recibidos por el servomotor.
myservo.write(val);
Escribe el valor del variable val en el pin del servo, para poder manipular la posición del
servo.
delay(15);
// Espera 15 milisegundos para que el servo alcance la posición indicada
}
Con este programa a través de la manipulación del potenciómetro, manipularemos la
posición del servomotor.
22
BIBLIOGRAFIA.
La información se obtuvo de las siguientes páginas:
http://arduino.cc/en/Main/ArduinoBoardMega2560
http://arduino.cc/en/Tutorial/Blink?from=Tutorial.BlinkingLED
http://juancolombo.com.ar/index.php/trabajos/conocimiento/26-arduino1