You are on page 1of 21

Repblica Bolivariana de Venezuela

Ministerio del Poder Popular para la Educacin Universitaria


Universidad politcnica territorial del oeste de sucre
Clodosbaldo Russin
Cuman, Estado Sucre

ARDUINO

Profesor:
Ing. David Sifuentes

Realizado por:
Crdova, Luis F. C.I: 20.063.359
Capaldo, Jhonny CI: 21.093.993

Cumana Octubre 2014


ARDUINO:

Arduino es una plataforma de hardware libre, basada en una placa con


un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de
la electrnica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador Atmel AVR y
puertos

de

entrada.

Los

microcontroladores

ms

usados

son

el Atmega168, Atmega328,Atmega1280, ATmega8 por su sencillez y bajo coste


que permiten el desarrollo de mltiples diseos. Por otro lado el software
consiste en un entorno de desarrollo que implementa el lenguaje de
programacin Processing/Wiring y el arranque que es ejecutado en la placa.
Arduino se puede utilizar para desarrollar objetos interactivos autnomos
o puede ser conectado a software tal como Adobe 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 puede tomar informacin del entorno a travs de sus entradas
analgicas y digitales, puede controlar luces, motores y otros actuadores. El
microcontrolador en la placa Arduino se programa mediante el lenguaje de
programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino
(basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse
sin necesidad de conectar a un computador.

Cmo funciona Arduino

Como pasa con la mayora de las placas microcontroladores las


funciones de Arduino pueden resumirse en tres. En primera instancia, tenemos
una interfaz de entrada, que puede estar directamente unida a los perifricos, o
conectarse a ellos por puertos. El objetivo de esa interfaz de entrada es llevar
la informacin al microcontrolador, la pieza encargada de procesar esos datos.
El mentado microcontrolador vara dependiendo de las necesidades del
proyecto en el que se desea usar la placa, y hay una buena variedad de
fabricantes y versiones disponibles.

Por ltimo, tenemos una interfaz de salida, que lleva la informacin


procesada a los perifricos encargadas de hacer el uso final de esos datos, que
en algunos casos puede bien tratarse de otra placa en la que se centralizar y
procesara nuevamente la informacin, o sencillamente, por ejemplo, una
pantalla o un altavoz encargada de mostrar la versin final de los datos.

Arduino es un sistema, y no una placa nica. Por esto, el funcionamiento


concreto depender del proyecto. As, en un mvil hecho con Arduino
tendremos varios microcontroladores, encargados de las conexiones de red,
los datos necesarios para la entrada de nmeros y mostrar informacin en
pantalla, entre otras cosas. As mismo, un reloj hecho con Arduino solamente
hara falta un chip que cuantifique la hora y la muestre en una pantalla.

Aplicaciones:
El mdulo Arduino ha sido usado como base en diversas aplicaciones
electrnicas:

Xoscillo: Osciloscopio de cdigo abierto.

Equipo cientfico para investigaciones.

Arduinome: Un dispositivo controlador MIDI.

OBDuino: un econmetro que usa una interfaz de diagnstico a


bordo que se halla en los automviles modernos.

Humane Reader: dispositivo electrnico de bajo coste con salida de


seal de TV que puede manejar una biblioteca de 5000 ttulos en una
tarjeta microSD.

The Humane PC: equipo que usa un mdulo Arduino para emular un
computador personal, con un monitor de televisin y un teclado para
computadora.

Ardupilot: software y hardware de aeronaves no tripuladas.

ArduinoPhone: un telfono mvil construido sobre un mdulo Arduino.


Esquemas de conexiones:
Entradas y salidas
Poniendo de ejemplo al mdulo Diecimila, ste consta de 14 entradas
digitales configurables como entradas y/o salidas que operan a 5 voltios. Cada
contacto puede proporcionar o recibir como mximo 40 mA. Los contactos 3, 5,
6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si
se conecta cualquier cosa a los contactos 0 y 1, eso interferir con la
comunicacin USB. Diecimila tambin tiene 6 entradas analgicas que
proporcionan una resolucin de 10 bits. Por defecto, aceptan de 0 hasta 5
voltios, aunque es posible cambiar el nivel ms alto, utilizando el contacto Aref
y algn cdigo de bajo nivel.
Lenguaje de programacin arduino:
La plataforma Arduino se programa mediante el uso de un lenguaje
propio basado en el lenguaje de programacin de alto nivelProcessing. Sin
embargo, es posible utilizar otros lenguajes de programacin y aplicaciones
populares en Arduino, debido a que Arduino usa la transmisin serial de datos
soportada por la mayora de los lenguajes mencionados. 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 comunicacin fluida.
Algunos ejemplos son:

3DVIA Virtools: aplicaciones interactivas y de tiempo real.

Adobe Director

BlitzMax (con acceso restringido)

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 medicin y experimentacin)

