Está en la página 1de 10

I.E.S.

ZOCO (Crdoba)

Departamento de Tecnologa

PRACTICAS CON ARDUINO: Nivel 1


1. INTRODUCCIN
Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de
desarrollo, diseada para facilitar el uso de la electrnica.
Un microcontrolador es un circuito integrado programable, capaz de ejecutar las rdenes grabadas en su
memoria. Est compuesto de varios bloques funcionales, los cuales cumplen una tarea especfica. Un
microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad
central de procesamiento, memoria y perifricos de entrada/salida.
El hardware de Arduino consiste en una placa con un microcontrolador Atmel AVR y puertos de
entrada/salida. Consta de 13 puertos o conexiones digitales que pueden ser utilizados cono salidas o
entradas (aunque es aconsejable no utilizar la 0 y la 1). Cuando son utilizadas como salidas darn un 0 o un
1, y por tanto, 0 voltios o 5 voltios. Con esta tensin podemos controlar dispositivos electrnicos que
consuman poca energa, por ejemplo LED, un zumbador, o cualquier otro cuyo consumo sea inferior a 20
mA. Para controlar un motor, una lmpara, incluso un Rel, es necesario utilizar un transistor.
Tambin consta de 5 entradas analgicas que pueden recibir tensiones de 7 a 12 v, procedentes de
cualquier sensor que proporcione informacin del exterior a nuestro Arduino: temperatura, luminosidad,
humedad, velocidad, posicin,
La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el popular lenguaje de
programacin de alto nivel Processing. Sin embargo, es posible utilizar otros lenguajes de programacin y
aplicaciones populares en Arduino. Algunos ejemplos son: Java, Flash (mediante ActionScript), Processing,
Pure Data, MaxMSP (entorno grfico de programacin para aplicaciones musicales, de audio y multimedia),
VVVV (sntesis de vdeo en tiempo real), Adobe Director, Pitn, Ruby, C, C++ (mediante libSerial o en
Windows), Cocoa/Objective-C (para Mac OS X), Linux TTY (terminales de Linux), 3DVIA Virtools
(aplicaciones interactivas y de tiempo real), SuperCollider (sntesis de audio en tiempo real), Instant Reality
(X3D), Visual Basic .NET, VBScript, Gambas, Php,
Esto es posible debido a que Arduino se comunica mediante la transmisin de datos en formato serie que
es algo que la mayora de los lenguajes anteriormente citados soportan. Para los que no soportan el formato
serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por
ambas partes para permitir una comunicacin fluida. Es bastante interesante tener la posibilidad de
interactuar Arduino mediante esta gran variedad de sistemas y lenguajes puesto que dependiendo de
cuales sean las necesidades del problema que vamos a resolver podremos aprovecharnos de la gran
compatibilidad de comunicacin que ofrece.
Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser conectado a software
del ordenador (por ejemplo: Macromedia Flash, Processing, Max/MSP, Pure Data). Las placas se pueden
montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente.
Al ser open-hardware, tanto su diseo como su distribucin es libre. Es decir, puede utilizarse libremente
para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia.

Tema Programacin con Arcuino

J.A. Gonzlez

I.E.S. ZOCO (Crdoba)

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;
}

los datos de configuracin del programa. Por ejemplo que


pin o puerto vamos a utilizar, cuales son entradas y
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

void loop()
{
estamentos;
}
Tema Programacin con Arcuino

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.

J.A. Gonzlez

I.E.S. ZOCO (Crdoba)

Departamento de Tecnologa

PRCTICA 1. PROGRAMACIN BSICA: Activacin de una salida digital.


El LED conectado a la salida digital n 12 parpadea.
pinMode(patilla, modo). El modo puede ser INPUT (que es entrada) o OUTPUT (que es salida).
digitalWrite(patilla,valor). Escribe en una patilla un valor HIGH (que es alto) o LOW.
Dentro del setup (entre los corchetes), colocamos la orden

void setup()

pinMode. Con esta orden indicamos que la salida 12 ser una

Salida.

pinMode(12, OUTPUT);
}

Dentro del loop (entre los corchetes)


digitalWrite

void loop()
{
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(100);
}

escribe en la salida digital 12 un valor 1


Ojo!! Despus de cada orden hay que escribir

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.

Tema Programacin con Arcuino

J.A. Gonzlez

I.E.S. ZOCO (Crdoba)

Departamento de Tecnologa

PRCTICA 2. PROGRAMACIN BSICA: Activacin de una salida digital.


Se encienden alternativamente 3 LED.
Vamos a crear tres variables que asignaremos a cada una de las patillas donde hemos conectado los
LED.
Programa con las explicaciones iniciales que deben ir

