Creación de una rejilla de LED charlieplexed en ATTiny85 (3 / 5 paso)

Paso 3: Charlieplexing en Software - introducción

En mi proyecto, utilicé la cuadrícula de 4 x 5 para realizar una simulación de juego de Conways de la vida. Sin embargo, antes de llegar complejo, vamos a cubrir algunos aspectos básicos del software para mostrar cómo encendemos LED en esta configuración de charlieplexed.

En primer lugar, he definido mis pins A la E y especificó que la broca en PORTB se estará refiriendo al. Esto hace más fácil para referirse a la línea A hasta E más adelante en el código:

#define LINE_A 0 //Pin 5 (PB0) en ATtiny85
#define LINE_B 1 //Pin 6 (PB1) en ATtiny85
#define LINE_C 2 //Pin 7 (PB2) en ATtiny85
#define LINE_D 3 //Pin 2 (PB3) en ATtiny85
#define LINE_E 4 //Pin 3 (PB4) en ATtiny85

Con el fin de la luz de los 20 LEDs, necesitamos configurar nuestro 5 pernos de una manera diferente para cada LED. Para encender un LED, necesitamos un perno en una salida con una tensión alta, uno de los pines en una salida con una tensión de tierra, y todas las clavijas para ajustarse a las entradas para evitar el flujo de corriente.

Para hacerlo más simple, a establecer algunas matrices para almacenar todas las configuraciones para DDRB (que establece los modos de entrada y salida de cada pin) y el PORTB (que fija el voltaje alto o bajo de cada pin).

DDRB dirección config para cada LED (1 = salida)
const char led_dir [20] = {}
(1 << LINE_A | 1 << LINE_E), //LED 0
(1 << LINE_B | 1 << LINE_E), //LED 1
(1 << LINE_C | 1 << LINE_E), //LED 2
(1 << LINE_D | 1 << LINE_E), //LED 3

(1 << LINE_E | 1 << LINE_D), //LED 4

(1 << LINE_A | 1 << LINE_D), //LED 5
(1 << LINE_B | 1 << LINE_D), //LED 6
(1 << LINE_C | 1 << LINE_D), //LED 7
(1 << LINE_D | 1 << LINE_C), //LED 8
(1 << LINE_E | 1 << LINE_C), //LED 9

(1 << LINE_A | 1 << LINE_C), //LED 10
(1 << LINE_B | 1 << LINE_C), //LED 11
(1 << LINE_C | 1 << LINE_B), //LED 12
(1 << LINE_D | 1 << LINE_B), //LED 13
(1 << LINE_E | 1 << LINE_B), //LED 14

(1 << LINE_A | 1 << LINE_B), //LED 15
(1 << LINE_B | 1 << LINE_A), //LED 16
(1 << LINE_C | 1 << LINE_A), //LED 17
(1 << LINE_D | 1 << LINE_A), //LED 18
(1 << LINE_E | 1 << LINE_A) //LED 19
};

PORTB salida config para cada LED (1 = alto, 0 = bajo)
const char led_out [20] = {}
(1 << LINE_A), //LED 0
(1 << LINE_B), //LED 1
(1 << LINE_C), //LED 2
(1 << LINE_D), //LED 3
(1 << LINE_E), //LED 4

(1 << LINE_A), //LED 5
(1 << LINE_B), //LED 6
(1 << LINE_C), //LED 7
(1 << LINE_D), //LED 8
(1 << LINE_E), //LED 9

(1 << LINE_A), //LED 10
(1 << LINE_B), //LED 11
(1 << LINE_C), //LED 12
(1 << LINE_D), //LED 13
(1 << LINE_E), //LED 14

(1 << LINE_A), //LED 15
(1 << LINE_B), //LED 16
(1 << LINE_C), //LED 17
(1 << LINE_D), //LED 18
(1 << LINE_E) //LED 19
};

Por último, tenemos una función simple para hacer este trabajo, "light_led"

void light_led (char led_num) {//led_num debe ser de 0 a 19
DDRB = led_dir [led_num];
PORTB = led_out [led_num];
}

void leds_off() {}
DDRB = 0;
PORTB = 0;
}

Por light_led llamadas con un número del 0 al 19, podemos luz LED deseado. Desde aquí podemos construir más complejidad en el software para almacenar una cuadrícula de 4 x 5 y visualizar en las luces.

Artículos Relacionados

Creación de una rejilla de barco de nivel 2 para 3 canoas con sujetadores

Creación de una rejilla de barco de nivel 2 para 3 canoas con sujetadores

en este instructable voy a guiarlo en la construcción de una canoa de bastidor que sujeta una canoa vieja de la ciudad y dos Kayaks. Aunque este fue diseñado específicamente para los barcos en mente, si cabe más barcos y con algunos pequeños ajustes
3D LED Charlieplex cubo de luces de árbol de Navidad