Mathematica

Matlab

MaxMSP: Entorno grfico de programacin para aplicaciones musicales,


de audio y multimedia

Minibloq: Entorno grfico de programacin, corre tambin en las


computadoras OLPC

Perl

Php

Physical Etoys: Entorno grfico de programacin usado para proyectos


de robtica educativa

Processing

Pure Data

Python

Ruby

Scratch

for

Arduino

(S4A):

Entorno

grfico

de

programacin,

modificacin del entorno para nios Scratch, del MIT)

Squeak: Implementacin libre de Smalltalk

SuperCollider: Sntesis de audio en tiempo real

VBScript

Visual Basic .NET

VVVV: Sntesis de vdeo en tiempo real

FUNCIONES BSICAS Y OPERADORES:

Arduino est basado en C y soporta todas las funciones del estndar C y


algunas de C++. A continuacin se muestra un resumen con la estructura y
sintaxis del lenguaje Arduino:
Sintaxis Bsica

Delimitadores:;, {}

Comentarios: //, /* */

Cabeceras: #define, #include

Operadores aritmticos: +, -, *, /, %

Asignacin: =

Operadores de comparacin: ==, !=, <, >, <=, >=

Operadores Booleanos: &&, ||, !

Operadores de acceso a punteros: *, &

Operadores de bits: &, |, ^, ~, <<, >>

Operadores compuestos:

Incremento y decremento de variables: ++, --

Asignacin y operacin: +=, -=, *=, /=, &=, |=

Estructuras de control

Condicionales: if, if...else, switch case

Bucles: for, while, do... while

Bifurcaciones y saltos: break, continue, return, goto

Variables
En cuanto al tratamiento de las variables tambin comparte un gran parecido
con el lenguaje C.
Constantes

HIGH/LOW: representan los niveles alto y bajo de las seales de


entrada y salida. Los niveles altos son aquellos de 3 voltios o ms.

INPUT/OUTPUT: entrada o salida.

false (falso): Seal que representa al cero lgico. A diferencia de las


seales HIGH/LOW, su nombre se escribe en letra minscula.

true (verdadero): Seal cuya definicin es ms amplia que la de false.


Cualquier nmero entero diferente de cero es "verdadero", segn el lgebra
de Boole, como en el caso de -200, -1 o 1. Si es cero, es "falso".

Tipos de datos

void, boolean, char, unsigned char, byte, int, unsigned int, word, long,
unsigned long, float, double, string, array.

Conversin entre tipos


Estas funciones reciben como argumento una variable de cualquier tipo y
devuelven una variable convertida en el tipo deseado.

char(), byte(), int(), word(), long(), float()

Cualificadores y mbito de las variables

static, volatile, const

Utilidades

sizeof()

Funciones Bsicas
E/S Digital

pinMode(pin, modo)

digitalWrite(pin, valor)

int digitalRead(pin)

E/S Analgica

analogReference(tipo)

int analogRead(pin)

analogWrite(pin, valor)

E/S Avanzada

shiftOut(dataPin, clockPin, bitOrder, valor)

unsigned long pulseIn(pin, valor)

Tiempo

unsigned long millis()

unsigned long micros()

delay(ms)

delayMicroseconds(microsegundos)

Matemticas

min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow,


fromHigh, toLow, toHigh), pow(base, exponente), sqrt(x)

Trigonometra

