Tutoriales Básicos Arduino

Tagged:  

Ya hace algún tiempo que hablamos de Arduino.
A mí, personalmente me ha gustado mucho, asi que me he decidido a acercaros tambien a vosotros algunos tutoriales básicos para iniciaros en el mundo de Arduino

Pero antes de nada hay que descargarse el programa.
No olvideis que es un lenguaje de programación, asi que necesitaremos un IDE:



Descargar

Arduino 0015 (release notes), hosteado por Google Code:

Mirrors de Arduino.cc: Windows, Mac OS X, Linux (32bit)



Ahora sí, vamos a los tutoriales (Traducidos del inglés por mí)

Led y Botón

El pulsador es un componente que conecta dos puntos en un circuito cuando se presiona. En el ejemplo se enciende un LED al pulsar el botón.

Conectar tres cables a la placa Arduino. La primera va de un termilan del pulsador a través de una resistencia de 10 Kohms a los 5 voltios. El segundo va desde el otro terminal del pulsador a tierra. El tercero se conecta a una de las conexiones digitales (Pin 2 en este caso)

Cuando el pulsador está abierto (unpressed) no existe ninguna relación entre los dos terminales del pulsador, de modo que la clavija está conectada a 5 voltios (a través de la resistencia de tracción de hasta) y leemos una ALTA. Cuando el botón está cerrado (pulsado), se hace una conexión entre sus dos piernas, la clavija de conexión a tierra, para que podamos leer una BAJA. (La clavija está todavía conectada a 5 voltios, pero la resistencia en entre ellos hace que el pasador esté "más cerca" de tierra.)

También puedes montar este circuito a la inversa, con un pulsador "Normalmente Cerrado", que significa que el led estará conectado constantmente hasta que se pulse el botón

Si desconecta el pin digital i/o, el LED parpadeará probablemente de forma errática. Esto se debe a que la entrada es "flotante" - es decir, que más o menos al azar, ya sea de retorno alta o baja. Por eso que usted necesita una resistencia en el circuito.



Código


int ledPin = 13; // Elegimos el pin al que está conectado el LED
int inPin = 2; // Elegimos el pin de entrada (El del pulsador)
int val = 0; // Declaramos una variable que almacenará el estado del pulsador

void setup() {
pinMode(ledPin, OUTPUT); // Declaramos el LED como Salida
pinMode(inPin, INPUT); // Declaramos el Pulsador como Entrada
}

void loop(){
val = digitalRead(inPin); // Leemos el valor de la entrada
if (val == HIGH) { // Si el valor es igual a HIGH (Botón no presionado)
digitalWrite(ledPin, LOW); // Apaga el led
} else { // Y si no
digitalWrite(ledPin, HIGH); // Enciende el led
}
}



Loop

También podemos llamar a este ejemplo "Knight Rider", en memoria a una serie de TV de los 80 donde se encuentra el famoso David Hasselhoff donde una máquina de IA conducía su Pontiac. El coche había sido trucado con un montón de LEDs en para obtener un monton de llamativos efectos.

Este ejemplo hace uso de 6 LEDs conectados a los pines 2 - 7 en el tablero utilizando resistencias de 220 Ohmios. El primer ejemplo de código hará que el LED parpadea en una secuencia, uno por uno utilizando sólo digitalWrite (pinNum, alta / baja) y retraso (tiempo). El segundo ejemplo muestra cómo utilizar un for (;;) construcción para llevar a cabo la misma cosa, pero en un menor número de líneas. El tercer y último ejemplo se centra en el efecto visual de inflexión de los indicadores LED de encendido / apagado de una manera más suave.


Codigo


int timer = 100; // Entre mayor sea el numero, mayor sera el retardo.
int pins[] = { 2, 3, 4, 5, 6, 7 }; // Un Array con los numeros de los pines
int num_pins = 6; // El numero de pins (Longitud del Array)

void setup()
{
int i;

for (i = 0; i < num_pins; i++) // Los elementos del Array se numeran desde 0 a num_pins - 1
pinMode(pins[i], OUTPUT); // Establece cada pin como Salida
}

void loop()
{
int i;

for (i = 0; i < num_pins; i++) { // Loop a traves de cada pin
digitalWrite(pins[i], HIGH); // Enciendelo
delay(timer); // Pausalo
digitalWrite(pins[i], LOW); // Y apágalo
}
for (i = num_pins - 1; i >= 0; i--) {
digitalWrite(pins[i], HIGH);
delay(timer);
digitalWrite(pins[i], LOW);
}
}



