Primer circuito con Arduino: Blink

Buenas a todos!

Hoy vamos a aprender qué partes forman un programa en arduino, qué son entradas y salidas, como hacer pausas en el programa y como consecuencia, nuestros 2 circuitos del tutorial: Un blink (led-parpadeante-superaburrido) y las lucecillas delanteras de Kit, el coche fantástico!

coche fantástico
ti tiririiiii, ti tiririiiiiiiiiiiiiiiiiiiiiiiiiiii. ti tirirititiiiiiiiiiiiiiii…

¿Qué partes tiene un programa en arduino?

Principalmente, un programa en arduino consta de 2 partes, el setup() y el loop().

El primero es la parte del programa donde escribimos datos de inicialización como por ejemplo en qué pines van conectados nuestros sensores y actuadores, además de establecer si un pin es de entrada o de salida de datos. El setup() solo se ejecuta una vez, al cargarse el programa.

El segundo, es la parte del programa que se ejecuta repetida e infinitamente mientras la placa arduino esté conectada a una fuente de alimentación, pila o cable USB. Todo lo que escribamos dentro del loop se ejecutará una y otra vez hasta el infinito.

¿Pines de entrada y de salida de datos WTF?

Como os decía los pines de la placa arduino pueden inicializrse para entrada o salida de datos. Por ejemplo, si quieres conectar un sensor de movimiento al pin 13, lo establecemos como pin de entrada (porque es el sensor el que manda informacion a la placa) y si quisieras por ejemplo encender un led o hacer sonar un buzzer, lo estableceríamos como pin de salida (ya que es la placa la que manda el impulso eléctrico al led o al buzzer).

En definitiva, cuando la información fluya del exterior hacia el arduino es una entrada y cuando la información sale de la placa hacia un componente es una salida.

Para establecer si un pin va a ser de entrada o de salida, se utiliza la funcion pinMode(Nº PIN, MODO) siendo “Nº PIN” el pin en cuestión y “MODO” el modo de actuar del pin. Los 2 principales modos son INPUT (entrada) y OUTPUT (salida).

veamos un pequeño ejemplo:

Ya voy entendiendo… Creo…

Bien! Ahora vamos a ver una vez establecido un pin como pin de salida o de entrada, como mandarle “hacer cosas”. Para este ejemplo, vamos a conectar un led en el pin 13 y lo vamos a establecer como pin de salida, para mandarle la orden desde la placa de encenderse y apagarse. ¿que cómo le mando encenderse y apagarse? con la función digitalWrite(PIN,VALOR).

La función digitalWrite escribe un valor digital (0 o 1,  HIGH o LOW) a un pin concreto, es decir, le manda corriente al pin y si reulta que tenemos un led conectado a dicho pin, se enciende. Así de fácil.

Hemos metido este código en el loop() que habíamos dicho que se repetía infinitamente mientras la placa estuviera encendida, por lo que el resultado del programa es:

Encender el led conectado en el pin 13

Esperar 1 segundo

Apagar el led conectado en el pin 13

Esperar 1 segundo

Repetir lo anterior hasta la muerte…

 

La función delay(X) pausa el programa durante X milisegundos (que os lo he colao ahí sin avisar…).

 

Conecta y ejecuta el código!

Lo primer es conectar nuestro LED al pin 13 de la placa arduino, con el Ánodo(+) conectado al pin 13 y el cátodo(-) conectado al GND. Si no sabes cuál es el ánodo y cual el cátodo “La patilla MAS larga del led es el ánodo(+)”. Normalmente un led necesita una resistencia conectada en serie en una de sus patillas para no quemarlo, pero el pin 13 lleva una resistencia interna que evitará esto. El pin 13 es el único que la lleva, si conectas un led a otro pin sin resistencia (BOOOOM!).

Vale vamos ya a probar el primer código, para ello copia y pega el código en tu IDE de Arduino, después ve al menú herramientas/placa y selecciona la placa arduino que tengas conectada por USB a tu PC y por último pincha en el botón circular de “subir” (el de la flechita hacia la derecha).

 

Led conectado al pin 13
Led conectado al pin 13
Una vez subido, vuestro led debería parpadear en intervalos de un segundo.

 

Tenías razón, un led que parpadea es aburrido…

De acuerdo ahora vamos a ampliar un poco el tema haciendo lo mismo pero con 5 leds, conectados en los pines 8, 9, 10 ,11 y 12.

Para conseguir el efecto del coche fantástico tenemos que hacer que se encienda un led y que el resto estén apagados. Después iremos cambiando de led para crear el efecto de movimiento.

Vamos a comenzar creando el circuito. Recordad que tenemos que colocar una resistencia (a partir de 300 ohmios) a cada led que conectemos para no quemarlos. el circuito deberá quedar como el del esquema.

5leds
Esquema de 5 leds conectados a los pines (8-12) y con sus cátodos conectados a GND

 

Ahora toca el código:

Como ya sabemos debemos establecer los pines del 8 al 12 como pines de salida en el setup() del programa:

y en el loop tendremos que empezar con el led 8 encendido y el resto apagados, despues de una pausa, encender el 9 y apagar el resto, encender el 10 y apagar el resto… así hasta el 12 y luego vuelta atrás.

 

 

Una vez hecho esto, lo volvemos a subir a la placa con el IDE de Arduino y vemos a ver que pasa…

Nota: El código de arriba funciona bien, pero no es el codigo mas óptimo del mundo, podemos ahorrarnos líneas de codigo pero no lo he hecho para que veáis el funcionamiento.

Aquí tenéis un video del resultado, podéis cambiar el valor del delay para aumentar o disminuir la velocidad. Experimentad, poned mas leds con mas pines o usad leds de otros colores o lo que se os ocurra, pero TRASTEAD!!!

Saludos cordiales!

 

Leave a Reply