sin(rad), cos(rad), tan(rad)

Nmeros aleatorios

randomSeed(semilla), long random(mx), long random(mn, mx)

Bits y Bytes

lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()

Interrupciones externas

attachInterrupt(interrupcin, funcin, modo)

detachInterrupt(interrupcin)

Interrupciones

interrupts(), noInterrupts()

Comunicacin por puerto serie


Las funciones de manejo del puerto serie deben ir precedidas de la palabra
"Serial" aunque no necesitan ninguna declaracin en la cabecera del programa.
Por esto se consideran funciones base del lenguaje. Estas son las funciones
para transmisin serial:

begin(), available(), read(), flush(), print(), println(), write()

Manipulacin de puertos
Los registros de puertos permiten la manipulacin a ms bajo nivel y de
forma ms rpida de los contactos de entrada/salida del microcontrolador de
las placas Arduino. Los contactos elctricos de las placas Arduino estn
repartidos entre los registros B(0-7), C (analgicos) y D(8-13). Mediante estas
variables ser observado y modificado su estado:

DDR[B/C/D]: Data Direction Register (o direccin del registro de datos)


del puerto B, C D. Es una variable de Lectura/Escritura que sirve para
especificar cules contactos sern usados como entrada y salida.

PORT[B/C/D]: Data Register (o registro de datos) del puerto B, C o D. Es


una variable de Lectura/Escritura.

PIN[B/C/D]: Input Pins Register (o registro de pines de entrada) del


puerto B, C D. Variable de slo lectura.
Por ejemplo, para especificar los contactos 9 a 13 como salidas y el 8 como

entrada (puesto que el puerto D usa los pines de la placa Arduino 8 al 13


digitales) bastara utilizar la siguiente asignacin:
DDRD = B11111110;
Como se ha podido comprobar, el conocimiento del lenguaje C, permite
la programacin en Arduino debido a la similitud entre ste y el lenguaje nativo
del proyecto, lo que implica el aprendizaje de algunas funciones especficas de
que dispone el lenguaje del proyecto para manejar los diferentes parmetros.
Se pueden construir aplicaciones de cierta complejidad sin necesidad de
muchos conceptos previos.

Interrupciones
Las seales de interrupcin son las siguientes:

cli(): desactiva las interrupciones globales

sei(): activa las interrupciones

Esto afectar al temporizador y a la comunicacin serial. La funcin


delayMicroseconds() desactiva las interrupciones cuando se ejecuta.
Temporizadores
La funcin delayMicroseconds() crea el menor retardo posible del
lenguaje Arduino que ronda los 2s. Para retardos ms pequeos se debe
utilizar la llamada de ensamblador 'nop' (no operacin). Cada sentencia 'nop' se
ejecutar en un ciclo de mquina (16 MHz) de aproximadamente 62,5ns.
Manipulacin de puertos
La manipulacin de puertos con cdigo AVR es ms rpida que utilizar la
funcin digitalWrite() de Arduino.

Establecer Bits en variables


Cbi y sbi son mecanismos estndar (AVR) para establecer o limpiar bits
en PORT y otras variables.
Diferencias con Processing
La sintaxis del lenguaje de programacin Arduino es una versin
simplificada

de

C/C++

tiene

algunas

diferencias

respecto

de

Processing.Debido a que Arduino est basado en C/C++ mientras que

Processing se basa en Java, existen varias diferencias en cuanto a la sintaxis


de ambos lenguajes y el modo en que se programa:
Ejemplo sencillo de programacin en Arduino
El primer paso antes de comprobar que la instalacin es correcta y
empezar a trabajar con Arduino, es usar ejemplos prcticos que vienen
disponibles con el dispositivo. Se recomienda abrir el ejemplo led_blink el cual
crea una intermitencia por segundo en un led conectado en el pin 13. El cdigo
necesario es el siguiente:
# define LED_PIN 13
void setup () {
// Activado del contacto 13 para salida digital
pinMode (LED_PIN, OUTPUT);
}
// Bucle infinito
void loop () {
// Encendido del diodo LED enviando una seal alta
digitalWrite (LED_PIN, HIGH);
// Tiempo de espera de 1 segundo (1000 ms)
delay (1000);
// Apagado del diodo LED enviando una seal baja.
digitalWrite (LED_PIN, LOW);
// Tiempo de espera de 1 segundo
delay (1000);
}

