Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARDUINO Nivel 1 PDF
ARDUINO Nivel 1 PDF
2. PROGRAMACIÓN BÁSICA
La estructura básica del lenguaje de programación 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 mayúsculas y minúsculas y
colocando “ ; “ al finalizar la línea de comando.
La estructura básica es esta:
En el setup, entre los corchetes { } tenemos que indicar
los datos de configuración 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 sólo una vez al comenzar el programa,
mientras que lo que pongamos en el loop se va a repetir
indefinidamente.
La función bucle (loop) siguiente contiene el código que
se ejecutara continuamente (lectura de entradas,
void loop() activación de salidas, etc) Esta función es el núcleo 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!! Después 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 botón 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 próximo 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 número 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 señal digital ( 0 ó 1) en una de sus
entradas. Esta señal 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 señal 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 podría ser un pulsador, como en el próximo ejercicio o una puerta lógica, un sensor de luz con
su transistor,…
En esta práctica vamos a utilizar también la orden if que nos permite que el programa haga una cosa u
4. ORDEN if (condicional)
if es una función que se utiliza para probar si una determinada condición se ha alcanzado, como por
ejemplo averiguar si un valor analógico está por encima de un cierto número, y ejecutar una serie de
operaciones que se escriben dentro de llaves, si es verdad. Si es falso (la condición no se cumple) el
programa salta y no ejecuta las operaciones que están 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: SEMÁFORO CON PULSADOR.
Realiza un semáforo 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 conexión del pulsador al pin 8.
/*
03 Semaforo simple. Con pulsador, de modo que cuando le demos un pulso, se pone en marcha el semáforo, 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 comparación, o la condición entre paréntesis 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 escribiría que de esta manera:
if (inputPin == HIGH)
{
instruccionesA;
}
else
{
instruccionesB;
}
Else puede ir precedido de otra condición de manera que se pueden establecer varias estructuras
condicionales de tipo unas dentro de las otras (anidamiento) de forma que sean mutuamente excluyentes
pudiéndose ejecutar a la vez. Es incluso posible tener un
número ilimitado de estos condicionales. Recuerde sin embargo qué sólo un conjunto de declaraciones
se llevará a cabo dependiendo de la condición probada:
6. ORDEN for
La declaración for se usa para repetir un bloque de sentencias encerradas entre llaves un número
determinado de veces. Cada vez que se ejecutan las instrucciones del bucle se vuelve a testear la
condición. La declaración for tiene tres partes separadas por (;), vemos el ejemplo de su sintaxis:
{
digitalWrite(13, HIGH);
delay(250);
digitalWrite(13, LOW);
delay(250);
}