Fading

EN este sencillo experimento vamos a provocar que un led se apague poco a poco.
Una posible traduccion al español del "Fading" es "Desvanecimiento".

Codigo

int value = 0; // variable para conservar el valor actual
int ledpin = 9; // Led conectado al pin 9

void setup()
{
// Nada que configurar
}

void loop()
{
for(value = 0 ; value <= 255; value+=5) // Desvanecimiento del led desde el minimo al maximo
{
analogWrite(ledpin, value); // Configura un valor (rangeo desde 0 a 255)
delay(30); // Espera 30 milisegundos para ver el efecto
}
for(value = 255; value >=0; value-=5) // desvanecimiento desde el maximo al minimo
{
analogWrite(ledpin, value);
delay(30);
}
}



Espero que os hayan gustado.

Si veo que interesa os acercare proyectos algo mas complejos.

0
Su voto: Niguno

Me habeis convencido , me compro uno, que os parece este:
http://www.bricogeek.com/shop/10-arduino-duemilanove-usb.html
38,28 Euros.
Esperando vuestro consejo familia.
Gracias.

Hola que tal!

Antes de que lo compres de aconsejo que eches un ojo a mas tiendas, sobre todo inglesas.

El cambio € -$ estará a tu favor.

Yo he visto el mismo duemillanove por 22€ mas o menos creo recordar

http://www.e-lioness.com/catalog/index.php?main_page=product_info&cPath=...

Un saludete ;)

Hola,

en inglaterra no son dolares sino libras, ejjeje

y a pesar del cambio hay que mirar mucho los gastos de envío, pues normalmente encarecen más el producto aún a pesar de ser más baratos.

Un saludo

Cuando digo ingles me refiero en general XD

Y si, los gastos de envio matan...

Tambien seria recomendable echarles un ojo

Ya estoy practicando con arduino.
Me lo estoy pasando bomba.
Gracias ikkaro.

Si queires enviar algún artículo se agrdecerá ;-)

No soy muy bueno escribiendo , pero enviare la practica que he hecho , una pantalla lcd mas una fotoresistencia y arduino.
La fotoresistencia mide la luz y arduino lo envia a la pantalla lcd
que lo representa como una barra de asteriscos.
Bueno grabare un video lo subire a youtube y enviare el programa.

aqui esta el video aunque no se ve muy bien.
http://www.youtube.com/watch?v=5WHlcpfatW4
y aqui va el codigo:

#include LiquidCrystal.h

// Conectar el LCD asi:
// rs en pin 12
// rw en pin 11
// enable en pin 10
// d0, d1, d2, d3, d4, d5, d6, d7 on pins 9, 8, 7, 6, 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2);//Instruccion de la libreria LiquidCristal.h para configurar los pines
int luzpin = 2; // pin de la fotoresistencia
int val = 0; // variable para recoger el valor del pin 2 la fotoresistencia
int x = 0; // variable para imprimir los *
int valmax = 0; // variable para borrar el +

void setup()
{
// Imprime en el LCD.
lcd.print("Medidor Luz JAGY."); // Imprime en el lcd
Serial.begin(9600); // Opcional es para configurar la comunicacion serial con el ordenador

}

void loop()
{
valmax = val;
val = analogRead(luzpin); // recoge el valor analogico del pin 2 fotoresistencia
val = map(val, 0, 1000, 0, 15); // mapea el valor de la fotoresistencia de 0 a 15 para igualarlo con con las columnas del lcd

// Comienza el bucle que imprime los asteriscos
for(x=0; x <= val; x++){

lcd.setCursor(x, 1);// posiciona el cursor en la columna y fila indicada
lcd.print("*");
}
delay(1000);// para un segundo, en todos los trabajos se fuma ¿no?

// Comienza el bucle de borrado
for(x=val;x >= 0; x--){
lcd.setCursor(x, 1);
lcd.print(" ");
}
lcd.setCursor(valmax, 1); // Aqui se borra el + k marca el maximo
lcd.print(" ");
lcd.setCursor(val, 1);// Y aqui se imprime el + del maximo
lcd.print("+");
}
// Y esto es todo ,para WWW.IKKARO.COM de jagy

Hola jagy, intente realizar tu proyeto para ikkaro, pero tengo unas pequeñas dudas en la colocacion del ldr, ya que compile la programacion ok en el arduino pero no sale nada en la segunda linia del lcd, porque?