1
PRACTICA 7 ARDUINO COMO TARJETA ADQUISITORA DE DATOS: SALIDA
DIGITAL.
OBJETIVO:
Gobernar salidas digitales de Arduino utilizado como tarjeta dquisitora de datos
mediante el entorno Processing.
Equipo
(1) Arduino.
(1) Protoboard.
(1) Lap top.
(14) Leds.
(14) Resistencias de 22 Ω.
Introducción
Las siguientes funciones se encuentran en la Librería Arduino para Processing y
comunican (a partir de Processing) con un Arduino, una vez que el Firmata se ha instalado
en la tarjeta.
[Link]():devuelve una lista con los dispositivos serie (puertos serie) disponibles. Si
su tarjeta Arduino está conectada a la computadora cuando usted llama a esta función, su
dispositivo estará en la lista.
Arduino(parent, name, rate): crea un “objeto” Arduino (objeto a nivel de elemento de
programación). parent debe aparecer sn comillas; name es el nombre del dispositivo serie
(es decir, uno de los nombres devueltos por [Link] ()); rate es la velocidad de la
conexión (57600 para la versión actual del de firmware).
pinMode(pin, mode): pin configura un pin digital como entrada (input) o como salida
(output) mode ([Link] o [Link]).
digitalRead(pin): devuelve el valor leído de una de las entradas digitales, [Link] o
bien [Link] (el pin debe estar configurado como entrada).
digitalWrite(pin, value): escribe [Link] o [Link] en un pin digital.
analogRead(pin): devuelve el valor de una entrada analógica leída (de 0 a 1023).
analogWrite(pin, value): escribe un valor analógico (señal tipo PWM) en un pin digital
que soporta salida analógica (pines 3, 5, 6, 9, 10, y 11 para ATMEGA 168); valores debes
estar comprendidos entre 0 (equivalente a off) y 255 (equivalente a on).
Procedimiento
1. Cargue el archivo StandardFirmata desde el IDE de Arduino:
Archivo/Ejemplos/Firmata/StandardFirmata.
1
2
2. Abra el Editor del Processing.
3. Tecleé el siguiente código tal como se muestra.
/*
* enciende el led cuando se presiona el botón del ratón
* apaga cuando levantamos el botón
*/
import [Link].*; //Importamos las librerías necesarias
import [Link].*;
Arduino arduino; // Crea el objeto Arduino
int ledPin = 13; // Designa el numero de PIN para el LED
void setup() { //Configura el puerto y las señales con las que va a trabajar
size(200, 200);
arduino = new Arduino(this, [Link]()[0], 57600); // Configura el puerto como 0
[Link](ledPin, [Link]); // Configura el PIN13 como salida
[Link](ledPin, [Link]); //Enciende el LED
}
void draw() { //Dibuja una ventana de interacción
if (mousePressed == true) { //pregunta si se ha pulsado el botón del ratón
[Link](13,[Link]); // Si se ha pulsado apaga el LED
} else {
[Link](13,[Link]); // Si no esta pulsado enciende el LED
}
}
4. Corra el programa.
5. Arme el siguiente circuito.
6. Tecleé el siguiente código:
import [Link].*;
import [Link].*;
2
3
Arduino arduino;
color off = color(4, 79, 111); // Definimos los colores del botón en estado off
color on = color(84, 145, 158); // Definimos los colores del botón en estado on
// designamos en un array de tamaño 13 el estado de cada una de las entradas
int[] values = { [Link], [Link], [Link], [Link],
[Link], [Link], [Link], [Link], [Link],
[Link], [Link], [Link], [Link], [Link] };
void setup() {
size(470, 200);
println([Link]()); // Mostramos los puertos detectados
arduino = new Arduino(this, [Link]()[1], 57600);
for (int i = 0; i <= 13; i++) // Configuramos los pines 0 al 13 como salidas
[Link](i, [Link]);
}
void draw() {
background(off);
stroke(on);
for (int i = 0; i <= 13; i++) { // se testea el estado del array de estados de salidas
if (values[i] == [Link])
fill(on); // se pone el color de on si esta en estado alto
else
fill(off); // se pone el color de off si esta en estado bajo
rect(420 - i * 30, 30, 20, 20);
}
}
// Procedimiento para detectar si el ratón se ha pulsado sobe uno de los botones
void mousePressed()
{
int pin = (450 - mouseX) / 30;
if (values[pin] == [Link]) {
[Link](pin, [Link]);
values[pin] = [Link];
} else {
[Link](pin, [Link]);
values[pin] = [Link];
}
}
7. Corra el programa y tecleé sobre cada recuadro como se muestra en la
siguiente figura.
3
4
OBSERVACIONES:
CONCLUSIONES: