Paso 8: Proyecto 3 [pt 2]: pantalla de matriz de led de 4 x 4 '2 hilos'
bit 1 = columna 1 (derecha)
bit 2 = columna 2
bit 3 = columna 3
bit 4 = columna 4
bit 5 = fila 1 (superior)
bit 6 = fila 2
bit 7 = fila 3
bit 8 = fila 4
Para dibujar un cuadrado de 4 x 4 en papel cuadriculado y rellenar en los que desea aparece una imagen, luego hacer una tabla YX. A continuación verá una asignación para un símil, así como mejor uno puede hacer en 4 x 4 "píxeles"
Para cada uno lleno en sección que escribo hacia abajo de la columna (Y) es, entonces cual fila es en (X)
Ahora abre el archivo _4x4.pde en el arduino IDE podrás ver nuestros viejos 2 amigos
#define datos 2
#define reloj 3
entonces una matriz de enteros
int [img] = {1,1,4,1,1,3,4,3,2,4,3,4};
Si se mira sólo una lista de mi escrito por YX coordina, sería un gran dolor en el trasero para convertir esos valores a mano y contamos con un equipo... déjelo hacerlo!
Pasando allí es vacío donde hacemos nuestro reloj y datos pines salidas
void setup()
{
pinMode (reloj, salida); hacer el reloj pin una salida
pinMode (datos, salida); hacer el pin de datos un output3
}
Y un bucle vacío mirando confuso, poner cosas apagado necesitan declarar algunas variables locales
void loop()
{
int Y;
int X;
byte
A continuación, un bucle, este lazo debe ser tan largo como la cantidad de entradas de la matriz de la img, para esta imagen utilizado 6 píxeles, por lo que hace que las coordenadas de x 12. Hacerla saltar cada otro número usando i += 2, porque leemos 2 coordenadas por loop
para (int i = 0; i < 12; i += 2) / / número de puntos de la matriz de img, este caso 12
{
Ahora leemos el entery Y en [i] de la matriz y restar uno de su valor, porque bytes no empiezan en uno, empiezan en cero, pero contamos de 1
obtener el primer par de cables de YX
Y = (img [i] - 1); restar a uno desde la cuenta de poco empieza en 0
A continuación Lea el X entery en [i + 1] de la matriz y restar uno de su valor, por la misma razón
X = (img [i + 1] - 1);
Después tenemos los valores YX del pixel, hacemos algunos bit a bit o matemáticas y desplazamiento a la izquierda.
Primero debemos leer el valor de X, y todo lo que su valor es de cambio que muchos lugares + 4 a la izquierda, por lo que si X es 4 y añadir 4 es pedacito 8 (MSB), mirando la tabla otra vez...
bit 1 = columna 1 (derecha)
bit 2 = columna 2
bit 3 = columna 3
bit 4 = columna 4
bit 5 = fila 1 (superior)
bit 6 = fila 2
bit 7 = fila 3
bit 8 = fila 4
Bit 8 es la última fila
El valor Y también se desplaza a la izquierda, esta vez justo por su auto, luego nada añadido.
Finalmente los dos son unidos juntos en 1 byte en lugar de 2 bytes la mitad (nibbles), usando bitwise o (el símbolo | ) ocupa dos bytes y básicamente les suma, deja para asumir
X = 10000000
Y = 00000001
--------------------
O = 10000001
fila 4 columna 1
a = 1 << (X + 4) | 1 << Y;
Y finalmente shiftOut y mostrar la imagen actual, seguir haciendo hasta que no tengamos ningún dato más en la matriz... demora un momento y lazo para siempre, ya que estábamos cambiando datos a la izquierda tenemos el MSB para ser en el último pin de salida del envío de registro de turno en primer lugar.
shiftOut (datos, reloj, MSBFIRST, out); cambiar el byte de salida a nuestro registro
Delay(1); retrasarlo abit así tiene oportunidad de dejar un punto de luz en tus ojos
No dude en hacer sus propias imágenes y efectos, hay 3 archivos de ejemplo, la cara sonriente y un tablero de ajedrez (que se ve más como rayas) y finalmente un fabricante de chispa al azar