Arduino
Tutorial
(Versión en español – work in progress)
Por Juanma Sarrió
ARDUINO +
[P5, GRASSHOPPER, FIREFLY]
Arduino open source hardware developed by Massimo Banzi, David Cuartielles, Tom Igoe,
Gianluca Martino & David Mellis:
http://www.arduino.cc
Processing developed by Ben Fry & Casey Reas:
http://processing.org
Grasshopper developed by David Rutten:http://www.grasshopper3d.com
Firefly developed by Andy Payne & Jason K Johnson:
http://www.fireflyexperiments.com/
Juanma Sarrió García
Tutorial Arduino, Arduino + P5, Arduino + GH + Fiirefly
EJEMPLOS BÁSICOS DE ARDUINO_
01_Blink
Esquema en Fritzing
Abrimos Arduino y una vez dentro de él, pulsamos el botón OPEN (El que tiene la flechita hacia
arriba), vamos al submenú DIGITAL y abrimos el ejemploBLINK.
Código del ejemplo Blink de Arduino
int ledPin = 13;
// LED conectado en el pin digital 13
// El Setup () sólo se lee UNA vez (como en Processing).
void setup() {
pinMode(ledPin, OUTPUT); // Declaramos el pin donde tenemos el Led como SALIDA
}
// El Loop () se lee constantemente.
void loop() {
digitalWrite(ledPin, HIGH); // Encendemos el LED (HIGH → Le pasamos los 5 voltios)delay(1000);
// Esperamos 1000 milisegundos (1 seg)
digitalWrite(ledPin, LOW); // Apagamos el LED
(LOW → Le pasamos 0 voltios)
delay(1000);
// Esperamos 1000 milisegundos (1 seg)
}
El uso de Leds es muy útil para monitorizar acciones y comprobar que funcionan conexiones o
sensores. En este ejemplo, el LED sólo tiene dos posiciones, o encendido o apagado, ya que lo estamos
controlando conun pin DIGITAL (que sólo admite esas dos posiciones). Sin embargo, un LED puede
adoptar más estados como veremos más adelante.
1
Juanma Sarrió García
Tutorial Arduino, Arduino + P5, Arduino + GH + Fiirefly
02_Button
Esquema en Fritzing
Pulsamos el botón OPEN (El que tiene la flechita hacia arriba), vamos al submenú DIGITAL y
abrimos el ejemplo BUTTON.
Código del ejemplo Buttonde Arduino
int buttonPin = 2;
int ledPin = 13;
int buttonState = 0;
// Botón conectado al pin DIGITAL 2
// LED conectado al pin Digital 13
// Variable que leerá el estado del Botón ( 0 = LOW ; 1 = HIGH)
void setup() {
pinMode(ledPin, OUTPUT);
// Declaramos el LED como SALIDA
pinMode(buttonPin, INPUT); // Declaramos el Botón como ENTRADA
}
void loop(){
// Leemos (digitalmente) elestado del botón y lo guardamos en la variable buttonState
buttonState = digitalRead(buttonPin);
// Si el botón está pulsado (HIGH) ...
if (buttonState == HIGH) {
digitalWrite(ledPin, LOW); // Encendemos el LED (HIGH → 5 Voltios)
}
// ...en caso contrario (el botón no está pulsado → LOW)
else {
digitalWrite(ledPin, HIGH); // Apagamos el LED (LOW → 0 Voltios)
}
}
Como vemos, en estesketch, no sucede nada, salvo que apretemos el botón y cambiemos el
estado del botón, y a su vez, el de la variable buttonState.
2
Juanma Sarrió García
Tutorial Arduino, Arduino + P5, Arduino + GH + Fiirefly
03_Coche Fantástico
Esquema en Fritzing
Pulsamos el botón OPEN (El que tiene la flechita hacia arriba), vamos al submenú CONTROL y
abrimos el ejemplo ARRAYS.
Código del ejemploArrays de Arduino
int timer = 100;
// Variable para controlar el retardo del loop (100 milisegundos)
int ledPins[] = { 2, 7, 4, 6, 5, 3 };
// Array de los pines donde conectaremos los LEDs
int pinCount = 6;
// Longitud de la Array
void setup() {
int thisPin;
// Variable temporal
// La Array está numerada desde 0 hasta (pinCount – 1), es decir de 0 a 5
// Usamos un bucle FOR para inicializarcada pin como SALIDA
for (int thisPin = 0; thisPin < pinCount; thisPin++) {
pinMode(ledPins[thisPin], OUTPUT);
}
}
void loop() {
/* Bucle FOR para ir encendiendo de uno en uno los leds. Funciona así:
Para el PRIMER led...lo enciendo durante los milisegundos que he indicado con la variable
timer...y lo apago...enciendo el SEGUNDO led, etc...
3
Juanma Sarrió García
Tutorial Arduino,...
Regístrate para leer el documento completo.