Está en la página 1de 30

TRABAJO PRÁCTICO Versión: Final

Página: 1 de 30

Trabajo Práctico: Micro Controladores

ASIGNATURA: Arquitectura de los Computadores


PLAN DE ESTUDIOS: 2011
AÑO ACADEMICO: 2013
CARRERA: Ingeniería Informática
PROFESORES: José Duran
CUATRIMESTRE: 2º

Fecha requerida: 13/11/2013 Fecha entregada: 13/11/2013

Grupo:

APELLIDO, Nombres
Castelvero, Maximiliano (10515)
Pereda Mariano (10411)
Gustavo Rodriguez (10226)

Comentario adicional de los estudiantes:

Comentario adicional del Profesor:


TRABAJO PRÁCTICO Versión: Final
Página: 2 de 30

Índice

Antecedentes históricos del modelo de procesador…………………..3


Dispositivos asociados……………………………………………………...5
Ejemplos de programación y aplicaciones………………………………6
LENGUAJE ENSAMBLADOR……………………………………...…8
EDITOR DE SIETE SEGMENTOS…………………….………………9
LCD CUSTOM CHARACTER (CARACTERES LCD DEFINIDOS
POR EL USUARIO)……………………………………………………………12
Otro ejemplo…………………………………………………………….13
Código para programar el microcontrolador ……………………..14
Aplicaciones de micro controladores……………………………………..15
ATMEL…………………………………………………………………………..18
Bibliotecas en Arduino………………………………………………..21
Visión de conjunto……………………………………………………..22
Diagrama de bloques…………………………………………………………24
Especificaciones………………………………………………………………25
Potencia……………………………..…………………………………..25
Memoria………………………………………………………………….26
Entrada y salida………………………………………………………..26
Comunicación………………………………………………………….26
Programación……………………..………………………………………….27
Bibliografía……………….…………………….……………………………..29
TRABAJO PRÁCTICO Versión: Final
Página: 3 de 30

Antecedentes históricos del modelo de procesador.


El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro,
aunque generalmente se utiliza como Peripheral Interface Controller (controlador de
interfaz periférico).
El PIC original se diseñó para ser usado con la nueva CPU de 16 bits CP16000. Siendo
en general una buena CPU, ésta tenía malas prestaciones de E/S, y el PIC de 8 bits se
desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso de E/S a la
CPU. El PIC utilizaba micro código simple almacenado en ROMpara realizar estas
tareas; y aunque el término no se usaba por aquel entonces, se trata de un
diseño RISC que ejecuta una instrucción cada 4 ciclos deloscilador.
En 1985 la división de microelectrónica de General Instrumento se separa como
compañía independiente que es incorporada como filial (el 14 de
diciembre de1987 cambia el nombre a Microchip Tecnología y en 1989 es adquirida por
un grupo de inversores) y el nuevo propietario canceló casi todos los desarrollos, que
para esas fechas la mayoría estaban obsoletos. El PIC, sin embargo, se mejoró
con EPROM para conseguir un controlador de canal programable. Hoy en día multitud
de PICs vienen con varios periféricos incluidos (módulos de comunicación
serie, UARTs, núcleos de control de motores, etc.) y con memoria de programa desde
512 a 32.000 palabras (una palabra corresponde a una instrucción en lenguaje
ensamblador, y puede ser 12, 14 o 16 bits, dependiendo de la familia específica de
PICmicro).
Inicialmente cuando no existían los microprocesadores las personas se ingeniaban en
diseñar sus circuitos electrónicos y los resultados estaban expresados en diseños que
implicaban muchos componentes electrónicos y cálculos matemáticos. Un circuito
lógico básico requería de muchos elementos electrónicos basados en transistores,
resistencias, etc., lo cual desembocaba en circuitos con muchos ajustes y fallos; pero
en el año 1971 apareció el primer microprocesador el cual originó un cambio decisivo
en las técnicas de diseño de la mayoría de los equipos. Al principio se creía que el
manejo de un microprocesador era para aquellas personas con un coeficiente
intelectual muy alto; por lo contrario con la aparición de este circuito integrado todo
sería mucho más fácil de entender y los diseños electrónicos serían mucho más
pequeños y simplificados. Entre los microprocesadores más conocidos tenemos el
popular Z-80 y el 8085. Los diseñadores de equipos electrónicos ahora tenían equipos
que podían realizar mayor cantidad de tareas en menos tiempo y su tamaño se redujo
considerablemente; sin embargo, después de cierto tiempo aparece una nueva
tecnología llamada micro controlador que simplifica aún más el diseño electrónico.
El micro controlador es uno de los logros más sobresalientes del siglo XX. Hoy existen
casi 15,000 millones de microchips de alguna clase en uso. Para la mitad del siglo
próximo, es posible que el micro controlador típico tenga mayor poder de cómputo que
las supercomputadoras más veloces de hoy.
Nuestros antepasados no podían ni imaginarse el cambio que se iba a producir en sus
vidas este pequeño chip de silicio.
Actualmente los podemos encontrar en cualquier sitio: microondas, frigoríficos, coches,
aviones, mandos a distancia, radios, televisores.......
TRABAJO PRÁCTICO Versión: Final
Página: 4 de 30

