Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2. PROGRAMACIN BSICA
La estructura bsica del lenguaje de programacin de Arduino es bastante simple y se compone de al
menos dos partes. Ambas funciones son necesarias para que el programa trabaje.
Hay que ser muy cuidadoso y escribir los comandos exactamente, reSpetando maysculas y minsculas y
colocando ; al finalizar la lnea de comando.
La estructura bsica es esta:
En el setup, entre los corchetes { } tenemos que indicar
los datos de configuracin del programa. Por ejemplo que
void setup()
{ pin o puerto vamos a utilizar, cuales son entradas y
estamentos; cuales salidas, cuales son las variables
} El setup se ejecuta slo una vez al comenzar el programa,
mientras que lo que pongamos en el loop se va a repetir
indefinidamente.
La funcin bucle (loop) siguiente contiene el cdigo que
se ejecutara continuamente (lectura de entradas,
void loop() activacin de salidas, etc) Esta funcin es el ncleo de
{
todos los programas de Arduino y la que realiza la
estamentos;
} mayor parte del trabajo.
void setup() pinMode. Con esta orden indicamos que la salida 12 ser una
{ Salida.
pinMode(12, OUTPUT);
Dentro del loop (entre los corchetes)
}
digitalWrite
escribe en la salida digital 12 un valor 1
void loop()
Ojo!! Despus de cada orden hay que escribir ;
{
delay
digitalWrite(12, HIGH);
Hace esperar al programa 500 milisegundos ( o sea 0,5
delay(500);
segundos)
digitalWrite(12, LOW);
Repite la orden y escribe un valor 0 en el pin 12. Espera 0,1
delay(100); segundo.
} Repite el programa indefinidamente.
Una vez escrito el programa pulsamos el botn verificar, para detectar errores de escritura. Si no hay
ninguno conectamos arduino al ordenador y pulsamos cargar para que lo ejecute.A los programas se les
suele poner un texto que explica como funcionan. El prximo programa que realicemos lo tendr. Pero hay
que tener mucho cuidado y escribir el texto adecuadamente para que no de error.
Conexiones:
pin 12 : LED Rojo
pin 11 : LED Amarillo
pin 10 : LED Verde
Crearemos las variables rojo, amarillo y verde y les asignaremos el nmero de pin.
void setup()
{
pinMode(rojo, OUTPUT); // Indica que la variable " rojo " es una salida de arduino, y por tanto el pin 13 es una salida.
pinMode(amarillo, OUTPUT);
pinMode(verde, OUTPUT);
}
void loop()
{
digitalWrite(rojo, HIGH); // Escribe en la variable "rojo" un valor alto, un "1".
delay(500); // Espera 0,5 segundos
digitalWrite(rojo, LOW); // Escribe en la variable "rojo" un valor bajo, un "0".
digitalWrite(amarillo, HIGH);
delay(500);
digitalWrite(amarillo, LOW);
digitalWrite(verde, HIGH);
delay(500);
digitalWrite(verde, LOW);
3. ENTRADAS DIGITALES
Es muy importante saber como podemos introducir en arduino una seal digital ( 0 1) en una de sus
entradas. Esta seal puede proceder de un final de carrera, un sensor de luz, un pulsador,En primer lugar
debemos configurar el pin que vamos a utilizar como entrada en el programa pero es FUNDAMENTAL que
la seal de entrada procedente del exterior sea de 5 voltios y tenga una resistencia de 10 K conectada a
tierra o 0 voltios. As evitamos cortocircuitos. Ojo porque podemos quemar el microprocesador
El interruptor podra ser un pulsador, como en el prximo ejercicio o una puerta lgica, un sensor de luz con
su transistor,
En esta prctica vamos a utilizar tambin la orden if que nos permite que el programa haga una cosa u
4. ORDEN if (condicional)
if es una funcin que se utiliza para probar si una determinada condicin se ha alcanzado, como por
ejemplo averiguar si un valor analgico est por encima de un cierto nmero, y ejecutar una serie de
operaciones que se escriben dentro de llaves, si es verdad. Si es falso (la condicin no se cumple) el
programa salta y no ejecuta las operaciones que estn dentro de las llaves. El formato para if es el
siguiente:
if (x==HIGH)
{
pinWrite(10, LOW)
}
Si la variable x tiene un valor igual a HIGH o 5 voltios entonces pon en el pin 10 un 0.
Otro ejemplo:
If( digitalRead(10)==HIGH)
{
pinWrite(13, LOW)
}
PRACTICA 5: SEMFORO CON PULSADOR.
Realiza un semforo con un pulsador de modo que hasta que no lo pongamos a 5 voltios (un 1) no se
pondr en marcha el programa. Ojo con la conexin del pulsador al pin 8.
/*
03 Semaforo simple. Con pulsador, de modo que cuando le demos un pulso, se pone en marcha el semforo, hasta que no le demos
otro no volver a funcionar.
*/
int rojo = 13; // Crea una variable llamada "rojo" y le asigna un valor 13
void setup()
{
pinMode(rojo, OUTPUT); // Indica que la variable " rojo " es una salida de arduino, y por tanto el pin 13 es una salida.
pinMode(amarillo, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(pulsador, INPUT);
}
void loop()
{
if (digitalRead(pulsador) == HIGH)
{
digitalWrite(rojo, HIGH); // Escribe en la variable "rojo" un valor alto, un "1".
digitalWrite(amarillo, HIGH);
delay(500);
digitalWrite(amarillo, LOW);
digitalWrite(verde, HIGH);
delay(500);
digitalWrite(verde, LOW);
}
}
En el ejemplo anterior se compara una variable con un valor, el cual puede ser una variable o constante. Si
la comparacin, o la condicin entre parntesis se cumple (es cierta), las declaraciones dentro de los
corchetes se ejecutan. Si no es as, el programa salta sobre ellas y sigue.
if else viene a ser un estructura que se ejecuta en respuesta a la idea si esto no se cumple haz esto
otro. Por ejemplo, si se desea probar una entrada digital, y hacer una cosa si la entrada fue alto o hacer
otra cosa si la entrada es baja, usted escribira que de esta manera:
if (inputPin == HIGH)
{
instruccionesA;
}
else
{
instruccionesB;
}
Else puede ir precedido de otra condicin de manera que se pueden establecer varias estructuras
condicionales de tipo unas dentro de las otras (anidamiento) de forma que sean mutuamente excluyentes
pudindose ejecutar a la vez. Es incluso posible tener un
nmero ilimitado de estos condicionales. Recuerde sin embargo qu slo un conjunto de declaraciones
se llevar a cabo dependiendo de la condicin probada:
6. ORDEN for
La declaracin for se usa para repetir un bloque de sentencias encerradas entre llaves un nmero
determinado de veces. Cada vez que se ejecutan las instrucciones del bucle se vuelve a testear la
condicin. La declaracin for tiene tres partes separadas por (;), vemos el ejemplo de su sintaxis:
{
digitalWrite(13, HIGH);
delay(250);
digitalWrite(13, LOW);
delay(250);
}