Вы находитесь на странице: 1из 9

{} 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.
Una llave de apertura { siempre debe ir seguida de una llave de cierre }, si no es as el
compilador dar errores. El entorno de programacin de Arduino incluye una herramienta de gran
utilidad para comprobar el total de llaves. Slo 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).
Ejemplo:

; 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.
Ejemplo:

/* */ bloque de comentarios
Los bloques de comentarios, o comentarios multi-lnea son reas de texto ignorados por el
programa que se utilizan para las descripciones del cdigo o comentarios que ayudan a
comprender el programa. Comienzan con / * y terminan con * / y pueden abarcar varias lneas.
Debido a que los comentarios son ignorados por el compilador y no ocupan espacio en la memoria
de Arduino pueden ser utilizados con generosidad.
Ejemplo:

// 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.
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.
Ejemplo:

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.
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.
Ejemplo:

loop()
Despus de llamar a setup(), la funcin loop() hace precisamente lo que sugiere su nombre, se
ejecuta de forma cclica, lo que posibilita que el programa este respondiendo continuamente ante
los eventos que se produzcan en la placa.
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.
Ejemplo:

Variables
Una variable es un lugar donde almacenar un dato y se caracteriza por tener un nombre, un valor y
un tipo.
Los nombres de variables pueden tener letras, nmeros y el smbolo _. Deben empezar por una
letra (pueden empezar por _ pero no es recomendable pues es el criterio que usan las rutinas de
la biblioteca). Pueden llevar maysculas y minsculas. El C distingue entre maysculas y
minsculas.
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.
Usa las mismas reglas dentro del cdigo para el nombramiento de variables, ya sea en minscula
con palabras separadas con guiones bajos, tantos como sea necesario para mejorar la legibilidad.
Las palabras reservadas if, else no pueden usarse como nombres de variables.
Nombres para evitar: Nunca uses los caracteres l (letra ele en minscula), O (letra o mayscula),
o I (letra i mayscula) como simples caracteres para nombres de variables, para evitar
confusiones a la hora de leer el cdigo.
Ejemplo:
El siguiente cdigo de ejemplo declara una variable llamada variable Entrada y luego le asigna el valor
obtenido en la entrada analgica 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
entradaVariable que ahora ser como mnimo de valor 100:

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.

Declaracin de variables.
Todas las variables tienen que declararse antes de que puedan ser utilizadas. Para declarar una
variable se comienza por definir su tipo como int (entero), long (largo), float (coma flotante), etc.
asignndoles siempre un nombre, y, opcionalmente, un valor inicial. Esto slo debe hacerse una
vez en un programa, pero el valor se puede cambiar en cualquier momento usando aritmtica y
reasignaciones diversas.
El siguiente ejemplo declara la variable entradaVariable como una variable de tipo entero int, y
asignndole un valor inicial igual a cero. Esto se llama una asignacin.

Una variable puede ser declarada en una serie de lugares del programa y en funcin del lugar en
donde se lleve a cabo la definicin esto determinar en que partes del programa se podr hacer
uso de ella.

Utilizacin de una variable.


Una variable puede ser declarada al inicio del programa antes de la parte de configuracin setup(),
a nivel local dentro de las funciones, y, a veces, dentro de un bloque, como para los bucles del tipo
if.. for.., etc. En funcin del lugar de declaracin de la variable as se determinar el mbito de
aplicacin, o la capacidad de ciertas partes de un programa para hacer uso de ella.
Una variable global es aquella que puede ser vista y utilizada por cualquier funcin y estamento
de un programa. Esta variable se declara al comienzo del programa, antes de setup().
Recordad que, al declarar una variable global, est un espacio en memoria permanente en la zona
de static data y el abuso de variables globales supone un uso ineficiente de la memoria.
Una variable local es aquella que se define dentro de una funcin o como parte de un bucle. Slo
es visible y slo puede utilizarse dentro de la funcin en la que se declar. Por lo tanto, es posible
tener dos o ms variables del mismo nombre en diferentes partes del mismo programa que pueden
contener valores diferentes, pero no es una prctica aconsejable porque complica la lectura de
cdigo.
El modificador de variable static, es utilizado para crear variables que solo son visibles dentro de
una funcin, sin embargo, al contrario que las variables locales que se crean y destruyen cada vez
que se llama a la funcin, las variables estticas mantienen sus valores entre las llamadas a las
funciones.
La variables estticas solo se crean e inicializan la primera vez que la funcin es llamada.

El siguiente ejemplo muestra cmo declarar a unos tipos diferentes de variables y la visibilidad de
cada variable:

Tipos de datos.

byte Byte almacena un valor numrico de 8 bits sin decimales. Tienen un rango entre 0 y 255.
Sin signo.