Hoy se puede comprar tarjetas de felicitación que contienen procesadores con mayor
poder de cómputo que las computadoras más grandes del mundo en 1971. Los micro
controladores son tan ubicuos y económicos que ahora los ponemos bajo la piel de
nuestras mascotas, los cosemos a prendas de vestir y los agregamos a bombillas
eléctricas, tenis para correr, ataduras de esquíes y joyería.
Muchos futuristas predicen que en siete generaciones contadas a partir de ahora, estos
chips incorporarán reconocimiento del habla a procesadores de textos y sistemas de
entrada de pedidos. Producirán gráficos en 3D del tamaño de muros para televisión,
teleconferencias e incluso películas personalizadas. Dirigirán nuestros vehículos para
optimizar la seguridad y crearán mundos virtuales por los que nos desplazaremos.
Darán instrucción a nuestros hijos, supervisarán nuestra salud, reemplazarán partes
perdidas del cuerpo y, a través de una retícula de miles de millones de sensores, nos
conectarán con el mundo en formas que sólo podemos imaginar vagamente.
En definitiva, el micro controlador puede ser considerado como uno de los inventos
más importantes de este siglo, y quien sabe si también del próximo.
El campo de los micros controladores tiene sus principios de desarrollo en la tecnología
de los circuitos integrados, en la cual es posible almacenar miles de transistores dentro
de un solo chip. Esto fue un prerrequisito para la producción de los microprocesadores.
Las primeras computadoras fueron construidas agregando componentes externos
como lo son: memorias, puertos de salida y entrada, contadores de tiempo, entre otros.
Con el crecimiento en el desarrollo del circuitos integrados fue posible hacer más
grandes los encapsulados, logrando integrar en un solo encapsulado los procesadores
y periféricos.  
TRABAJO PRÁCTICO Versión: Final
Página: 5 de 30

Dispositivos asociados

Cada vez existen más productos que incorporan un micro controlador con el fin de
aumentar sustancialmente sus prestaciones, reducir su tamaño y coste, mejorar su
fiabilidad y disminuir el consumo.
Algunos fabricantes de micro controladores superan el millón de unidades de un
modelo determinado producidas en una semana. Este dato puede dar una idea de la
masiva utilización de estos componentes.
Los micro controladores están siendo empleados en multitud de sistemas presentes en
nuestra vida diaria, como pueden ser juguetes, horno microondas, frigoríficos,
televisores, computadoras, impresoras, módems, el sistema de arranque de nuestro
coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan
familiarizados como instrumentación electrónica, control de sistemas en una nave
espacial, etc. Una aplicación típica podría emplear varios micro controladores para
controlar pequeñas partes del sistema. Estos pequeños controladores podrían
comunicarse entre ellos y con un procesador central, probablemente más potente, para
compartir la información y coordinar sus acciones, como, de hecho, ocurre ya
habitualmente en cualquier PC.

Diagrama en bloque de sus partes y las funciones que cumplen

Los PIC son integrados capaces de ser programados desde un computador y seguir
una secuencia. Conviene recordar que un PIC16F628A es uno de los más conocidos,
razón por la cual su estructura brinda un esquema universal. El siguiente es su
diagrama circuital por bloques, que se debe entender desde la electrónica, que es la
base del trabajo de programación de los PIC:
TRABAJO PRÁCTICO Versión: Final
Página: 6 de 30

La distribución de pines es la siguiente, así es como se ve por fuera y cada pin tiene
una o más funciones asignadas, cada vez que se utiliza una función hay que tener en
cuenta que no se deben usar las otras asignadas en el mismo pin, es decir, un terminal
solo puede realizar una función al tiempo, así en la etapa de planeación del proyecto se
debe definir que función utilizar para cada pin, de las que este está en habilidad de
desempeñar.
TRABAJO PRÁCTICO Versión: Final
Página: 7 de 30

 Tiene 13 entradas salidas programables, que permiten llevar a cabo una gran
cantidad de proyectos. Las salidas se corresponden con pines.
 Tiene 64 bytes de EEProm, para guardar información. Esta memoria es
electrónicamente grabable y borrable. Últimamente se ha introducido la memoria
Flash que puede ampliar su capacidad.
 Tiene 1 Mb de memoria con código lo suficientemente comprimido como para
aprovechar al máximo la memoria.
 Tiene un oscilador a cristal o a RC de velocidad media: 4 Mhz o 20 Mhz en los
Hs.
 Cuatro fuentes de interrupción diferentes para llamar la atención en cualquier
momento.
La ficha técnica de este PIC es la siguiente:

 Memoria de programa: 1Kx14, EEPROM (PIC16C84) y Flash (PIC16F84)


 Memoria de datos RAM: 36 bytes (PIC16C84) y 68 bytes (PIC16F84)
 Memoria de datos EEPROM: 64 bytes para todos lo modelos