3D LED Charlieplex cubo de luces de árbol de Navidad

Navidad es un buen momento para obtener gran número de LEDs muy barato. Este instructable utiliza 80 LEDs de una cadena ligera del árbol de Navidad de LED para hacer el cubo de LED 3D venerable. En este caso un 5 x 4 x 4 cube.Los otros componentes so
Hacer una luz de LED de ciclistas. Cambio.

Hacer una luz de LED de ciclistas. Cambio.

Ciclistas son vulnerables por la noche en el tráfico. Ahora, ser vulnerable es fina, como puede ser notado por otros. Así que ¿qué un motociclista necesita hacerse notar en la noche? Eso es! Parpadeante luz de las estrellas!Echa un vistazo al video:S
Controlar una matriz de LED

Controlar una matriz de LED

Matrices de LED son un montón de diversión y más fácil que usted puede pensar que al control. En este Instructable, usted aprenderá cómo una matriz de LED se construye y funciona y cómo conducir con un chip de controlador MAX7219. Utilizaremos a un E
Cómo hacer una cadena de LED luz de hadas usando de MR16

Cómo hacer una cadena de LED luz de hadas usando de MR16

este instructable es una manera super sencilla, fácil y divertida hacer una cadena de LED luz de hadas utilizando downlights LED MR16.También es mi primer instructivo!, finalmente después de años de DIY y diversión ocupa vanamente. ^_^Así, consigue h
Snake 3D en cubo del LED Charlieplexed 4 x 4 x 4

Snake 3D en cubo del LED Charlieplexed 4 x 4 x 4

Hola,Este es mi primer instructable lo mientras voy a intentar hacerlo más claro posible, por favor deja un comentario con las piezas de bueno/malo u ortografía errores en mi instructables. Además, si te gustó el instructable, puede votar por mi en e
Una menorá de LED con pegatinas de circuito de Chibitronics

Una menorá de LED con pegatinas de circuito de Chibitronics

En diciembre nuestro hackerspace, espacio Crash en Culver City, organizó una noche construir de Instructables con pegatinas de circuito Chibitronics. Con Channukah vuelta de la esquina, pensé que una menorá de LED sería un proyecto perfecto para ver
Cómo hacer una linterna de LED

Cómo hacer una linterna de LED

Cómo hacer una linterna de LED-(Ver Video)-Con el 4 de julio la vuelta de la esquina, yo quería ser un poco festivo. Así que he creado algunos simples y linternas baratas que pueden usted pueden colocar en su porche durante tu fiesta.Aquí están los a
Cómo hacer una iluminación Led fácil

Cómo hacer una iluminación Led fácil

Cómo facilitar una iluminación led para la iluminación de tu pcPaso 1: Cómo facilitar una iluminación ledPaso 2: Cómo facilitar una iluminación ledPaso 3: Cómo facilitar una iluminación ledPaso 4: Cómo facilitar una iluminación ledPaso 5: Cómo facili
Con un solo LED RGB o una tira de LED para mostrar información: reloj, termómetro y un comunicador raro

Con un solo LED RGB o una tira de LED para mostrar información: reloj, termómetro y un comunicador raro

Uno de los primeros proyectos que hice con un Arduino era una guirnalda de luces de Navidad. De hecho, fue hecho de una tira de LED RGB sencilla cortar en dos, como Arduino tiene sólo 6 salidas PWM de hardware. No quería triviales arcoiris y colores
Cómo soldar cables en una tira de LED común

Cómo soldar cables en una tira de LED común

este es un manual muy simple y rápido sobre cómo soldar los cables en una tira de LED común.Se necesita:Tijeras o alambre cortadores (disponibles para uso en TechShop)Peladores de alambre (disponibles para uso en TechShop)Soldador (disponible para us
Hacer una matriz de LED 24 X 6

Hacer una matriz de LED 24 X 6

después de hacer una matriz de 8 X 10 mucha gente me preguntó acerca de ampliar la matriz a algo más grande y algunos quisieron escribir cosas a la matriz mediante un PC, así que un día miré un montón de LEDs que tenía sobras de un cubo de LED proyec
Diseñar y construir una muestra del LED luz de lado a TechShop

Diseñar y construir una muestra del LED luz de lado a TechShop

Este Instructable le muestra cómo construir una muestra de acrílico lado iluminado, iluminado por una lámpara LED.Para este proyecto usaremos una cortadora laser para cortar madera y acrílico. Utilizamos varias capas de madera cortado con láser pegad
Desplácese a un mensaje en una matriz de LED

Desplácese a un mensaje en una matriz de LED

Si tiene una tienda o una oficina o incluso su casa y desea que se muestre un mensaje de desplazamiento a los happy hours, el clima o cualquier información de su elección, aquí está el instructivo!Utiliza un TimeSquAir (http://TimeSquAir.io) un todo