Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso Arduino Cefire Sesión 1
Curso Arduino Cefire Sesión 1
INDICE
Sesión 1 (5 horas)
El lenguaje de programación de
Arduino es una implementación de
Processing que es un lenguaje de
programación de código abierto y basado
en Java, orientado a objetos. El hardware se
basa en una plataforma de computación
física, denominada Wiring.
Existen otras placas de computación física que incluyen algún tipo de microcontrolador
como la Basic Stamp de Parallax, que fue la pionera.
¿Por qué entonces utilizar Arduino? ¿Qué características tiene Arduino que le dan ese plus
en atractivo? Veamos:
Asequible - Las placas Arduino son más asequibles comparadas con otras plataformas de
microcontroladores. La versión estándar (Arduino UNO) ronda los 22€ + IVA.
Software ampliable y de código abierto- El software Arduino esta publicado bajo una
licencia libre y preparado para poder ser ampliado por programadores experimentados. El
lenguaje puede ampliarse a través de librerías de C.
Además del modelo ARDUINO UNO, que usaremos en este curso, existen multitud de
modelos que se adaptan, continuamente, a situaciones concretas o simplemente que
integran algún elemento que queremos usar como por ejemplo un modem bluetooth, una
conexión wifi o Ethernet o simplemente queremos que sea muy pequeño o que consuma
poco (consultar http://arduino.cc/en/Main/Hardware ). A fecha de realización de esta
documentación, algunos de los modelos Arduino disponibles más conocidos son:
1. - Arduino MEGA
2. - Arduino Bluetooth
3. - Arduino Pro
Hemos visto unos cuantos modelos de Arduino, aunque aún no hemos descrito
con precisión ninguno. Ahora veremos las Shields o “Escudos”, que son tarjetas que
podemos conectar a algunos modelos de Arduino (aunque existen algunas para el
Arduino MEGA, casi todas están destinadas para el Arduino UNO) para ampliar sus
posibilidades o simplemente para ahorrarnos trabajo extra. Entre las Shields más
populares podemos encontrar:
1.- Alimentación
Podemos utilizar:
Están enumerados desde el pin 0 al pin 13. Los pines que pueden ser
configurados como salidas “PWM” son: 3, 5, 6, 9,10 i 11.
Led pin 13
Led’s pines
TX RX
Los pines 2 y 3 son los encargados de testear las dos interrupciones externas de
las que dispone el microcontrolador (INT 0 y INT 1)
Los pines 10, 11, 12 y 13, realizan las funciones de los pines SS, MOSI, MISO y
SCK respectivamente, en la comunicación SPI con periféricos u otros
microcontroladores, mediante la librería <spi.h>.
Arduino dispone de resistencia de PULL-UP para cada GPIO que se pueden activar o
desactivar mediante la instrucción digitalWrite (numero_pin, HIGH); o
Esta misma función se utiliza para escribir un estado digital alto o bajo en un pin de
salida y para activar la resistencia de pull-up en un pin de entrada.
Los 6 pines pueden usarse, sin perder funcionalidad, como cualquier pin de
entrada/salida digital de propósito general (GPIO) (0-13). Los pines A4 y A5 se usan
para las comunicaciones I2C como líneas SDA y SCL respectivamente mediante la
librería <wire.h>. Las entradas analógicas A0-A5 no necesitan ser configuradas como
entradas para ser usadas como entradas analógicas. Si es necesario configurarlas como
entradas o salidas digitales, en caso de tratarlas como GPIO. En este caso, nos
referiremos a ellas como GPIO desde el pin 14 al 19. Es decir si en nuestro proyecto
agotamos los GPIO digitales, podremos usar los analógicos. Por ejemplo:
Los pines analógicos, como vemos, también tienen resistencias pullup, las
cuales funcionan igual que en los pines digitales.
Como hemos comentado anteriormente, algunos GPIO digitales pueden actuar como
salidas PWM o salidas moduladas en amplitud de pulso. Se trata de los pines 3, 5, 6, 9,10 i 11.
Para escribir un valor analógico en estos pines, los configuraremos primero como
salidas y después usaremos la función analogWrite(num_pin, valor);
donde valor es una variable entera de 1 byte que tomará valores desde 0 a 255.
Cuando escribimos 0, en el pin tendremos 0V. Si escribimos 255, en el pin tendremos 5V
Incluso puedes descargar cualquier versión anterior desde la 0001 hasta la 0023, que
fue la antecesora de la versión, que a fecha de realización de esta documentación, es hoy la
definitiva, la 1.0. En el apartado release notes, podemos encontrar las diferencias que se han
ido introduciendo en cada versión. El código fuente del IDE está hospedado en GitHub.com.
Click!
Si consultamos las propiedades de este nuevo puerto COM podemos observar que
trabaja con un BaudRate de 9600 bps, con 8 bits de datos, sin paridad ni control de flujo y con
un bit de parada. Ahora ya podemos ejecutar Arduino.exe y lanzar el IDE de Arduino, conectar
la placa al ordenador y listo.
Barra de menús
Área de trabajo
Área de
notificaciones
a) Barra de menús
En la barra de menús observamos, en la parte superior, el nombre del sketch en el que
estamos trabajando y la versión del IDE. Después encontramos los siguientes menús:
Menú File:
a) New: Crear un sketch nuevo.
b) Open: Abrir un sketch ya creado. Por
defecto, localiza el último sketch con el que
se trabajó.
c) Sketchbook: Nos da la posibilidad de abrir
cualquier sketch guardado en la carpeta
Arduino de la carpeta Documentos de
nuestro PC.
d) Examples: Acceso a todos los ejemplos
incluidos en el IDE de Arduino. Los
ejemplos los busca en la carpeta
examples y libraries, de la carpeta
Arduino donde tenemos guardado el IDE.
e) Close: Cierra el sketch actual y el IDE.
f) Save: Guardar con el mismo nombre que tiene, el sketch con el que trabajamos
g) Save As: Guardamos el sketch en el que trabajamos con el nombre que queramos. El
IDE de Arduino, creará una carpeta nueva con el nombre del sketch que hayamos
elegido, en caso de no existir.
h) Upload: Compila el Sketch en el que trabajamos y en caso de no tener errores y la
tarjeta Arduino correctamente conectada, envía el ejecutable al microcontrolador de
Arduino.
i) Upload Using Programmer: Si queremos utilizar un programador externo (por
ejemplo un AVR-ISP STK500 o un programador paralelo) podemos cargar un sketch en
la placa Arduino sin necesidad de un gestor de arranque (bootloader). Nos permitirá,
esta opción, utilizar el total de la memoria disponible en el chip de la Arduino y no
tendremos el retraso causado por el gestor de arranque cada vez que arranque la
placa.
j) Page setup: Opciones de configuración de página
k) Print: Opciones de impresión.
l) Preferences: podemos cambiar algunas opciones de nuestro IDE desde este menú o
modificando directamente el archivo Preferences.txt. Algunas de las más importantes
son, asociar los archivos *.ino a nuestro IDE, transformar automáticamente los
archivos antiguos de Arduino (*.pde) a los nuevos (*.ino) o canviar la localización de
nuestro Sketchbook
m) Quit: Salir del IDE.
Menú Edit:
Las opciones son casi todas comunes a las de cualquier aplicación que se
ejecute en Windows y que disponga del menú Edit. Las que no son tan
habituales son:
Menú Sketch:
a) Verify/Compile: Compila el sketch en el
que estamos trabajando
b) Show Sketch Folder: Muestra en
carpeta el archivo que contiene el
sketch en el que estamos trabajando.
c) Add File: Para tener más de un sketch
abierto en el mismo IDE. Aparecen varias pestañas con el nombre de
los sketch. Los que llevan el carácter § al final del nombre, es porque han sido
modificados y no han sido guardados.
d) Import Library: Nos ayuda a añadir las librerias que tenemos disponibles, en
nuestro sketch. Para poder insertar una librería en nuestro código, es necesario que la
tengamos guardada en la carpeta libraries. En el entorno Arduino, una librería es
una carpeta con al menos dos archivos (*.h y *.cpp o *.c)
Menú Tools:
Menú Help:
a) Getting Started: Abre
la Guía de Inicio del
sitio web de Arduino.
Esta guía está guardada
en el propio IDE de
Arduino. No necesita
conexión a internet.
b) Environment: Abre la
guia del IDE de Arduino.
c) Troubleshooting: Abre la guia de resolución de problemas.
d) Reference: Abre la guia de referencias del lenguaje utilizado por Arduino.
e) Find in Reference: Búsqueda de algún término en la guía de referencias.
f) Frequently Asked Questions: Abre la guía de preguntas más frecuentes.
g) Visit Arduino.cc: Conecta a través de internet con el sitio oficial de Arduino
que es http://arduino.cc
b) Área de trabajo
El área de trabajo es la zona editable del IDE de Arduino donde
escribiremos nuestro código para posteriormente, compilarlo y transferirlo a la
placa. En el entorno Arduino podemos tener tantas funciones como queramos
(definidas por el usuario) pero como mínimo tendremos dos: setup() y loop().
c) Área de notificaciones
El área de notificaciones es la zona del IDE de Arduino donde el
compilador nos dará información sobre posibles errores, qué placa tenemos
conectada y a qué puerto. También nos indica en que línea tenemos el cursor
dentro del área de trabajo.
Ahora
conectamos
nuestra placa Arduino al puerto USB de nuestro ordenador. En el menú Tools Board
elegimos nuestro modelo de Arduino:
Función Setup()
Se ejecuta una
vez
Función loop()
Se ejecuta
indefinidamente
Configuración
c) Hay que tener mucho cuidado con los tipos de datos de las variables que utilizamos y
con las conversiones que el compilador realiza de forma automática. Sobre todo hay
que tener en cuenta que sólo podemos enviar desde el monitor al microcontrolador,
caracteres.
Vamos a modificar el código para que Arduino nos envie el valor de una variable, no
un mensaje de texto.