Está en la página 1de 9

Instituto Fermn Naudeua

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.

Por otro lado Arduino nos proporciona un software consistente en un entorno de


desarrollo (IDE) que implementa el lenguaje de programacin de arduino y el bootloader
ejecutado en la placa. La principal caracterstica del software de programacin y del lenguaje de
programacin es su sencillez y facilidad de uso.

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

Entornos de Aplicacin Arduino

Arduino se ha popularizado por el creciente movimiento del DIY


(https://es.wikipedia.org/wiki/H%C3%A1galo_usted_mismo, https://en.wikipedia.org/
wiki/Do_it_yourself), como un elemento barato para hacer pequeos proyectos de
bricolaje, pero arduino va ms all.

Existen multitud de entornos de aplicacin de Arduino: automatizacin industrial,


domtica, herramienta de prototipado, plataforma de entrenamiento para aprendizaje
de electrnica, tecnologa para artistas, eficiencia energtica, monitorizacin,
adquisicin de datos, DIY, aprendizaje de habilidades tecnolgicas y programacin, etc

En la educacin tanto en institutos en secundaria y bachillerato como en formacin


profesional y la universidad, Arduino ha entrado con mucha fuerza para entrenar
habilidades y como herramienta pedaggica. Robtica es otros de los entornos donde
es muy usado, incluso ya hay un arduino robot: http://arduino.cc/en/Main/Robot o kits
de robtica.
La programacin de Arduino es la programacin de un microcontrolador. Esto era algo
ms de los ingenieros electrnicos, pero Arduino lo ha extendido a todo el pblico. Arduino
ha socializado la tecnologa.

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.

Arduino proporciona un entorno de programacin sencillo y potente para programar, pero


adems incluye las herramientas necesarias para compilar el programa y quemar el
programa ya compilado en la memoria flash del microcontrolador. Adems el IDE nos ofrece
un sistema de gestin de libreras y placas muy prctico. Como IDE es un software sencillo
que carece de funciones avanzadas tpicas de otros IDEs, pero suficiente para programar.

Estructura de un Sketch: Un programa de Arduino se denomina sketch o proyecto y tiene


la extensin .ino. Importante: para que funcione el sketch, el nombre del fichero debe estar
en un directorio con el mismo nombre que el sketch. No es necesario que un sketch est en
un nico fichero, pero si es imprescindible que todos los ficheros estn dentro del mismo
directorio que el fichero principal.

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

La estructura bsica de un sketch de Arduino es bastante simple y se compone de al menos


dos partes. Estas dos partes son obligatorios y encierran bloques que contienen
declaraciones, estamentos o instrucciones.

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

const int buttonPin = 3;

// setup initializes serial and the button pin

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

Ej. digitalWrite (nmero-de-pin, estado);

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:

digitalWrite(pin, HIGH); // la forma correcta de hacerlo

digitalWrite(pin, 1); // no es nada conveniente hacerlo as

digitalWrite(pin, estado); // donde estado es una variable

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;

En donde setup() es la parte encargada de recoger la configuracin y loop() es la que contienen


el programa que se ejecutar cclicamente (de ah el termino loop bucle-). Ambas funciones
son necesarias para que el programa trabaje.

La funcin de configuracin debe contener la declaracin de las variables. Es la primera funcin


a ejecutar en el programa, se ejecuta slo una vez, y se utiliza para configurar o inicializar
pinMode (modo de trabajo de las E/S), configuracin de la comunicacin en serie y otras.

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
}

Una funcin es un bloque de cdigo que tiene un nombre y un conjunto de instrucciones


que son ejecutadas cuando se llama a la funcin. Son funciones seta () y loor () de las
que ya se ha hablado.
Las funciones de usuario pueden ser escritas para realizar tareas repetitivas y para
reducir el tamao de un programa. Las funciones se declaran asociadas a un tipo de
valor. Este valor ser el que devolver la funcin, por ejemplo 'int' se utilizara cuando la
funcin devuelva un dato numrico de tipo entero. Si la funcin no devuelve ningn
valor entonces se colocara delante la palabra void, que significa funcin vaca.
Despus de declarar el tipo de dato que devuelve la funcin se debe escribir el nombre
de la funcin y entre parntesis se escribirn, si es necesario, los parmetros que se
deben pasar a la funcin para que se ejecute.
tipo nombre Funcin(parmetros)
{
Instrucciones;
}

{} 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

El punto y coma ; se utiliza para separar instrucciones en el lenguaje de


programacin de Arduino. Tambin se utiliza para separar elementos en una
instruccin de tipo bucle for.

int x = 13; // declara la variable 'x' como tipo


// entero de valor 13
Nota: Si olvidis poner fin a una lnea con un punto y coma se producir en un error de
compilacin. El texto de error puede ser obvio, y se referir a la falta de un punto y coma,
o puede que no. Si se produce un error raro y de difcil deteccin lo primero que
debemos hacer es comprobar que los puntos y comas estn colocados al final de las
instrucciones.
ELEMENTOS
// lnea de comentarios
Una lnea de comentario empieza con / / y terminan con la siguiente lnea de cdigo. Al
igual que los comentarios de bloque, los de lnea son ignoradas por el programa y no
ocupan espacio en la memoria.
// esto es un comentario
Una lnea de comentario se utiliza a menudo despus de una instruccin, para
proporcionar ms informacin acerca de lo que hace esta o para recordarla ms
adelante.
variables
Una variable es una manera de nombrar y almacenar un valor numrico para su uso
posterior por el programa. Como su nombre indica, las variables son nmeros que se
pueden variar continuamente en contra de lo que ocurre con las constantes cuyo valor
nunca cambia. Una variable debe ser declarada y, opcionalmente, asignarle un valor. El
siguiente cdigo de ejemplo declara una variable llamada variableEntrada y luego le
asigna el valor obtenido en la entrada analgica del PIN2:
int variableEntrada = 0; // declara una variable y le asigna el valor 0
variableEntrada = analogRead(2); // la variable recoge el valor analgico del PIN2

'variableEntrada' es la variable en s. La primera lnea declara que ser de tipo entero


int. La segunda lnea fija a la variable el valor correspondiente a la entrada analgica
PIN2. Esto hace que el valor de PIN2 sea accesible en otras partes del cdigo.
Una vez que una variable ha sido asignada, o re-asignada, usted puede probar su valor
para ver si cumple ciertas condiciones, o puede utilizar directamente su valor. Como
ejemplo ilustrativo veamos tres operaciones tiles con variables:

el siguiente cdigo prueba si la variable entradaVariable es inferior a 100, si es cierto


se asigna el valor 100 a entradaVariable y, a continuacin, establece un retardo (delay)
utilizando como valor entradaVariableque ahora ser como mnimo de valor 100:

if (entradaVariable < 100) // pregunta si la variable es menor de 100


{
entradaVariable = 100; // si es cierto asigna el valor 100
}
delay(entradaVariable); // usa el valor como retardo
Nota: Las variables deben tomar nombres descriptivos, para hacer el cdigo ms legible.
Los nombres de variables pueden ser contactoSensor o pulsador, para ayudar al
programador y a cualquier otra persona a leer el cdigo y entender lo que representa la
variable. Nombres de variables como var o valor, facilitan muy poco que el cdigo
sea inteligible. Una variable puede ser cualquier nombre o palabra que no sea una
palabra reservada en el entorno de Arduino.

También podría gustarte