TRABAJO PRÁCTICO Versión: Final
Página: 8 de 30

 Pila (stack): De 8 Niveles


 Interrupciones: 4 tipos diferentes
 Encapsulado: Plástico DIP de 18 patitas
 Frecuencia de trabajo: 10MHz máxima
 Temporizadores: Sólo uno, el TMR0. También tienen “Perro guardián (WDT)”
 Líneas de E/S Digitales: 13 (5 Puerta A y 8 Puesta B)
 Corriente máxima absorbida: 80mA Puerta A y 150mA Puerta B
 Corriente máxima suministrada: 50mA Puerta A y 100mA Puerta B
 Corriente máxima absorbida por línea: 25mA
 Corriente máxima suministrada por línea: 20mA
 Voltaje de alimentación (VDD): De 2 a 6 V DC
 Voltaje de grabación (VPP): De 12 a 14 VDC

Ejemplos de programación y aplicaciones

El micro controlador ejecuta el programa cargado en la memoria Flash. Esto se


denomina el código ejecutable y está compuesto por una serie de ceros y unos,
aparentemente sin significado. Dependiendo de la arquitectura del micro controlador, el
código binario está compuesto por palabras de 12, 14 o 16 bits de anchura. Cada
palabra se interpreta por la CPU como una instrucción a ser ejecutada durante el
TRABAJO PRÁCTICO Versión: Final
Página: 9 de 30

funcionamiento del micro controlador. Todas las instrucciones que el micro controlador
puede reconocer y ejecutar se les denominan colectivamente Conjunto de
instrucciones. Como es más fácil trabajar con el sistema de numeración hexadecimal,
el código ejecutable se representa con frecuencia como una serie de los números
hexadecimales denominada código Hex. En los micros controladores PIC con las
palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35
instrucciones diferentes.

LENGUAJE ENSAMBLADOR

Como el proceso de escribir un código ejecutable era considerablemente arduo, en


consecuencia fue creado el primer lenguaje de programación denominado
ensamblador (ASM). Siguiendo la sintaxis básica del ensamblador, era más fácil
escribir y comprender el código. Las instrucciones en ensamblador consisten en las
abreviaturas con significado y a cada instrucción corresponde una localidad de
memoria. Un programa denominado ensamblador compila (traduce) las instrucciones
del lenguaje ensamblador a código máquina (código binario).

HEste programa compila instrucción a instrucción sin optimización. Como permite


controlar en detalle todos los procesos puestos en marcha dentro del chip, este
lenguaje de programación todavía sigue siendo popular.

Ventajas de lenguajes de programación de alto nivel


A pesar de todos los lados buenos, el lenguaje ensamblador tiene algunas desventajas:
TRABAJO PRÁCTICO Versión: Final
Página: 10 de 30

 Incluso una sola operación en el programa escrito en ensamblador consiste en


muchas instrucciones, haciéndolo muy largo y difícil de manejar.
 Cada tipo de microcontrolador tiene su propio conjunto de instrucciones que un
programador tiene que conocer para escribir un programa
 Un programador tiene que conocer el hardware del microcontrolador para
escribir un programa
Programa escrito en C (El mismo programa compilado al código ensamblador):

Los lenguajes de programación de alto nivel (Basic, Pascal, C etc.) fueron creados con
el propósito de superar las desventajas del ensamblador. En lenguajes de
programación de alto nivel varias instrucciones en ensamblador se sustituyen por una
sentencia. El programador ya no tiene que conocer el conjunto de instrucciones o
características del hardware del microcontrolador utilizado. Ya no es posible conocer
TRABAJO PRÁCTICO Versión: Final
Página: 11 de 30

exactamente cómo se ejecuta cada sentencia, de todas formas ya no importa. Aunque


siempre se puede insertar en el programa una secuencia escrita en ensamblador.

Si alguna vez ha escrito un programa para un microcontrolador PIC en lenguaje


ensamblador, probablemente sepa que la arquitectura RISC carece de algunas
instrucciones. Por ejemplo, no hay instrucción apropiada para multiplicar dos números.
Por supuesto, para cada problema hay una solución y éste no es una excepción
gracias a la aritmética que permite realizar las operaciones complejas al
descomponerlas en un gran número operaciones más simples. En este caso, la
multiplicación se puede sustituir con facilidad por adición sucesiva (a x b = a + a + a
+ ... + a). Ya estamos en el comienzo de una historia muy larga... No hay que
preocuparse al utilizar uno de estos lenguajes de programación de alto nivel como es
C, porque el compilador encontrará automáticamente la solución a éste problema y
otros similares. Para multiplicar los números a y b, basta con escribir a*b.

EDITOR DE SIETE SEGMENTOS


