Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCCION
La plataforma Arduino, est compuesta por hardware y software, la cual
est basada en un microcontrolador con entradas y salidas, tanto analgicas
como digitales. Esta plataforma tiene la caracterstica de ser un sistema
abierto, lo que significa que su diseo como su distribucin son libres, es decir
se puede utilizar sin haber adquirido licencia alguna; as tambin estn
disponibles los archivos de diseo (CAD) permitiendo al usuario adaptarlo a
necesidades especficas. Otra ventaja de Arduino es que es compatible con
Windows, Mac OS y Linux, que a diferencia del entorno de otros
microcontroladores estn limitados a Windows.
Debido a que existen diversas libreras, Arduino puede personalizarse
con nuevas funcionalidades, por lo que esta plataforma facilita el desarrollo de
aplicaciones en distintas reas de la electrnica, tales como: Procesamiento de
seales, electrnica de potencia, automatizacin y control, etc. Actualmente
Arduino, ha comenzado a tomar relevancia a nivel mundial, no solo por ser
una plataforma abierta, sino porque tambin est orientado a usuarios no
programadores, ya que utiliza el lenguaje Processing (el cual ha sido
creado para la enseanza de la programacin en un contexto visual) en
conjunto con Wiring (plataforma de Hardware multipropsito con un
ambiente para no programadores).
Las placas se pueden ensamblar a mano o encargarlas pre ensambladas; el
software se puede descargar gratuitamente. Los diseos de referencia del
hardware (archivos CAD) estn disponibles bajo licencia open-source, por lo
que eres libre de adaptarlas a tus necesidades.
En este manual se describen las propiedades de la plataforma Arduino,
donde en secciones posteriores se listan sus caractersticas principales,
instalacin del software y hardware, as como algunas prcticas que darn las
bases al estudiante para la creacin de sus propios proyectos.
Edificios Inteligentes
CARACTERISTICAS GENERALES
________________ es una
de
la
compaa:
________________,
modelo
controlador)
Cada
pin
puede
suministrar
(soportar)
una
corriente
Edificios Inteligentes
CARACTERISTICA
DESCRIPCION
Microcontrolador
Voltaje de operacin
Tensin de entrada (recomendada)
Tensin de entrada (limite)
Pines digitales de E/S
Pines de entrada analgicos
Corriente DC por pin E/S
Corriente DC para pin 3.3V
Memoria Flash
SRAM
EEPROM
Frecuencia de reloj.
Caractersticas de Alimentacin:
Caractersticas de Comunicacin:
Edificios Inteligentes
CONFIGURCION DE ARDUINO
A continuacin se muestra la instalacin paso a paso del manejador o
driver y software de Arduino, bajo el entorno de Windows en su versin 7.El
primer paso para establecer el enlace con Arduino a travs de la computadora,
es
descargar
el
software
desde
la
pgina
oficial
de
Arduino
Edificios Inteligentes
entorno
Arduino.
Descarga
http://www.arduino.cc/en/Main/Software.
la
ltima
Cuando
versin
termine
la
desde
descarga,
Edificios Inteligentes
Edificios Inteligentes
Edificios Inteligentes
5. Conectar un LED (si estas usando una placa antigua). La primera rutina
que subirs a la placa Arduino hace parpadear un LED. El Arduino Diecimila (y
el Arduino NG original) tiene una resistencia incorporada y un LED en el pin
13. En el Arduino NG Rev. C y placas Arduino pre-NG, sin embargo, el pin 13
no tiene un LED incorporado. En estas placas, necesitars conectar la patilla
Edificios Inteligentes
cargado
ejecutndose.
Si
tienes
http://www.arduino.cc/en/Guide/Troubleshooting
problemas,
consulta:
Edificios Inteligentes
10
Edificios Inteligentes
11
Serial Monitor: Muestra datos serie enviados desde la placa Arduino (placa
serie o USB). Para enviar datos a la placa, introduce el texto y haz click en el
botn Send o presiona Enter. Elige la velocidad de transmisin de datos
desde el desplegable que asigna la velocidad pasada al Serial.being en tu
rutina. Recuerda que en Mac o GNU/Linux, la placa Arduino se reiniciar
(vuelve a ejecutar tu rutina desde el principio) cuando conectes con el Serial
monitor. Puedes comunicarte tambin con la placa desde Processing, Flash,
MaxMSP, etc. (consulta http://www.arduino.cc/playground/Main/Interfacing
para ms detalles).
Tab Menu: Permite gestionar las rutinas con ms de un archivo (cada uno de
los cuales aparece en su propia pestaa). Estos pueden ser:
Archivos de cdigo de Arduino (sin extensin).
Archivos de C (extensin .c).
Archivos de C++ (extensin .cpp).
Archivos de cabecera (extensin .h).
2. Mens
Sketch
Verify/Compile: Comprueba tu rutina para errores.
Import Library: Utiliza una librera en tu rutina. Trabaja aadiendo
#include en la cima de tu cdigo. Esto aade funcionalidad extra a tu
rutina, pero incrementa su tamao. Para parar de usar una librera,
elimina el #include apropiado de la cima de tu rutina.
Show Sketch Folder: Abre la carpeta de rutinas en tu escritorio.
Add File: Aade otro archivo fuente a la rutina. El nuevo archivo
aparece en una nueva pestaa en la ventana de la rutina. Esto facilita y
Edificios Inteligentes
Arduino.
En
el
/dev/tty.usbserial-1B1
Mac,
esto
(para
es
la
probablemente
algo
como
placa
USB),
12
Edificios Inteligentes
13
Edificios Inteligentes
inicializadas
con
un
valor
cuando
son
declaradas,
pero
14
Edificios Inteligentes
Las
variable
de
tipo
long
son
de
tamao
extendido
para
15
Edificios Inteligentes
16
Edificios Inteligentes
Sintaxis:
int v; // 'v' es visible en todo el programa
void setup() {
}
void loop() {
for (int i=0; i<20;) // 'i' es visible solo en el bucle i++;
float f; // 'f' es visible nicamente en la funcin loop()
}
OPERADORES
El uso de operadores es similar al utilizado en el lenguaje de programacin C
y C++, se clasifican en aritmticos, booleanos, compuestos y de comparacin.
Operadores aritmticos
Se utilizan empleando variables, valores constantes o elementos de un arreglo.
Operadores aritmticos
17
Edificios Inteligentes
Operadores de comparacin.
Operadores Booleanos
CONSTANTES
En el lenguaje de Arduino, existen constantes predefinidas, las cuales se
utilizan para asignar un valor a una variable o configurar un pin como
entrada/salida. El uso de estas constantes, nos permiten leer un programa con
mayor facilidad e identificar la accin realizada en la instruccin. Existen dos
constantes para representar si algo es cierto o falso en Arduino (TRUE y
FALSE). FALSE equivale a definir como 0 y TRUE se define en la mayora
de las veces como 1, aunque en una definicin ms amplia cualquier entero
que no es cero, es TRUE. Existen otras constantes que definen el nivel lgico
de los pines, nivel alto (HIGH) y nivel bajo (LOW), cuando se lee o escribe en
18
Edificios Inteligentes
19
Edificios Inteligentes
puede
leer
lgico
lgico,
podra
cambiar
aleatoriamente.
digitalWrite(pin, value): Introduce un 1 lgico (HIGH) o 0 lgico (LOW)
en el pin digital especificado. De nuevo, el pin puede ser asignado con una
variable o una constante.
Sintaxis:
void setup(){
int pin = 8;
digitalWrite(pin, HIGH); } // Asigna a pin 8 1 lgico.
analogRead(pin): Lee el valor analgico de un pin con una resolucin de 10
bits predeterminada. Esta funcin solo funciona en los pines analgicos (A0
A11). El valor resultante es un entero de 0 a 1023. Los pines analgicos, a
diferencia de los digitales NO necesitan declararse previamente como entrada
o salida.
Sintaxis:
Valor = analogRead(A1); // Lee el valor de la entrada A1.
analogWrite(pin, valor): Escribe un valor de 0 255 (resolucin de 8 bits)
en el pin especificado. Al utilizar esta funcin no es necesario utilizar la funcin
pinMode para establecer al pin como salida.
Sintaxis:
Int pin1 = 10; // Asignacin de variable a pin 10.
20
Edificios Inteligentes
21
Edificios Inteligentes
modificar los pines. Sin embargo continan funcionando las interrupciones, los
valores PWM (analogWrite) y los estados lgicos de los pines se mantienen.
millis(): Devuelve la cantidad de milisegundos que lleva la placa Arduino
ejecutando el programa actual, puede contar hasta un tiempo equivalente a
50 das, unas vez completado, comienza nuevamente.
INTERRUPCIONES
El manejo de interrupciones en Arduino, nos permiten ejecutar eventos de
manera asncrona, es decir que el cdigo principal reaccione a eventos
externos sin necesidad de estarlos monitoreando continuamente.
attachInterrup(pin, funcin, modo): Esta funcin nos permite el manejo
de interrupciones en un programa, si utilizamos esta funcin, definiremos los
siguientes parmetros:
Pin: especifica el nmero de entrada de interrupcin, para Arduino DUE se
puede utilizar cualquier pin (0 53). Para ms detalles acerca de las
interrupciones en tu placa ARDUINO, puedes consultar la tabla siguiente.
22
Edificios Inteligentes
23
Edificios Inteligentes
/ / Realiza Accin B
}
Cada condicin se proceder a la siguiente hasta que se encuentra una
verdadera. Cuando se encuentra una condicin verdadera, su bloque
correspondiente del cdigo se ejecuta y el programa se salta a la lnea
siguiente. Si no existe ninguna prueba ser cierta, el bloque else se ejecuta
por defecto.
Ciclo: for.- Este ciclo se utiliza para repetir un bloque de instrucciones entre
llaves, un contador de incremento se utiliza para tener el control de cuantas
veces se ha ejecutado el ciclo, as como su conclusin.
Sintaxis:
for (inicio; condicin; incremento) {
/ / Realiza Accin A
}
El trmino de inicio solo se prueba una vez. Cada vez que se va a repetir el
bloque, se prueba la condicin, si es verdadera se ejecutan las instruccin
dentro de la funcin y se incrementa un contador. El ciclo se ejecutar hasta
que la condicin se convierta en falsa, por lo que el ciclo terminar
Ejemplo:
for (int i=0; i <= 255; i++) { // Prueba i = 0
analogWrite(PWMpin, i); // Escribe valor de i en PWMpin
delay(10);
}
Sentencia: switch / case .- Esta sentencia la podemos especificar como un
comparador mltiple, adems nos permite controlar el flujo de cdigo de
programa. En particular, compara el valor de una variable a los valores
especificados en las sentencias case, cuando se encuentra una sentencia
cuyo valor coincide con el de la variable, se ejecuta el cdigo en esa sentencia,
lo que permite establecer en cada caso un bloque de instrucciones activo.
24
Edificios Inteligentes
Sintaxis:
25
switch (var) {
case 1:
// Realizar las acciones cuando var = 1
break; // Instruccin para salir de la sentencia
case 2:
// Realizar las acciones cuando var = 2
break;
default:
// Si no cumple alguna condicin anterior realiza
// las siguientes acciones.
}
Ciclo: while.- El lazo se repite de forma continua e indefinidamente, hasta
que la expresin dentro de los parntesis ( ) se convierte en falsa, de lo
contrario el ciclo while nunca terminar.
Sintaxis:
while(expresion) { // Cdigo ejecutado mientras expresion
// es verdadera.
}
Ciclo: do... while.- Este comando trabaja de la misma manera que el lazo
while, con la excepcin de que la condicin se comprueba al final del lazo,
por lo que este lazo se ejecuta "siempre" al menos una vez.
Sintaxis:
do {accin}
while (operacin booleana);
Comando: break
Esta instruccin es usada para salir de los lazos do, for, o while, pasando por
alto lacondicin normal del lazo, tambin es usado tambin para salir de una
estructura de control switch.
Edificios Inteligentes
PUERTO SERIE
Los puertos de entrada/salida permiten la comunicacin con elementos
externos a la tarjeta. Arduino posee la interfaz para realizar la comunicacin
de datos digitales (puerto serial), con lo que es posible intercambiar datos con
la computadora a partir de las siguientes funciones:
Serial.begin(rate): Esta funcin permite abrir un puerto serie y especificar
la velocidad de transmisin. La velocidad tpica para comunicacin con el
ordenador es de 9600 baudios, aunque se pueden soportar otras velocidades.
Serial.print(data): Este comando imprime los datos al puerto serie como
texto ASCII, y tiene varias formas. Los nmeros son impresos mediante un
juego de caracteres ASCII para cada dgito. Los valores de tipo "float" son
impresos en forma de dgitos ASCII con dos decimales por defecto. Los valores
tipo "byte" se envan como un nico carcter. Los caracteres y las cadenas se
envan tal cual. Por ejemplo:
Serial.print(78) imprime "78"
Serial.print(1.23456) imprime "1.23"
Serial.print(byte(78)) imprime "N" (cuyo cdigo ASCII es 78)
Serial.print('N') imprime "N"
Serial.print("Hello world.") imprime "Hello world."
Serial.println(data): La instruccin imprime datos al puerto serie, seguido
por un retorno de lnea automtico. Este comando tiene la misma forma que
Serial.print() pero este ltimo sin el salto de lnea al final. Este comando
puede emplearse para realizar la depuracin de programas. Para ello puede
mandarse mensajes de depuracin y valores de variables por el puerto serie.
Posteriormente, desde el entorno de programacin de Arduino, activando el
"Serial Monitor" se puede observar el contenido del puerto serie, y por lo tanto,
los mensajes de depuracin. Para observar correctamente el contenido del
puerto serie se debe tener en cuenta que el "Serial Monitor" y el puerto serie
han de estar configurados a la misma velocidad.
26
Edificios Inteligentes
LIBRERIAS EN ARDUINO
Las libreras en Arduino son archivos escritos en C o C++, que permiten
ampliar la funcionalidad de los programas. Para hacer uso de una librera en
un sketch (el IDE de Arduino), basta con hacer clic sobre Programa Import Library en el men, escoger la librera correspondiente y se agregar
a nuestro programa. Como las libreras se cargan en el Arduino junto con el
programa, se consume ms espacio de memoria, s un programa ya no
necesita una biblioteca, slo se tiene que borrar el #include de las
declaraciones de la parte superior del cdigo. Esto har que el IDE de Arduino
no enlace la librera con el programa y disminuya la cantidad de espacio
utilizado en la placa del Arduino. Las libreras estndar que ofrece Arduino son
las siguientes:
Serial: Lectura y escritura por el puerto serie.
EEPROM: Lectura y escritura en el almacenamiento permanente. Funciones:
read() y write()
Ethernet: Conexin a Internet mediante Arduino Ethernet Shield, el cual
puede funcionar como servidor que acepta peticiones remotas o como cliente.
ste permite hasta cuatro conexiones simultneas.
LiquidCrystal: Control de LCDs con chipset Hitachi HD44780 o compatibles.
La biblioteca soporta los modos de 4 y 8 bits.
Servo: Control de servomotores. A partir de la versin 0017 de Arduino, la
biblioteca soporta hasta 12 motores en la mayora de placas Arduino y 48 en
la Arduino Mega. Mediante la funcin attach(nmero de pin) aadimos un
servo, y mediante write se puede indicar el movimiento en grados que se
busca tenga el motor (habitualmente de 0 a 180).
Stepper: Control de motores paso a paso unipolares o bipolares, y que utiliza
las funciones:
Stepper(pasos, pin1, pin2)
Stepper(pasos, pin1, pin2, pin3, pin4)
setSpeed(rpm)
step(pasos)
27
Edificios Inteligentes
La funcin Stepper permite iniciar el motor, indicando los pasos que tiene y los
pines a los cuales est conectado. Se indica la velocidad a la que queramos
que gire en revoluciones por minuto con la funcin setSpeed(rpm) y se indican
los pasos que queremos que avance con la funcin step(pasos).
Wire: Envo y recepcin de datos sobre una red de dispositivos o sensores
mediante Two Wire Interface (TWI/I2C). Adems las bibliotecas Matrix y Sprite
de Wiring son totalmente compatibles con Arduino y sirven para el manejo
de matrices de leds.
28
Edificios Inteligentes
29
PRACTICAS
CON
ARDUINO
Edificios Inteligentes
Con
los
conocimientos
adquiridos
en
30
prcticas
anteriores,
Edificios Inteligentes
31