MANUAL DE PROGRAMACIÓN DE ARDUINO:

En este manual se describen las caracteristicas básicas de la placa Arduino y se muestran las principales consideraciones para realizar su programación.

CARACTERÍSTICAS GENERALES DE LA PLACA

Se trata de una placa open hardware por lo que su diseño es de libre distribución y utilización, que incluso podemos construirnos nosotros mismos. en la siguiente web puede encontrarse mucha información relativa a la placa : http://arduino.cc/
El programa se implementará haciendo uso del entorno de programación propio de arduino y se transferirá empleando un cable USB, Si bien en el caso de la placa USB no es preciso utilizar una fuente de alimentación externa, ya que el propio cable USB la proporciona,  para la realizacion de algunos de los experimentos prácticos sí que será necesario disponer de una fuente de alimentación externa ya que la alimentación proporcionada por el USB puede no ser suficiente. El voltaje de la fuente puede estar entre 6 y 25 Voltios.

ENTORNO DE DESARROLLO

Para programar la placa es necesario descargarse de la página web de Arduino el entorno de desarrollo (IDE). se dispone de versiones para Windows y para MAC, así como las fuentes para compilarlas en LINUX. en la figura se muestra el aspecto del entorno de programación. En el caso de disponer de una placa USB es necesario instalar los drivers FTDI. Estos drivers vienen incluidos en el paquete de Arduino mencionado anteriormente. Existen en la web versiones para distintos sistemas operativos.


ESTRUCTURA BÁSICA DE UN PROGRAMA:
La estructura básica de programación de Arduino es bastante simple y divide la ejecución en dos partes: SETUP y LOOP.
Setup() constituye la preparación del programa y loop() es la ejecución. En la funcion Setup() se incluye la declaración de variables y se trata de la primera funcion que se ejecuta en el programa. Esta función se ejecuta una única vez y es empleada para configurar el pinMode ( si un determinado pin digital es de entrada o salida ) e inicializar la comunicación serie. la función loop() incluye el codigo a ser ejecutado continuamente ( leyendo las entradas de la placa, salidas, etc. ).

void setup() {
 inMode(pin, OUTPUT);                  //establece 'pin' como salida
}
void loop() {
 digitalWrite(pin, HIGH);                //Activa 'pin'
 delay(1000);                                   //Pausa un segundo
 digitalWrite(pin, LOW);                // desactiva 'pin'
 delay(1000);
}
Como se observa en este bloque de código cada instrucción acaba con ; y los comentarios se indican con //. Al igual que en C se pueden introducir bloques de comentarios con /* ... */.


FUNCIONES:

Una función es un bloque de código identificado por un nombre y que es ejecutado cuando la función es llamada. La declaración de una función incluye en primer lugar el tipo de datos que devuelve la función: int: entero. String: variable
int v;                        //crea una variable temporal 'v'
v = analogRead(pot);                    //lee el valor del potenciometro
v / = 4;                     //convierte los valores 0-1023 a 0-255
return v;                   // devuelve el valor final de la variable
}


VARIABLES:

Una variable debe ser declarada y opcionalmente asignada a un determinado valor. En la declaración de la variable se indica el tipo de datos que almacenará ( int, float, long )
int inputVariable = 0;

Una variable puede ser declarada en el inicio del programa antes de setup (), localmente a una determinada función e incluso dentro de un bloque como pueda ser un bucle. El sitio en el que la variable es declarada determina el ámbito de la misma. Una variable global es aquella que puede ser empleada en cualquier función del programa. Estas variables deben ser declaradas al inicio del programa (antes de la función setup() ).
int v;                          // 'v' es visible en todo el programa
void setup() {
                                 // no se requiere 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 función loop ()
}


TIPOS DE DATOS:
Arduino permite manejar los siguientes tipos de datos:
*Byte. Almacena un valor numérico de 8 bits. Tienen un rango de 0-255.
*Int. Almacena un valor entero de 16 bits con un rango de 32,767 a -32,768.
*Long. Valor entero almacenado en 32 bits con un rango de 2,147,483,647 a -2,147,483,648.
*Float. Tipo coma flotante almacenado en 32 bits con un rango de 3.4028235E+38 a -3.4028235E+38.
*Arrays. Se trata de una colección de valores que pueden ser accedidos con un número de índice ( el primer valor del índice es 0). Ejemplos de utilización:
definición y asignación. int myArray[]= {value0, value1, value2...}
definicion. int myArray[5];// declara un array de 6 enteros
asignacion del cuarto componente. myArray[3] = 10;
recuperar el cuarto componente y asignarlo a x. x = myArray[3];


SENTENCIAS CONDICIONALES:
El lenguaje de arduino permite realizar sentencias condicionales if, if.... else, for, while, do... while. Su utilización es similar a las funciones correspondientes en C.