BIBLIOTECAS EN ARDUINO:
Las bibliotecas estndar que ofrece Arduino son las siguientes:
Serial
Lectura y escritura por el puerto serie.
Eeprom
Lectura y escritura en el almacenamiento permanente.

read(), write()

Ethernet
Conexin a Internet mediante Arduino Ethernet Shield. Puede funcionar
como servidor que acepta peticiones remotas o como cliente. Se permiten
hasta cuatro conexiones simultneas. Los comandos usados son los
siguientes:

Servidor: Server(), begin(), available(), write(), print(), println()

Cliente: Client(), connected(), connect(), write(), print(), println(),


available(), read(), flush(), stop()

Firmata
Es una biblioteca de comunicacin con aplicaciones informticas utilizando el
protocolo estndar del puerto serie.
LiquidCrystal
Control

de LCDs con chipset Hitachi

HD44780 o

compatibles.

La

biblioteca soporta los modos de 4 y 8 bits.


Servo
Biblioteca para el control de servo motores. A partir de la versin 0017 de
Arduino la biblioteca soporta hasta 12 motores en la mayora de las placas
Arduino y 48 en la Arduino Mega. Estos son los comandos usados:

attach(), write(), writeMicroseconds(), read(), attached(), detach()

SoftwareSerial
Comunicacin serie en contactos digitales. Por defecto Arduino incluye
comunicacin slo en los contactos 0 y 1 pero gracias a esta biblioteca puede
realizarse esta comunicacin con los restantes.
Stepper
Control de motores paso a paso unipolares o bipolares

Stepper(steps, pin1, pin2), Stepper(steps, pin1, pin2, pin3, pin4),


setSpeed(rpm), step(steps)

Wire
Envo y recepcin de datos sobre una red de dispositivos o sensores
mediante Two Wire Interface (TWI/I2C).
Las bibliotecas Matrix y Sprite de Wiring son totalmente compatibles con
Arduino y sirven para manejo de matrices de diodos LED. Tambin se ofrece
informacin

sobre

diversas

bibliotecas

desarrolladas

por

diversos

colaboradores que permiten realizar muchas tareas.


TIPOS DE ARDUINOS:
Arduino viene en una variedad de diferentes tipos que hacen que elegir
el ms adecuado sea un poco difcil, pero la variedad tambin nos brinda la
flexibilidad para elegir la solucin perfecta.
Nosotros no podemos cubrir todas las opciones de Arduino, pero a
continuacin te mostramos algunas de las opciones ms notables para
empezar.

Arduino Uno

El Uno es una buena opcin para comenzar a usar Arduino, proporciona


una base slida para los principiantes y tiene muchas de las opciones que se
desea a medida que exploras la plataforma. Tambin trabaja con casi todos los
escudos disponibles. Ms adelante explicaremos que es un Shield en Arduino.

Arduino Nano

El Nano es rasgo por rasgo casi lo mismo que el Arduino Uno, pero es
aproximadamente 1/3 del tamao y no se pueden usar shields con tanta
facilidad. El Uno est destinado a ser utilizado como un elemento permanente
en los proyectos o con bread boards para pruebas.
Arduino Lilypad

El Lilypad tiene un diseo nico que se puede coser en la tela para


proyectos que se puedan vestir o para arte. Por supuesto, no ests limitado a
esas aplicaciones, pero los shields no funcionan en este Arduino, de modo que
la expansin puede ser difcil.
Arduino Mega 2560

El Mega 2560 tiene ms memoria y ms pines de E/S que cualquier otra


Arduino. Este es el Arduino ms grande y mejor que puedes conseguir, pero
puede que no necesites tanto poder si tus proyectos no lo requieren. Este
tambin es un poco ms caro, por lo que debes pensar si lo que quieres para
un proyecto permanente o para montar y probar diferentes proyectos.
Netduino

