Mini árvore de Natal com Arduino

Para exercitar os neurónios com um tema alusivo à quadra festiva resolvi fazer uma mini árvore de Natal com o Arduino. A parte complicada acaba por ser a montagem na breadboard dos LEDs com a disposição em triângulo.

Esquema

Video

Sketch

/*
 * Mini mini micro Christmas Tree lights
 *
 * 20111214 Luis Sismeiro
 *
 * RGB LED ---->     *
 *                  * *
 *                 * * *
 *                * * * *
 */

#define LEDS 12
#define PROG00 22
#define PROG01 10
#define PROG02 2
#define PROG03 5
#define PROG04 5
#define PROG05 5
#define PROG06 12

const int pinLedArray[LEDS] = {4, 6, 10, 13, 5, 8, 12, 9, 11, 3, 2, 7};

int ledOut00[PROG00][LEDS] = {
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};

int ledOut01[PROG01][LEDS] = {
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
  {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}
};

int ledOut02[PROG02][LEDS] = {
  {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}
};

int ledOut03[PROG03][LEDS] = {
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0},
  {0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0},
  {1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0},
  {0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0},
};

int ledOut04[PROG04][LEDS] = {
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0},
  {0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0},
};

int ledOut05[PROG05][LEDS] = {
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0},
  {0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0},
  {1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0}
};

int ledOut06[PROG06][LEDS] = {
  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
  {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
  {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
  {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
  {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}
};

void setup() {
  for (int i = 0; i < LEDS; i++) {
    pinMode(pinLedArray[i], OUTPUT);
  }
}

void loop() {
  printProgram(ledOut01, PROG01, 1000);
  printProgram(ledOut00, PROG00, 50);
  printProgram(ledOut00, PROG00, 50);
  printProgram(ledOut00, PROG00, 50);
  printProgram(ledOut02, PROG02, 1000);
  printProgram(ledOut03, PROG03, 1000);
  printProgram(ledOut04, PROG04, 1000);
  printProgram(ledOut05, PROG05, 1000);
  printProgram(ledOut06, PROG06, 1000);
}

void printProgram(int prg[][LEDS], int prgSize, int flickTime) {
  for (int i = 0; i < prgSize; i++) {
    for (int j = 0; j < LEDS; j++) {
      digitalWrite(pinLedArray[j], prg[i][j]);
    }
    delay(flickTime);
  }
}

Etiquetas: ,

Uma resposta to “Mini árvore de Natal com Arduino”

  1. Ilumine o seu Natal com o Arduino!! Says:

    […] http://www.makeuseof.com/tag/arduino-project-flashy-christmas-lights-ornaments/ https://sismeiro.wordpress.com/2011/12/16/mini-arvore-de-natal-com-arduino/ […]

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s


%d bloggers like this: