Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ZOCO (Crdoba)
Departamento de Tecnologa
J.A. Gonzlez
Departamento de Tecnologa
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
void setup()
{
estamentos;
}
void loop()
{
estamentos;
}
Tema Programacin con Arcuino
se ejecutara continuamente
(lectura
de entradas,
J.A. Gonzlez
Departamento de Tecnologa
void setup()
Salida.
pinMode(12, OUTPUT);
}
void loop()
{
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(100);
}
delay
Hace esperar al programa 500 milisegundos ( o sea 0,5
segundos)
Repite la orden y escribe un valor 0 en el pin 12. Espera 0,1
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.
J.A. Gonzlez
Departamento de Tecnologa
/*
explicacin
*/
//
/*
02 Salidas Digitales
Los tres led parpadean formando una secuencia Rojo, Amarillo y Verde.
Instrucciones :
Debemos utilizar el punto y coma " ; " al final de cada declaracin separando los elementos del probrama.
Con la orden int creamos una variable, por ejemplo la variable "rojo" y le asignamos un valor, por ejemplo valor "12".
Si la variable queremos que est disponible para todo el programa debe de crearse ANTES del setup(). Tambin podemos
crear variables que slo afecten a una parte del programa.
Es necesario escribir las ordenes correctamente. NO pinmode sino pinMode.
Si est bien escrito aparece en color marrn.
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.
Jos Antonio Gonzlez
*/
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);
delay(500);
digitalWrite(rojo, LOW);
digitalWrite(amarillo, HIGH);
delay(500);
digitalWrite(amarillo, LOW);
digitalWrite(verde, HIGH);
delay(500);
digitalWrite(verde, LOW);
}
J.A. Gonzlez
Departamento de Tecnologa
J.A. Gonzlez
Departamento de Tecnologa
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
J.A. Gonzlez
Departamento de Tecnologa
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)
}
/*
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.
ORDEN IF(SI Condicional)
If (concicioon)
"corchete"
ejecutamos las instrucciones entre corchetes
"corchete"
Conexiones:
pin 13 : LED Rojo
pin 12 : LED Amarillo
pin 11 : LED Verde
pin 8 : Pulsador
Crearemos las variables rojo, amarillo ,verde y pulsador y les asignaremos el nmero de pin.
Jos Antonio Gonzlez
*/
J.A. Gonzlez
Departamento de Tecnologa
// 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);
delay(500);
digitalWrite(rojo, LOW);
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.
J.A. Gonzlez
Departamento de Tecnologa
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
nmero ilimitado de
J.A. Gonzlez
Departamento de Tecnologa
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:
for (inicializacin; condicin; expresin)
{ Instrucciones;
}
La inicializacin de una variable local se produce una sola vez y la condicin se testea cada vez que se
termina la ejecucin de las instrucciones dentro del bucle. Esta condicin puede ser que una entrada est
activa, que un final de carrera est pulsado,
Mientras que la condicin sigue cumplindose, las instrucciones del bucle se vuelven a ejecutar. Cuando la
condicin no se cumple, el bucle termina.
En la expresin podemos colocar un parmetro que determine cuantas veces va a repetirse el bucle.
J.A. Gonzlez
10