Está en la página 1de 6

Leccin 1: Conceptos generales y salidas

digitales
En esta leccin encenderemos un led situado en una de las salidas de nuestra tarjeta Arduino y
aprovecharemos para introducirnos en algunos de los conceptos generales de la programacin
de los equipos Arduino.
Para llevar a cabo esta leccin utilizaremos un proyecto de Proteus basado en la tarjeta de
desarrollo "Arduino328" con el shield "Led Bar". En la seccin simulacin encontrar toda la
informacion necesaria para crear el proyecto con esta tarjeta y este shield y los conceptos
bsicos de la simulacin de Arduino utilizando Proteus.
Por supuesto, si usted dispone de la tarjeta de desarrollo de hardware y las herramientas de
programacin tambin podr utilizarlos para seguir esta leccin. Nosotros hemos optado por
utilizar el simulador en todas nuestras lecciones por la comodidad que esto supone.
El esquema electrnico de nuestro equipo, con la placa base y el shield, se recoge en la imagen
siguiente. Recuerde que los terminales del mismo nombre estn elctricamente unidos. As, que
el terminal 1 de la barra de led est elctricamente enlazado con el pin 17 del microprocesador
ATMEGA328P, porque ambos estn unidos a un terminal del mismo nombre, IO11.

Al crear el proyecto, Proteus genera automticamente para nosotros la estructura bsica de


nuestro cdigo fuente. Slo utilizaremos un fichero llamado Main.ino donde se albergar toda la
lgica de nuestro primer proyecto.

Por defecto, el editor nos presenta de color verde los comentarios. Los comentarios son
ignorados por el programa y no ocupan espacio en la memoria.
El comentario puede ocupar una sola lnea o un bloque formado por varias lneas. Para escribir
un comentario de una lnea utilizamos los caracteres // seguidos del texto que deseamos. Una
lnea de comentario puede empezar en una columna distinta de la primera, pero siempre termina
en la siguiente lnea de cdigo. Por ejemplo, en nuestro cdigo las lneas de comentario situadas
en las lneas de cdigo 9 y 13 no empiezan al principio. El compilador ejecutar el cdigo de la
lnea hasta encontrar los caracteres // e ignorar todo lo que siga a partir de ah considerndolo
un comentario.
Para escribir un bloque de comentarios que ocupe ms de una lnea, insertamos el texto del
comentario entre el cdigo de inicio /* y el cdigo de fin */. En nuestro ejempo, las lneas de
cdigo 1 a 6 son un bloque de comentarios.
Los comentarios ayudan a escribir informacin que facilita la interpretacin de lo que realiza
cada parte de nuestro programa facilitando la depuracin del mismo cuando ha transcurrido un
tiempo o cuando lo lee una persona diferente a quien los escribi.
Adems de los comentarios, el cdigo contiene dos funciones. Una llamada setup y otra loop.
Una funcin es un bloque de cdigo que contiene una serie de sentencias o instrucciones, que
tiene un nombre que la identifica de forma inequvoca y que se ejecuta cada vez que alguien
utiliza una llamada a dicha funcin desde el programa. El formato de una funcin es el siguiente:
<valor devuelto> <nombre de la funcin>()
{
sentencias
}
En nuestro ejemplo, las funciones setup() y loop() no devuelven ningn dato. Por esta razn el
<valor devuelto> es "void". Void es una palabra clave que indica que nuestra funcin no
devuelve nada. Adems, como dentro de las llaves, lo nico que hay son comentarios, tal y como
estn no ejecutaran ninguna accin.