Un editor de siete segmentos le permite determinar con facilidad el número a poner en
un puerto de salida con el propósito de visualizar un símbolo deseado. Por supuesto,
se da por entendido que los pines del puerto deben estar conectados a los segmentos
del visualizador de manera apropiada. Basta con colocar el cursor en cualquier
segmento del visualizador y pulsar sobre él. Se visualizará inmediatamente el número a
introducir en el programa.
TRABAJO PRÁCTICO Versión: Final
Página: 12 de 30

LCD CUSTOM CHARACTER (CARACTERES LCD DEFINIDOS POR EL


USUARIO)
Además de los caracteres estándar, el microcontrolador también puede visualizar los
caracteres creados por el programador. Al seleccionar la herramienta LCD custom
character, se evitará un pesado trabajo de crear funciones para enviar un código
apropiado a un visualizador. Para crear un símbolo, pulse sobre los cuadros pequeños
en la ventana LCD custom character, luego seleccione la posición y la fila y pulse sobre
el botón GENERATE. El código apropiado aparece en otra ventana. No es necesita
pulsar más. Copy to Clipboard (copiar al portapapeles) - Paste (pegar)...

Otro ejemplo
Este ejemplo ilustra la respuesta a estímulos externos utilizando interrupciones
implementada en lenguaje C para el compilador PICC Lite. El programa permite
encender y apagar un LED al presionar un botón pulsador. Antes de encender o apagar
el LED este parpadea tres veces anunciando el cambio de estado.

1. Obtenga el MPLAB IDE en: http://www.microchip.com/


2. Instale el MPLAB siguiendo todos los de la instalación.
3. Obtenga el compilador PICC Lite en:
http://www.htsoft.com/products/compilers/PICClite.php
4. Instale el compilador siguiendo todos los pasos de la instalación.
TRABAJO PRÁCTICO Versión: Final
Página: 13 de 30
TRABAJO PRÁCTICO Versión: Final
Página: 14 de 30

Codigo para programar el microcontrolador


TRABAJO PRÁCTICO Versión: Final
Página: 15 de 30

Aplicaciones de micro controladores


TRABAJO PRÁCTICO Versión: Final
Página: 16 de 30

Quizá se despierte porque un reloj-despertador estaba programado para timbrar a


determinada hora de la mañana, entonces el reloj despertador tiene un micro
controlador en su interior, como el de la figura:

 
 
TRABAJO PRÁCTICO Versión: Final
Página: 17 de 30

 ven la televisión para ello toman el control remoto y la encienden, ahí está otro
micro controlador.

 La TV se enciende y se muestran las imágenes, pues la televisión tiene uno o


más micro controladores
 quizá observa su teléfono celular para saber si no hay mensajes o inclusive para
jugar o navegar en la red, en lo que llega la hora de levantarse, el celular también tiene
uno o más micro controladores.
 el horno de microondas o la estufa (hay algunas estufas que muestran la
temperatura), pues esos dispositivos tienen un micro controlador en su interior.

 si tiene automóvil, lo que hace primero es quitar la alarma o abrir los seguros
eléctricos.
TRABAJO PRÁCTICO Versión: Final
Página: 18 de 30

 El automóvil tiene muchos micro controladores (panel de instrumentos, inyección


electrónica, sistema de alarma, etc.)

 Prende el estéreo y escucha música, pues el auto estéreo tiene uno o más micro
controladores.
TRABAJO PRÁCTICO Versión: Final
Página: 19 de 30

Son muchas las aplicaciones de los micro controladores, y no solo en el hogar, existen
otros muchos campos de aplicaciones de estos chips, para que el lector tenga una idea
de ello, el siguiente video muestra aproximadamente 50 o más productos finales que en
su interior llevan uno o  más micro controladores.

Otros Tipos de micro controladores son los Arduino es una plataforma de hardware
libre, basada en una placa con un micro controlador y un entorno de desarrollo,
diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares

ATMEL
El hardware consiste en una placa con un micro controlador Atmel AVR y puertos
de entrada/salida. Los micro controladores más usados son
el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que
permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un
entorno de desarrollo que implementa el lenguaje de programación Processing / Wiring
y el cargador de arranque (boot loader) que corre en la placa.
Desde octubre de 2012, Arduino se usa también con micro controladoras CortexM3 de
ARM de 32 bits5 , que coexistirán con las más limitadas, pero también económicas
AVR de 8 bits. ARM y AVR no son plataformas compatibles a nivel binario, pero se
pueden programar con el mismo IDE de Arduino y hacerse programas que compilen sin
cambios en las dos plataformas. Eso sí, las micro controladoras CortexM3 usan 3.3V, a
diferencia de la mayoría de las placas con AVR que usan mayormente 5V. Sin embargo
ya anteriormente se lanzaron placas Arduino con Atmel AVR a 3.3V como la Arduino
Fio y existen clónicos de Arduino Nano y Pro como Meduino en que se puede conmutar
el voltaje.
TRABAJO PRÁCTICO Versión: Final
Página: 20 de 30

Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser
conectado a software del ordenador (por ejemplo:Macromedia
Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o
adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente.
Arduino es una plataforma de electrónica abierta para la creación de prototipos basada
en software y hardware flexibles muy fáciles de usar, debido a que el IDE con el que
trabaja es fácil de aprender a utilizar, y el lenguaje de programación con el que trabaja
es simple, pues se creó para artistas, diseñadores, aficionados y cualquier interesado
en crear entornos u objetos interactivos. Arduino puede tomar información del entorno a
través de sus pines de entrada de toda una gama de sensores y puede afectar aquello
que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la
placa Arduino se programa mediante el lenguaje de programación Arduino (basasdo en
Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos
hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador, si
bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej.
Flash, Processing, MaxMSP). Las placas pueden ser hechas a mano o compradas
montadas de fábrica; el software puede ser descargado de forma gratuita. Los ficheros
de diseño de referencia (CAD) están disponibles bajo una licencia abierta, así pues
eres libre de adaptarlos a tus necesidades.

Las aplicaciones que nos ofrece Arduino son múltiples, y dependerá de nuestra
imaginación. Mediante sensores podemos crear aplicaciones sencillas enfocadas a la
docencia para estudiantes de electrónica, proyectos más elaborados para la industria o
incluso sistemas dirigidos simplemente al ocio. Es muy utilizado también en los
entornos artísticos para crear obras más elaboradas, dada su facilidad de
programación.

La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en


el popular lenguaje de programación de alto nivel Processing. Sin embargo, es posible
utilizar otros lenguajes de programación y aplicaciones populares en Arduino. Algunos
ejemplos son:
TRABAJO PRÁCTICO Versión: Final
Página: 21 de 30

 3DVIA Virtools (aplicaciones interactivas y de tiempo real)


 Adobe Director
 BlitzMax (con acceso restringido)
 C
 C++ (mediante libSerial o en Windows)
 C#
 Cocoa/Objective-C (para Mac OS X)
 Flash (mediante ActionScript)
 Gambas
 Isadora (Interactividad audiovisual en tiempo real)* Instant Reality (X3D)
 Java
 Liberlab (software de medición y experimentación)
 Mathematica
 Matlab
 MaxMSP (entorno gráfico de programación para aplicaciones musicales, de
audio y multimedia)
 Minibloq (Entorno gráfico de programación, corre también en OLPC)
 Perl
 Php
 Physical Etoys (Entorno gráfico de programación usado para proyectos de
robótica educativa)
 Processing
 Pure Data
 Python
 Ruby
 Scratch for Arduino (S4A) (entorno gráfico de programación, modificación del
entorno para niños Scratch, del MIT)
 Squeak (implementación libre de Smalltalk)
 SuperCollider (síntesis de audio en tiempo real)
 VBScript
 Visual Basic .NET
TRABAJO PRÁCTICO Versión: Final
Página: 22 de 30

 VVVV (síntesis de vídeo en tiempo real)


Esto es posible debido a que Arduino se comunica mediante la transmisión de datos en
formato serie que es algo que la mayoría de los lenguajes anteriormente citados
soportan. Para los que no soportan el formato serie de forma nativa, es posible utilizar
software intermediario que traduzca los mensajes enviados por ambas partes para
permitir una comunicación fluida. Es bastante interesante tener la posibilidad de
interactuar Arduino mediante esta gran variedad de sistemas y lenguajes puesto que
dependiendo de cuales sean las necesidades del problema que vamos a resolver
podremos aprovecharnos de la gran compatibilidad de comunicación que ofrece.
Bibliotecas en Arduino

Para hacer uso de una biblioteca en Sketch (el IDE de Arduino), basta con hacer clic
sobre “Import Library” en el menú, escoger una biblioteca y se añadirá el #include
correspondiente.
Serial
Lectura y escritura por el puerto serie.
EEPROM
Lectura y escritura en el almacenamiento permanente.
read(), write()
Ethernet
Conexión a Internet mediante “Arduino Ethernet Shield“. Puede funcionar como
servidor que acepta peticiones remotas o como cliente. Se permiten hasta cuatro
conexiones simultáneas.
Servidor: Server(), begin(), available(), write(), print(), println()
Cliente: Client(), connected(), connect(), write(), print(), println(), available(), read(),
flush(), stop()
Firmata
Comunicación con aplicaciones de ordenador utilizando el protocolo estándar del
puerto serie.
LiquidCrystal
Control de LCDs con chipset Hitachi HD44780 o compatibles.20 La biblioteca soporta
los modos de 4 y 8 bits.
Servo
Control de servo motores. A partir de la versión 0017 de Arduino la biblioteca soporta
hasta 12 motores en la mayoría de placas Arduino y 48 en la Arduino Mega.
attach(), write(), writeMicroseconds(), read(), attached(), detach()
El manejo de la biblioteca es bastante sencillo. Mediante attach(número de pin)
añadimos un servo y mediante write podemos indicar los grados que queremos que
tenga el motor (habitualmente de 0 a 180).
SoftwareSerial
TRABAJO PRÁCTICO Versión: Final
Página: 23 de 30

Comunicación serie en pines digitales. Por defecto Arduino incluye comunicación sólo


en los pines 0 y 1 pero gracias a esta biblioteca podemos realizar esta comunicación
con el resto de pines.
Stepper
Control de motores paso a paso unipolares o bipolares.
Stepper(steps, pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4), setSpeed(rpm),
step(steps)
El manejo es sencillo. Basta con iniciar el motor mediante Stepper indicando los pasos
que tiene y los pines a los que está asociado. Se indica la velocidad a la que queramos
que gire en revoluciones por minuto con setSpeed(rpm) y se indican los pasos que
queremos que avance con step(pasos).
Wire
Envío y recepción de datos sobre una red de dispositivos o sensores mediante Two
Wire Interface (TWI/I2C).
Además las bibliotecas Matrix y Sprite de Wiring son totalmente compatibles con
Arduino y sirven para manejo de matrices de leds.
También se ofrece información sobre diversas bibliotecas desarrolladas por
contribuidores diversos que permiten realizar muchas tareas.
Existen diferentes tipos de artículos de Arduino pero nos enfocaremos en el Arduino
Mega 2560

Visión de conjunto
El Arduino Mega 2560 es una placa electronica basada en el ATmega2560.Tiene 54
pines digitales de entrada / salida (de los cuales 15 se pueden utilizar como salidas
PWM), 16 entradas analógicas, 4 UARTs (puertas seriales), un oscilador de
16MHz, una conexión USB, un conector de alimentación, una cabecera ICSP, y un
botón de reinicio. Contiene todo lo necesario para apoyar el microcontrolador, basta
con conectarlo a un ordenador con un cable USB o el poder con un adaptador AC-DC o
batería para empezar. La Mega es compatible con la mayoría de los protectores
TRABAJO PRÁCTICO Versión: Final
Página: 24 de 30

diseñados para el Arduino Duemilanove o Diecimila.

La Mega 2560 es una actualización de la Arduino Mega , al que sustituye.


El Mega2560 difiere de todas las placas anteriores, ya que no utiliza el chip controlador
FTDI USB-to-serial. En su lugar, se cuenta con el ATMEGA16U2 programado como
convertidor USB a serie. 
La junta Mega2560 tiene una resistencia tirando de la línea HWB 8U2 a tierra, por lo
que es más fácil de poner en modo DFU .La junta directiva tiene las siguientes
características nuevas:
 1.0 pinout: añadido SDA y SCL pines que se encuentran cerca del pin AREF y otros
dos nuevos pernos colocados cerca del pin RESET, el IOREF que permiten a los
escudos para adaptarse al voltaje suministrado desde la pizarra. En el futuro, escudos
será compatible tanto con la tarjeta que use el AVR, que operan con 5V y con el
Arduino Due que operan con 3.3V. El segundo es un pasador no conectado, que está
reservado para usos futuros.
TRABAJO PRÁCTICO Versión: Final
Página: 25 de 30

Diagrama de bloques
TRABAJO PRÁCTICO Versión: Final
Página: 26 de 30

Resumen
Micro controladores Atmega2560
Voltaje de funcionamiento 5V
Voltaje de entrada
7-12V
(recomendado)
Voltaje de entrada (límites) 6-20V
Pines E / S digitales 54 (de los cuales 15 proporcionan PWM)
Pines de entrada analógica 16
DC Corriente por I / O Pin 40 mA
Corriente CC para Pin 3.3V 50 mA
256 KB de los cuales 8 KB usados por
Memoria Flash
bootloader
SRAM 8 KB
EEPROM 4 KB
Velocidad del reloj 16 MHz

Potencia
Los Mega Arduino puede ser alimentado a través de la conexión USB o con una fuente
de alimentación externa. La fuente de alimentación se selecciona automáticamente.
(No USB) Fuente de alimentación externa puede venir con un adaptador de AC-DC
(pared-verruga) o la batería. El adaptador se puede conectar al conectar un enchufe de
2,1 mm de centro positivo en el conector de alimentación de la placa. Cables de la
batería se pueden insertar en los cabezales de pin GND y Vin del conector de
alimentación.
La tarjeta puede funcionar con un suministro externo de 6 a 20 voltios. Si se
proporcionan menos de 7V, sin embargo, el pin de 5V puede suministrar menos de
cinco voltios y la junta puede ser inestable. Si se utiliza más de 12V, el regulador de
voltaje se puede sobrecalentar y dañar la placa. El rango recomendado es de 7 a 12
voltios.
Los pines de alimentación son como sigue:
 VIN. El voltaje de entrada a la placa Arduino cuando se trata de utilizar una fuente de
alimentación externa (en lugar de 5 voltios de la conexión USB u otra fuente de
alimentación regulada). Puede suministrar tensión través de este pin, o, si el suministro
de tensión mediante el conector de alimentación, el acceso por medio de este pin.
 5V. Este pin como salida una 5V regulada desde el regulador en el tablero. El tablero
puede ser alimentado ya sea desde la toma de la corriente continua (7 - 12), el
conector USB (5V) o el pasador de VIN del tablero (7-12V). El suministro de tensión a
través de los 5V o 3.3V pins no pasa por el regulador, y puede dañar la placa. No
aconsejamos ella.
 3V3. Un suministro de 3,3 voltios generados por el regulador a bordo. El drenaje actual
máximo es de 50 mA.
 GND. Patillas de tierra.
TRABAJO PRÁCTICO Versión: Final
Página: 27 de 30

 IOREF. Este pin de la placa Arduino proporciona la referencia de tensión con la que


opera el microcontrolador. Un escudo configurado puede leer el voltaje pin IOREF y
seleccione la fuente de alimentación adecuada o habilitar traductores voltaje en las
salidas para trabajar con los 5V o 3.3V.
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 ).
Entrada y salida
Cada uno de los 54 pines digitales en los Mega se puede utilizar como una entrada o
salida, usando pinMode () ,digitalWrite () , y digitalRead () funciones. Ellos funcionan a
5 voltios. Cada pin puede proporcionar o recibir un máximo de 40 mA y tiene una
resistencia pull-up interna (desconectada por defecto) de 20 a 50 kOhm. Además,
algunos pines tienen funciones especializadas:
 Serie: 0 (RX) y 1 (TX); serie 1: 19 (RX) y 18 (TX); serie 2: 17 (RX) y 16 (TX); serie 3:
