Circuito aritmético
La
conexión del circuito es bastante sencilla, simplemente conectamos la salida
digital del arduino al lado positivo del LED poniendo entre medias unas
resistencias de 330 ohm´s, mientras que el lado negativo de cada LED iría al la
conexión de tierra del Arduino.
Como se ve en el esquema.
Una
vez tenemos el circuito montado, viene la parte de la programación, antes de
nada hay que descargarse el entorno de programación del Arduino.
El
código en cuestión sería algo como:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
int outPin[] = {13, 12, 11, 10, 9};
int delayValue = 600;
void setup()
{
int i = 0;
for ( i =
0; i < 5; i++)
pinMode(outPin[i], OUTPUT);
}
void loop()
{
int i = 0,
j=0;
for ( i =
0; i < 32; i++)
{
for ( j =
0; j < 5; j++)
{
if ( ( (i
>> j) & 1 ) == 1 )
digitalWrite(outPin[j],
HIGH);
else digitalWrite(outPin[j],
LOW);
}
delay(delayValue);
}
}
|
Es
bastante sencillo, declaramos un array con el conjunto de pines a los cuales
están conectados nuestros LEDs. En la función setup, los configuramos en modo
salida.
Está
en la función loop(), esta se ejecutará una y otra vez, lo que hacemos es
iterar por los 32 numeros que podemos mostrar, ya que tenemos 5 LEDs, y 2
elevados a 5 son 32. Por cada número, encendemos o apagamos cada led
correspondiente. La clave está en el bucle que realiza la operación “(i
>> j) & 1″. Cada iteración del bucle divide el numero en cuestion por
2 y se queda unicamente con el bit de menor valor. Asi sabemos si tenemos que
encender o no el LED.
Por
ejemplo, para mostrar el número 21, que en binario es (10101) deberiamos
encender los LEDs 0, 2 y 4 y dejar apagados el resto. El calculo sería:
·
LED 0: 21 (10101 & 1) -> 1
, encendido
·
LED 1: 21 / 2 = 10 (01010 & 1)
-> 0, apagado
·
LED 2: 21 / 4 = 5 (00101 & 1)
-> 1, encendido
·
LED 3: 21 / 8 = 2 (00010 & 1)
-> 0, apagado
·
LED 4: 21 / 16 = 1 (00001 & 1)
-> 1, encendido
Como
vemos, el resultado del calculo es correcto. Básicamente lo que se hace es ir
desplazando los bits hacia la derecha y quedandonos con el bit menos
significativo.
Conclucion
En esta practica pode realizar sumas secuenciales las que ayudan en diferentes casos segun lo requeramos podemos ir sumando numero de 2 en 2 o ir restando para realizar diferentes actividades ya sea para mostrar un marcador o para realiazar un conteo.
No hay comentarios.:
Publicar un comentario