int Enteros son un tipo de datos primarios que almacenan valores numricos de 16 bits sin
decimales comprendidos en el rango 32,767 a -32,768.

Nota: Las variables de tipo entero int pueden sobrepasar su valor mximo o mnimo como
consecuencia de una operacin. Por ejemplo, si x = 32767 y hacemos x++, entonces x pasar a
ser -32.768. (algo as como que el valor da la vuelta).

Las constantes enteras son nmeros utilizados en el sketch, estos nmeros son tratados como
enteros, pero podemos cambiar su comportamiento
Las constantes enteras son tratadas como base 10 (Decimal), pero con una notacin especial
podemos cambiar su representacin en otras bases.

Binario B00001110

Octal 0173

Hexadecimal 0x7C3

Para forzar a formato unsigned: 78U 78u

Para forzar a formato long: 1000L 1000l

Para forzar a formato unsigned long: 2521UL 2521ul.

long El formato de variable numrica de tipo extendido long se refiere a nmeros enteros (tipo
32 bits = 4 bytes) sin decimales que se encuentran dentro del rango -2147483648 a 2147483647.

float El formato de dato del tipo coma flotante o float se aplica a los nmeros con decimales.
Los nmeros de coma flotante tienen una mayor resolucin que los de 32 bits que ocupa con un
rango comprendido 3.4028235E+38 a -3.4028235E+38.

Nota: Los nmeros de punto flotante no son exactos, y pueden producir resultados
extraos en las comparaciones. Los clculos matemticos de coma flotante son tambin
mucho ms lentos que los del tipo de nmeros enteros, por lo que debe evitarse su uso si
es posible. En Arduino el tipo de dato double es igual que el float.
boolean Un booleano solo tiene dos valores true y false. Cada booleano ocupa un byte de
memoria.
char Un char representa un carcter que ocupa 1 byte de memoria. Los caracteres simples se
representan con comillas simples a y para mltiples caracteres o strings se representan con
comillas dobles Hola!.
Recordar que los caracteres se almacenan como nmeros usando la codificacin ASCII, lo que
significa que es posible hacer operaciones aritmticas con los caracteres.

Arrays Un array es un conjunto de valores a los que se accede con un nmero ndice. Cualquier
valor puede ser recogido haciendo uso del nombre de la matriz y el nmero del ndice. El primer
valor de la matriz es el que est indicado con el ndice 0, es decir el primer valor del conjunto es el
de la posicin 0. Un array tiene que ser declarado y opcionalmente asignados valores a cada
posicin antes de ser utilizado.

Del mismo modo es posible declarar un array(matriz) indicando el tipo de datos y el tamao y
posteriormente, asignar valores a una posicin especfica:

Para leer de un array basta con escribir el nombre y la posicin a leer:

Las matrices se utilizan a menudo para estamentos de tipo bucle, en los que la variable de
incremento del contador del bucle se utiliza como ndice o puntero del array. El siguiente ejemplo
usa una matriz para el parpadeo de un LED.
Utilizando un bucle tipo for, el contador comienza en cero 0 y escribe el valor que figura en la
posicin de ndice 0 en la serie que realizada sigue escribiendo en las siguientes posiciones. Con
un bucle for podremos recorrer un array ya sea para leerlo o para escribir en l.

Utilizando un bucle tipo for, el contador comienza en cero 0 y escribe el valor que figura en la
posicin de ndice 0 en la serie que hemos escrito dentro del array parpadeo[], en este caso 180,
que se enva a la salida analgica tipo PWM configurada en el PIN10, se hace una pausa de 200
ms y a continuacin se pasa al siguiente valor que asigna el ndice i.

Utilizando un bucle tipo for, el contador comienza en cero 0 y escribe el valor que figura en la
posicin de ndice 0 en la serie que realizada sigue escribiendo en las siguientes posiciones. Con
un bucle for podremos recorrer un array ya sea para leerlo o para escribir en l.

No se puede crear un array sin definir su tamao, sino da un error de compilacin. Los Arrays slo
pueden contener elementos del mismo tipo de datos. Si quisiramos guardar tipos de datos
diferentes en una misma variable
string Es un array de chars.

Cuando se trabaja con grandes cantidades de texto, es conveniente usar un


array de strings. Puesto que los strings son en s mismo arrays.
String Se trata de una clase que permite usar y manipular cadenas de texto de una forma ms
sencilla que los strings. Puedes concatenar, aadir, buscar, etc usando los mtodos/funciones
que ofrece esta clase.

Los Strings tienen un uso intensivo de memoria, pero son muy tiles.
Tener en cuenta que al no ser un tipo de dato propiamente dicho sino una clase, tienes unas
funciones asociadas (mtodos), operadores y unas propiedades. Es una abstraccin del dato y
para saber usarlo hay que leerse la documentacin correspondiente.