15 (RX) y 14 (TX) . Se utiliza para recibir (RX) y de transmisión (TX) de datos en serie
TTL. Pines 0 y 1 también están conectados a las clavijas correspondientes de
la ATMEGA16U2de USB a TTL chip de serie.
 Interrupciones externas:. 2 (interrupción 0), 3 (alarma 1), 18 (alarma 5), 19 (alarma de
4), 20 (interrupción 3) y 21 (alarma 2)Estos pines pueden ser configurados para activar
una interrupción en un valor bajo, un flanco ascendente o descendente, o un cambio en
el valor. Ver el attachInterrupt () función para obtener más información.
 PWM:. 2 a 13 y 44 a 46 proporcionan PWM de 8 bits con el analogWrite () función.
 SPI:. 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) Estos pines admite la comunicación
SPI utilizando la biblioteca de SPI . Los pines SPI también se desglosan en la cabecera
ICSP, que es físicamente compatible con el Uno, Duemilanove y Diecimila.
 LED: 13 Hay un built-in LED conectado al pin digital 13.. Cuando el pin es un valor
alto, el LED está encendido, cuando el pasador es bajo, es apagado.
 TWI:. 20 (SDA) y 21 (SCL) apoyar la comunicación con el TWI librería Wire . Tenga en
cuenta que estos pasadores no están en la misma ubicación que los pasadores de
inmersión recíproca en el Duemilanove o Diecimila.
El Mega2560 tiene 16 entradas analógicas, cada uno de los cuales proporcionan 10
bits de resolución (es decir, 1.024 valores diferentes). Por defecto se miden desde el
suelo a 5 voltios, aunque es posible cambiar el extremo superior de su rango con el pin
AREF y la función analogReference ().
Comunicación
El Arduino Mega2560 tiene una serie de instalaciones para la comunicación con un
ordenador, otro Arduino, u otros microcontroladores. El Atmega2560 proporciona
cuatro UART hardware para (5V) de comunicación serie TTL. UnATMEGA16U2
(ATmega 8U2 sobre la revisión y revisión 1 2 tablas) en los canales de subir a uno de
estos a través de USB y proporciona un puerto COM virtual con el software en el
equipo (máquinas Windows necesitarán un archivo. Inf, pero las máquinas OSX y Linux
reconocer el tablero como un puerto COM automáticamente. El software de Arduino
TRABAJO PRÁCTICO Versión: Final
Página: 28 de 30

incluye un monitor de serie que permite que los datos de texto simples para ser
enviados hacia y desde el tablero. La LEDs RX y TX de la placa parpadearán cuando
los datos se transmiten a través de la ATmega8U2/ATmega16U2 conexión de chip y
USB al ordenador (pero no para la comunicación en serie en los pines 0 y 1)).
Una biblioteca SoftwareSerial permite la comunicación en serie en cualquiera de los
pines digitales del Mega2560.
El Atmega2560 también apoya TWI y la comunicación SPI. El software de Arduino
incluye una librería Wire para simplificar el uso del bus TWI, véase
la documentación para más detalles. Para la comunicación SPI, utilice la biblioteca de
SPI .
Programación
Los Mega Arduino puede ser programado con el software de Arduino ( descarga ). Para
obtener más información, consulte la referencia y tutoriales .
El ATmega2560 en el Arduino Mega preburned viene con un cargador de arranque que
le permite cargar nuevo código sin el uso de un programador de hardware externo. Se
comunica utilizando el protocolo STK500 original ( referencia ,archivos de cabecera C ).
También puede pasar por alto el gestor de arranque y el programa del micro
controlador a través del ICSP (programación en circuito serie) cabecea, ver las
instrucciones para más detalles.
El ATMEGA16U2 (o 8U2 en las tablas rev1 y rev2) código fuente del firmware está
disponible en el repositorio de Arduino .Él se carga ATMEGA16U2 / 8U2 con un
cargador de arranque DFU, que se puede activar a través de:
 En Rev1 juntas: conectar el puente de soldadura en la parte posterior de la placa
