viernes, 14 de noviembre de 2014

Ejemplo 1_1. “La ola”

Para el siguiente montaje usaremos unos Leds como salida de nuestro circuito. Un led es un tipo de semiconductor pasivo que emite luz al paso de una corriente. LED, es la abreviación del inglés de Light-emitting diode. El símbolo que se usa en electrónica para representarlo es el siguiente:



El diodo led no puede ir conectado directamente a la salida del arduino, pues aunque es da baja potencia, lo acabaría fundiendo. Por lo tanto se ha interponer una resistencia para limitar la corriente que lo atraviesa. Haremos el cálculo sencillo del valor de la resistencia, y de paso repasamos un poco la ley de Ohm.
Para un diodo standard , supondremos una caída de potencial entre el ánodo y el cátodo de 1,7V. La corriente máxima admisible dependerá también del modelo, para este caso utilizaremos un valor inferior a los 20mA, en concreto 15mA.
La caída de tensión en la resistencia será por tanto :
Vr = Vcc-Vled = 5 - 1.7= 3.3V
Si tenemos el valor de la caída de tensión y la corriente que atraviesa la malla, despejando la R, de la fórmula V=IxR, quedaría:
R= V/I = 3,3/0.15 = 220Ω
En este caso, como coincide con un valor normalizado, usaremos para el montaje resistencias de 220Ω.
¡Qué coincidencia! Son justamente las que tengo en casa. Bueno en cualquier caso, podemos usar “cualquier valor” por encima de los 220Ω, con la única limitación del brillo que emitirá el led, pero ser razonables, no pongáis resistencias de 100kΩ, y preguntéis por qué no se enciende el led si hemos seguido el montaje al dedillo.
Valores por debajo, son contraproducentes, porque elevarán el consumo de nuestro diseño, y fundirán leds constantemente.
Está bien, una vez hemos explicado el por qué de los valores que hemos escogido pasaremos a definir el proyecto de hoy.



Encendido secuencial de leds. “La ola”

Este proyecto es un ejercicio muy común de inciación. Pero nos debería ayudar a planificar como enfrentarnos a cualquier proyecto a partir de ahora, con unas pautas que facilitarán enormemente el conseguir el objetivo final.

  •      Definir un objetivo. Es básico saber qué queremos conseguir. Cualquier modificación sustancial        durante la ejecución del proyecto seguramente nos obligue a volver al punto 1, y alargue el plazo y    aumente los costes. A lo mejor sólo es tu hobby, pero aplica todos los aspectos de la vida.

  •    .     Escribe tu algoritmo. No confundir con escribir el código del programa. El algoritmo son las   instrucciones que deberá seguir el flujo del programa, paso a paso. Intenta en este punto contemplar   todas las incidencias posibles.

  •       Selecciona el hardware necesario, ahora ya sabes cuantas entradas y salidas necesitas y cómo        puedes conectarlas.

  •     Escribe el código. Ahora ya puedes transformar tu algoritmo en el programa. El algoritmo viene a     ser como un boceto de un dibujo, y el programa el arte final.

  •      Crea el circuito, conecta todos los elementos de tu hardware con tu Arduino    

  •          Puesta en marcha y depuración de fallos. ¿Funciona tal y cómo esperabas? ¿No? Es momento de localizar los errores en el hardware o la programación.


Volviendo a nuestro proyecto de hoy. ¿Qué queremos conseguir? El encendido y apagado de 4  leds de manera secuencial.

El algoritmo podría ser algo parecido:

  1.- Encender el led 1
  2.- Esperar 1 segundo, y apagarlo
  3.- Encender el led 2
  4.- Esperar 1 segundo, y apagarlo
  5.- Continuaría así hasta el led 4 , momento en que saltaríamos al led 1
  6.- Repetir el bucle indefinidamente.

El hardware necesario:  

  •     4 leds de colores
  •     4 resistencias de 220Ω
  •     Una protoboard y cablecillo rígido
  •     Un arduino y su cable USB

Siguiente paso, escribir nuestro código:


  
// Ejemplo 1 - Secuencia de ON-OFF de 4 Leds "La ola"
// Definimos las salidas de nuestro proyecto en el setup

void setup()
{
  pinMode(2,OUTPUT); //Pin 2 conectado al led 1, definido como salida
  pinMode(3,OUTPUT); //Pin 3 conectado al led 2, definido como salida
  pinMode(4,OUTPUT); //Pin 4 conectado al led 5, definido como salida
  pinMode(5,OUTPUT); //etc...
}
void loop()
{
  digitalWrite(2,HIGH);// Encendemos el Led 1 poniendo su salida en 1, HIGH
  delay(1000); //Espera de un segundo
  digitalWrite(2,LOW);//Apagamos el Led 1 poniendo su pina a 0, o LOW
  digitalWrite(3,HIGH);//Repetimos los mismo pasos hasta el led 4
  delay(1000);
  digitalWrite(3,LOW);
  digitalWrite(4,HIGH);
  delay(1000);
  digitalWrite(4,LOW);
  digitalWrite(5,HIGH);
  delay(1000);
  digitalWrite(5,LOW);
 //final del Loop, ahora volverá al incicio del bucle,
 //y se repetirá indefinidamente
}



Seguidamente tocará cablear nuestro prototipo, siguiendo el siguiente esquema:



Una propuesta para el conexionado en la protoboard podría ser esta, donde minimizamos la cantidad de cable a emplear.


Podéis hacer copy-paste sobre el programa y pegarlo en Arduino. De todas maneras yo recomiendo entrarlo a mano e ir aprendiendo de nuestros errores. Por si algo os falla, os dejo un enlace directo al sketch ya depurado y comprobado.

Programa Ejemplo 1_1

Deberíais obtener un resultado similar al que muestra el video del siguiente enlace.


La modificación del sketch corresponde a la siguiente entrada, así que no desmontéis el circuito, que lo usaremos en la siguiente entrada. 


No hay comentarios:

Publicar un comentario