El Netduino es el primo del Arduino. Sigue siendo una solucin pirateada


de hardware y de cdigo abierto para prototipos. Sin embargo, el Netduino
ejecuta .NET Micro Frameworkpara su software base. Es compatible con los
shields de Arduino, pero algunos pueden requerir drivers para funcionar.
Arduino Fio

El Arduino FIO est diseado para aplicaciones inalmbricas. El usuario


puede subir sus sketches con un cable FTDI o una placa adicional adaptadora
Sparkfun. Adems, si utiliza un adaptador de USB a XBee modificado, puedes
subir tus sketches de forma inalmbrica. La tarjeta viene sin conectores premontados,

permitiendo

el

uso

de

diversos

tipos

de

conectores

la soldadura directa de los cables.


Tiene conexiones para una batera de polmero de Litio e incluye un
circuito de carga a travs de USB. En el reverso de la placa tiene disponible un
zcalo para mdulos XBee.
Accesorios de Arduino (Shields)

Un shield es una placa impresa que se pueden conectar en la parte


superior de la placa Arduino para ampliar sus capacidades, pudiendo ser
apilada una encima de la otra. Los shields permiten aadir funcionalidad a tu
Arduino al instante. Tienen pines que se colocan justo encima de tu Arduino y
puedes aprovechar inmediatamente lo que sea que el shield pueda hacer.
Puedes agregar mltiples shields al mismo tiempo.
Por ejmeplo, puedes usar un Arduino para que busque en Twitter por un
hashtag especfico (Shield de Ethernet) y luego controle un carrito a control
remoto con radiofrecuencia (Shield RF) no est ms all del alcance de un solo
proyecto, gracias a la flexibilidad de los shields.
A continuacin vers que algunos shields se parecen mucho a los
mismos Arduino, pero no debes confundirte, ya que los shields carecen de la
capacidad de procesamiento principal para ejecutar el cdigo que escribas en
tus sketches o bocetos (ms sobre esto ms adelante).
Shield de Ethernet

Este es uno de los shields ms populares, ya que le permite a tu Arduino


para poder usar el internet para fines de comunicacin y control. El shield de
Ethernet es uno de los ms verstiles del mercado, y una vez que haya
dominado los fundamentos es casi seguro que comprars uno de estos.
Yo dira que junto con el shield de motores, el shield de Ethernet es
imprescindible y puedes hacer casi cualquier cosa con l. De hecho, vi un
proyecto de un chico que usaba estos shields para que su tostadora y
su lavadora automticamente tweetearan cuando el pan estaba listo y cuando
la ropa estaba lavada respectivamenteas que ya te puedes imaginar lo que
puedes hacer con esto.
XBee

El shield XBee hace que la comunicacin inalmbrica de punto a punto


sea fcil. Puedes utilizar este shield para conectar en red dos Arduinos o para
crear una malla de red completa de Arduinos para cualquier cosa que se te
ocurra

Motor

Arduino puede controlar motores y servos sin necesidad de un shield, pero el


shield de motor eleva esa capacidad a 11. Puedes utilizar este shield para
disear tu propio robot y controlarlo a distancia.
Hay un montn de shields para Arduino disponibles, hay shields para msica,
videojuegos, bluetooth, pantallas tctiles, LCD. Pero esa es slo la punta del
iceberg, yo dira que hay shields para casi todo y lo ms recomendable es que
busques un poco hasta que encuentres el shield perfecto para tu proyecto.
Si ests buscando Arduinos y shields para usarlos con sensores, te recomiendo
que le eches un vistazo a Fritzing, que no slo ayuda con las etapas de
creacin de prototipos, sino que tambin ayuda a mostrar cmo hacer placas
de circuito impreso (PCB) permanentes para la produccin de tu proyecto.

BIBLIOGRAFA
http://es.wikipedia.org/wiki/Arduino
http://gizmologia.com/2014/03/hardware-novatos-arduino

http://domadis.com/2011/10/02/%C2%BFsabes-que-es-arduino-todo-loque-necesitas-saber-sobre-esta-plataforma-electronica-de-codigoabierto/

You might also like