(cerca del mapa de Italia) y luego reiniciar el 8U2.
 En Rev2 o posteriores juntas: hay una resistencia que tirando de la línea HWB
8U2/16U2 a tierra, por lo que es más fácil de poner en modo DFU. A continuación,
puede utilizar el software FLIP de Atmel (Windows) o el programador DFU (Mac OS X y
Linux) para cargar un nuevo firmware. O puede utilizar el encabezado ISP con un
programador externo (sobrescribir el gestor de arranque DFU). Ver este tutorial
aportado por los usuarios para obtener más información.
Restablecimiento automático (Software)
En lugar de exigir una prensa físico del botón de reinicio antes de que una carga, el
Arduino Mega2560 está diseñado de una manera que le permite poner a cero por
software que se ejecuta en un ordenador conectado. Una de las líneas de control de
flujo de hardware (DTR) de la ATmega8U2 está conectado a la línea de puesta a cero
del ATmega2560 a través de un condensador de 100 nanofarad. Cuando se afirma
esta línea (tomado bajo), la línea de restablecimiento pasa el tiempo suficiente para
restablecer el chip. El software de Arduino utiliza esta capacidad que le permite cargar
código con sólo pulsar el botón de subida en el entorno Arduino. Esto significa que el
gestor de arranque puede tener un tiempo de espera más corto, como la reducción de
DTR puede ser bien coordinada con el inicio de la carga.
Esta configuración tiene otras implicaciones. Cuando el Mega2560 está conectado ya
sea a un ordenador con Mac OS X o Linux, se restablece cada vez que se realiza una
conexión a la misma desde el software (a través de USB). Para el siguiente medio
TRABAJO PRÁCTICO Versión: Final
Página: 29 de 30