Todos los programas escritos para Arduino deben tener al menos dos funciones, las que
acabamos de ver, llamadas setup() y loop(). Como es lgico, programas ms complejos pueden
contener muchas ms funciones.
La funcin setup() contendr la parte de cdigo encargada de la configuracin de nuestro
equipo. En ella debemos poner la declaracin de las variables que utilizaremos en nuestro
programa (ms adelante ahondaremos en el concepto de variable), la configuracin de los
diversos pines del microprocesador, la configuracin de las comunicaciones, etc. Siempre es la
primera funcin que se ejecuta al arrancar nuestro equipo.
La funcin loop() contiene la parte de cdigo que se ejecutar de forma cclica durante todo el
tiempo que est nuestro equipo en funcionamiento. El nombre loop en ingls significa bucle y
expresa exactamente este concepto, sentencias que se ejecutan en bucle repetidamente una y
otra vez. Aqu escribiremos el cdigo que se encargar de leer el estado de las entradas, ejecutar
la lgica de funcionamiento y escribir el estado de las salidas en funcin de los resultados
calculados.
Vamos a empezar a escribir la primera lnea de cdigo de nuestro programa. Nuestro objetivo
ser encender el led 8 de la barra de leds. Para ello debemos configurar el pin llamado PD4 (el
nmero 6) del microprocesador como salida. El led 8 y el pin PD4 estn unidos por el conector
llamado IO4.
Algunos de los pines del microprocesador ATMEGA328P pueden funcionar como entradas o como
salidas. Para definir el uso que daremos a un determinado pin utilizaremos la funcin pinMode().
La sintaxis de esta funcin es la siguiente:
pinMode( <nmero de pin>,<modo de funcionamiento>)
Donde <modo de funcionamiento> puede tener dos valores, INPUT cuando queremos que
funcione como entrada y OUTPUT cuando queremos que realice las funciones de salida. El
prametro <nmero de pin> puede tomar los valores de 0 a 13. El 0 se utiliza para el pin PD0 y
el 13 para el pin PB5.
La terminologa utilizada en el microprocesador para nombrar los pines puede resultar un poco
confusa la primera vez que uno se acerca a un microprocesador. Agrupa los pines en conjuntos
(puertos) de 8 pines. Por ejemplo, los pines 2 al 13 forman el puerto D. El primer pin del puerto D
recibe el nombre de PD0 (el pin fsico con el nmero 2) y as sucesivamente hasta llegar al PD7
(el pin nmero 13). Para simplificar el uso, los conectores a cada uno de los pines se han rotulado
siguiendo otra convencin. Los 13 pines digitales llevan los nombres IO0 a IO13. Los 6 pines
analgicos llevan los nombres AD0 a AD5. As es ms fcil su identificacin.
Modifiquemos nuestro programa para indicar que el pin IO4 funcionar como salida.

Observe que hemos terminado la sentencia con un punto y coma. Para separar cada uno de los
comandos que componen nuestro programa utilizamos el indicador punto y coma.
Ahora vamos a escribir el cdigo para activar la salida IO4 y encender el segmento 8 de nuestra
barra de leds. Para activar o desactivar una salida utilizamos la funcin digitalWrite(). Su formato
es el siguiente:
digitalWrite( <nmero de pin> , <estado del pin>)
Donde <estado del pin> puede tener dos valores, HIGH cuando queremos activar la salida y
LOW cuando la queremos desactivar.
Ya podemos modificar nuestro programa para activar la salida IO4.

Note que hemos terminado la sentencia con un punto y coma y que la hemos escrito dentro de la
funcin loop().
Para compilar nuestro programa, utilizaremos la opcin "Construir proyecto" del men
"Construir" o el atajo de teclado "F7".

Si todo ha ido bien, recibiremos un mensaje diciendo "compilado ok" en la ventana "Salida VSM
Studio". Si no sucede esto, repase con cuidado toda el cdigo y vigile especialmente el uso de
maysculas y minsculas y los signos de puntuacin.

Volvamos a la pestaa "Esquema electrnico" y ejecutemos la simulacin. Podremos observar


que el led 8 de la barra de leds se enciende.

Ya hemos terminado nuestro primer proyecto y hemos logrado encender un led de nuestra barra
de leds.
Practique ahora usted escribiendo el programa para encender el resto de las barras de nuestro
dispositivo de leds.

En esta primera leccin no hemos entrado a fondo en el funcionamiento elctrico de las salidas.
Ms adelante tendremos tiempo de profundizar en ello. En la seccin de hardware podr
encontrar varios esquemas electrnicos con diferentes configuraciones de salidas del
microprocesador

También podría gustarte