/*

explicacin

*/

Si queremos hacer alguna explicacin en la linea de comando debe de ser despus de

//

/*

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

*/

int rojo = 12;


int amarillo = 11;
int verde = 10;

// 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);
}
void loop()
{
digitalWrite(rojo, HIGH);
delay(500);
digitalWrite(rojo, LOW);

// Escribe en la variable "rojo" un valor alto, un "1".


// Espera 0,5 segundos
// 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);
}

Tema Programacin con Arcuino

J.A. Gonzlez

I.E.S. ZOCO (Crdoba)

Tema Programacin con Arcuino

Departamento de Tecnologa

J.A. Gonzlez

I.E.S. ZOCO (Crdoba)

Departamento de Tecnologa

PRCTICA 3. REGULACIN DE UN CRUCE DE SEMFOROS.


Tenemos dos semforos con una luz roja, otra amarilla y otra verde. Llamaremos rojo1, amarillo1 y verde1 a
las luces de uno de los semforos y rojo2, amarillo2 y verde2 a las luces del otro. Piensa la secuencia lgica
de funcionamiento del sistema escrbela y posteriormente realiza el programa. Utiliza los siguientes pines,
creando las variables correspondientes.
pin 13 : LED Rojo1

pin 7 : LED Rojo2

pin 12 : LED Amarillo1

pin 6 : LED Amarillo2

pin 11 : LED Verde1

pin 5 : LED Verde2

PRCTICA 4. SOS CON ZUMBADOR.


Se trata de un zumbador que en cdigo morse (pitidos largos y cortos) emite una palabra, en nuestro caso
SOS. En cdigo morse la S se reproduce con 3 seales de corta duracin y la O con tres seales de larga
duracin.
El zumbador debe estar conectado al pin 13, los pitidos cortos tendrn una duracin de 100 ms y los largos
de 300 ms. Entre letra y letra debe pasar un tiempo de 300 ms y, entre SOS y SOS debe pasar un tiempo
de 1000 ms.

PRCTICA 5. EL COCHE FANTSTICO.


Se trata de encender y apagar 7 leds de forma secuencial. Los led van a estar conectados a los pines
5,6,7,8,9,10 y 11.
En primer lugar los led se deben encender del 5 al11, dejando pasar 50 milisegundos, al finalizar deben
comenzar a encenderse y apagarse del led 11 al 5. La secuencia debe repetirse indefinidamente. El efecto
del programa es el de la serie de televisin el coche fantstico.

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

otra en funcin de un dato o una entrada.

Tema Programacin con Arcuino

J.A. Gonzlez

I.E.S. ZOCO (Crdoba)

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)
}

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.
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
*/

Tema Programacin con Arcuino

J.A. Gonzlez

I.E.S. ZOCO (Crdoba)

int rojo = 13;

Departamento de Tecnologa

// Crea una variable llamada "rojo" y le asigna un valor 13

int amarillo = 12;


int verde = 11;
int pulsador = 8;
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".

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);
}
}
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.

Tema Programacin con Arcuino

J.A. Gonzlez

I.E.S. ZOCO (Crdoba)

Departamento de Tecnologa

5. ORDEN if .....else (si.sino.)


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:

if (inputPin < 500)


{
instruccionesA;
}
else if (inputPin >= 1000)
{
instruccionesB;
{
else
{
instruccionesC;
}
PRACTICA 6: SEMFORO CON PULSADOR Y ORDEN ifelse.
Repite la progrmacin anterior de modo que si se cierra el pulsador se pone en marcha la secuencia del
control de semforos. Si no pulsamos todos los led deben encenderse, permanecer unos instantes
encendidos y luego apagarse.

Tema Programacin con Arcuino

J.A. Gonzlez

I.E.S. ZOCO (Crdoba)

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.

Ej: En primer lugar se define la variable i y le da un valor 0.


Siempre que i sea menor que 20 se repite todo lo que pongamos dentro de los corchetes { }. Cuando se
han ejecutado las rdenes, se ejecuta la expresin i++ que suma 1 al valor de i. Si el valor de i continua
siendo menor de 20 se repite el proceso. Cuando i llega a valer 20 se para.
for (int i=0; i<20; i++)
{
digitalWrite(13, HIGH);
delay(250);
digitalWrite(13, LOW);
delay(250);
}
REPITE LA PRCTICA ZUMBADOR SOS UTILIZANDO LA ORDEN FOR
Debes lograr que el zumbador suene 3 veces seguidas para producir la letra S, otras 3 para producir la letra
O y otras tres la letra S.

Tema Programacin con Arcuino

J.A. Gonzlez

10

También podría gustarte