segundo o menos, el gestor de arranque se ejecuta en el Mega2560. Mientras que está


programado para ignorar datos malformados (es decir, nada, además de una subida
del nuevo código), se interceptará los primeros bytes de datos enviados a la tarjeta
después de abrir una conexión. Si un dibujo se ejecuta en la placa recibe la
configuración de una sola vez o de otros datos cuando se inicia por primera vez,
asegúrese de que el software con el que se comunica espera un segundo después de
abrir la conexión y antes de enviar los datos.
El Mega2560 contiene una traza que se puede cortar para desactivar el auto-reset. Las
almohadillas a ambos lados de la traza se pueden soldar juntos para volver a
habilitarlo. Ha marcado "RESET-ES". También puede ser capaz de desactivar el auto-
reset conectando una resistencia de 110 ohm de 5V a la línea de reinicio, véase este
hilo del foro para más detalles.
Características físicas y compatibilidad del Escudo
La longitud máxima y la anchura de la PCB Mega2560 son 4 y 2,1 pulgadas,
respectivamente, con el conector USB y el conector de alimentación que se extiende
más allá de la dimensión anterior. Tres orificios de los tornillos que la Junta pueda
fijarse a una superficie o caja. Tenga en cuenta que la distancia entre los pines
digitales 7 y 8 es de 160 milésimas de pulgada (0,16 "), no es un múltiplo par del
milésimas de pulgada espaciamiento de los otros pernos 100.
El Mega2560 está diseñado para ser compatible con la mayoría de los protectores
diseñados para el Uno, Diecimila o Duemilanove. Pines digitales 0 a 13 (y las
adyacentes pins AREF y GND), entradas analógicas de 0 a 5, el encabezado de
energía, y la cabecera ICSP están en puntos equivalentes. Además, la UART principal
(puerto serie) se encuentra en los mismos pines (0 y 1), al igual que las interrupciones
externas 0 y 1 (pines 2 y 3, respectivamente). SPI está disponible a través de la
cabecera ICSP tanto en el Mega2560 y Duemilanove / Diecimila
TRABAJO PRÁCTICO Versión: Final
Página: 30 de 30

Bibliografía
 “Micro controladores PIC diseño practico de aplicaciones”, primera edición,
autores José Angulo Usategui Ignacio Angulo Martínez.

 http://edrpaul.blogspot.com.ar/2011/10/libro-programando-microcontroladores-
en.html

 http://axnm.galeon.com/

 http://www.johnhenryshammer.com/WOW2/pagesHowTo/atmelPage.php#index

 http://web.ing.puc.cl/~mtorrest/downloads/pic/tutorial_pic.pdf

 http://prezi.com/xxee6cqfxdcc/historia-de-los-microcontroladores/

 http://mycrocontroladores.blogspot.com.ar/2008/12/evolucion-del-
microcontrolador.html

 http://www.slideshare.net/tecautind/introduccion-a-microcontroladores

También podría gustarte