Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacin II Arduino
Sexto Ao Prof. Ral Tapia
Qu es 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.
Arduino no utiliza como entrada un teclado y como salida una pantalla (la configuracin ms
habitual en ordenadores), si no que se conecta directamente a su entorno fsico o a perifricos
que sern los que interactuarn con el entorno fsico. Arduino es un ordenador que enciende y
apaga luces, mueve cosas, mide temperaturas, presiones, emite sonidos y se comunica con otros
dispositivos. Estas capacidades requieren que los comandos con los que es programado sean
especficos para estas tareas de la misma forma que el C de consola tiene comandos especficos
para leer datos de un teclado y mostrar resultados por pantalla.
Para qu sirve Arduino? Arduino se puede utilizar para desarrollar elementos autnomos,
conectndose a dispositivos e interactuar tanto con el hardware como con el software. Nos sirve
tanto para controlar un elemento, pongamos por ejemplo un motor que nos suba o baje una
persiana basada en la luz existente es una habitacin, gracias a un sensor de luz conectado al
Arduino, o bien para leer la informacin de una fuente, como puede ser un teclado, y convertir
la informacin en una accin como puede ser encender una luz y pasar por un display lo
tecleado.
Qu Puede Hacer Arduino?
La respuesta es que puedes hacer/construir casi de todo. Arduino es una plataforma para
programar un microcontrolador y por lo tanto puede hacer todo lo que puede hacer una MCU,
todo depende de nuestra imaginacin.
Un arduino es un sistema autnomo programado que realiza una o varias tareas especficas.
Un arduino puede hacer las tareas de un autmata e intercambiar datos con un
SCADA (Supervisin, Control y Adquisicin de Datos). Arduino se ha popularizado en el mundo
maker dentro del movimiento DIY (hazlo t mismo), pero tambin vamos a plantearlo desde un
punto de vista profesional.
Para ver todo lo puede hacer Arduino, se puede buscar por los proyectos publicados en Internet
realizados con Arduino. Por ejemplo: http://www.instructables.com/id/Arduino-Projects/
Podemos usar Arduino como una herramienta de prototipos, para hacer un despliegue rpido
de una idea o medir de una manera objetiva resultados. Con Arduino tambin podemos hacer
Smart las cosas, es decir, que se conecten a internet. Podemos twittear, mandar correos,
publicar en otras redes sociales, poner datos en tiempo real en internet o en un servidor privado,
compartir su estado, interactuar con el entorno remotamente, etc
Programar Arduino consiste en traducir a lneas de cdigo las tareas automatizadas que
queremos hacer leyendo de los sensores y en funcin de las condiciones del entorno
programar la interaccin con el mundo exterior mediante unos actuadores.
1 void setup() {
2 // put your setup code here, to run once:
3 }
4
5 void loop() {
6 // put your main code here, to run repeatedly:
}
7
The setup() function is called when a sketch starts. Use it to initialize variables, pin
modes, start using libraries, etc. The setup function will only run once, after each
powerup or reset of the Arduino board.
Ejemplo
int buttonPin = 3;
void setup()
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop()
// ...
loop()
After creating a setup() function, which initializes and sets the initial values, the loop() function
does precisely what its name suggests, and loops consecutively, allowing your program to
change and respond. Use it to actively control the Arduino board.
Ejemplo
void setup()
Serial.begin(9600);
pinMode(buttonPin, INPUT);
// loop checks the button pin each time, and will send serial if it is pressed
void loop()
if (digitalRead(buttonPin) == HIGH)
Serial.write('H');
else
Serial.write('L');
delay(1000);
}
Comandos
El comando pinMode() sirve para establecer a cada pin de entrada o salida digital que vayamos
a utilizar el modo en el que lo haremos, es decir, declararemos un pin identificado por su nmero
como entrada o como salida.
El nmero del pin se puede introducir tal cual est serigrafiado en la placa (del 0 al 13) , pero es
muy recomendable introducirlo como una variable, constante o definicin con el valor
introducido previamente en la parte del Sketch en la que se hace la definicin de variables. Esto
nos permitir cambiar su valor sin tener que repasar todo el cdigo para cambiar el nmero de
pin de forma manual y en las ocasiones en las que trabajamos con cables y, por la razn que sea,
los queremos cambiar de pin resulta sumamente prctico.
Como modo pondremos OUTPUT o INPUT dependiendo de si queremos que el pin sea una salida
o una entrada digital. En maysculas, recordemos que en este lenguaje se hace distincin entre
maysculas y minsculas, si escribimos una palabra mal el compilador nos dar un error.
No cuesta nada declarar cada pin que utilice el Sketch como entrada o salida en el setup() y si lo
documentamos correctamente ganamos en claridad y limpieza.
Ej. pinMode (pulsador, INPUT); // declara el pin al que est conectado el pulsador como entrada
digitalWrite
El comando digitalWrite() sirve para establecer la salida digital en el pin que establezcamos. Para
el parmetro del nmero de pin digital sirve todo lo dicho en la explicacin del comando
pinMode(), mejor desde una variable, constante o definicin y por los mismos motivos. Este
comando slo admite dos estados HIGH o LOW, alto o bajo y que se corresponden con un 1
un 0. De hecho podramos introducir el comando de las siguientes formas:
El comando delay() detiene la ejecucin del Sketch durante el tiempo que le especifiquemos
expresado en milisegundos. Generalmente utilizaremos este comando de forma muy limitada
precisamente por esa caracterstica suya de detener completamente la ejecucin del Sketch. Es
til en algunos procesos de comunicacin para darle tiempo a un perifrico a que procese la
informacin que le mandamos y nos devuelva un resultado o para impedir rebotes en la lectura
de sensores, y en estos casos el intervalo de tiempo lo introduciremos de forma directa como
un nmero.
Dicho de otra forma seria la estructura bsica del lenguaje de programacin de Arduino es
bastante simple y se compone de al menos dos partes. Estas dos partes necesarias, o funciones,
encierran bloques que contienen declaraciones, estamentos o instrucciones.
void setup()
estamentos;
void loop()
estamentos;
La funcin bucle (loop) siguiente contiene el cdigo que se ejecutara continuamente (lectura de
entradas, activacin de salidas, etc) Esta funcin es el ncleo de todos los programas de Arduino
y la que realiza la mayor parte del trabajo.
setup() La funcin setup() se invoca una sola vez cuando el programa empieza. Se utiliza para
inicializar los modos de trabajo de los pins, o el puerto serie. Debe ser incluido en un programa
aunque no haya declaracin que ejecutar. As mismo se puede utilizar para establecer el estado
inicial de las salidas de la placa.
void setup()
{
pinMode(pin, OUTPUT); // configura el 'pin' como
salida
digitalWrite(pin, HIGH); // pone el pin en estado
// HIGH
}
loop()
Despues de llamar a setup(), la funcion loop() hace precisamente lo que sugiere su
nombre, se ejecuta de forma ciclica, lo que posibilita que el programa este
respondiendo continuamente ante los eventos que se produzcan en la placa.
void loop()
{
digitalWrite(pin, HIGH); // pone en uno (on, 5v) elpin
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin, LOW); // pone en cero (off, 0v.) el
delay(1000); // pin
}
{} entre llaves
Las llaves sirven para definir el principio y el final de un bloque de instrucciones. Se
utilizan para los bloques de programacin setup(), loop(), if.., etc.
type funcion()
{
instrucciones;
}
Una llave de apertura { siempre debe ir seguida de una llave de cierre }, si no es asi
el compilador dar errores. El entorno de programacin de Arduino incluye una
herramienta de gran utilidad para comprobar el total de llaves. Solo tienes que hacer
click en el punto de insercin de una llave abierta e inmediatamente se marca el
correspondiente cierre de ese bloque (llave cerrada).
; punto y coma