Fork me on GitHub

Charlieplexing 2

February 3, 2013

Siguiendo con la técnica del Charlieplexing, soldé un par de leds y acá está una mini matriz de leds de 3x3 que se maneja con sólo 6 pines.

Led matrix 3x3 charlieplexing

Para dibujar la matriz completa tenés que recorrer una a una las filas y por cada columna poner en LOW los leds que quieras prender y en HIGH los que quieras apagar. Finalmente ponés unos microsegundos en HIGH la fila y luego la apagás para dejar todo listo para el próximo barrido.

const int rows[3] = {10, 9, 8};
const int cols[3] = {7, 6, 5};

void draw(byte *c) {
    int pos = 0;
    for (int row = 0; row < 3; row++) {
        for (int col = 0; col < 3; col++) {
            digitalWrite(cols[col], (c[pos++] == 1 ? LOW: HIGH));
        }
        digitalWrite(rows[row], HIGH);
        delayMicroseconds(500);
        digitalWrite(rows[row], LOW);
    }
}

byte matrix[9] = {1, 0, 1, 0, 1, 0, 1, 0, 1};
draw(matrix);

El código completo aquí.

Arduino Trabajos Video