Monte sua Árvore de Natal com Arduino

Monte sua Árvore de Natal com Arduino

Já estamos em Dezembro e se você ainda não montou a sua árvore de Natal, vamos te ajudar nessa tarefa, mostrando como montar uma árvore de natal utilizando Arduino Uno, placa de fenolite e alguns leds:

Árvore de Natal Arduino

A nossa árvore se encaixa diretamente no Arduino, utilizando as portas digitais 9, 10, 11, 12 e ainda o pino GND na parte superior da placa. Este projeto foi baseado no original de Danilo Larizza.

Lista de material e preparação da placa de fenolite

Para o nosso projeto vamos utilizar o seguinte material, que você encontra na loja FILIPEFLOP:

Antes de mais nada, temos que preparar o suporte para os componentes, no caso, a placa de fenolite, onde vamos apoiar os leds e soldar os demais itens.

Primeiro, faça um desenho na placa de fenolite para marcar as partes que serão cortadas:

Árvore de Natal Arduino - Desenho

Em seguida, recorte a placa de fenolite utilizando a ferramenta de sua preferência. No nosso caso utilizamos uma tesoura, mas você pode utilizar uma serra ou um estilete, por exemplo:

Árvore de Natal Arduino - Corte

Depois de cortada, aplique tinta verde na parte frontal da placa de fenolite, sem excessos, para que a tinta não escorra para a parte traseira:

Árvore de Natal - Pintura

Espere a tinta secar para começar a soldagem dos componentes.

Árvore de Natal Arduino - Soldagem

Circuito Árvore de Natal com Arduino

A soldagem é a parte mais complicada, já que temos que colocar na parte de trás da placa os resistores e também os fios de conexão aos pinos do Arduino. Faça a disposição desses componentes do jeito que achar mais conveniente. A nossa ficou assim:

Árvore de Natal Arduino - Final

Siga o esquema de ligação abaixo, onde a porta 12 controla a “estrela”, na parte superior da árvore. O pino 11 controla os 4 leds vermelhos logo abaixo, o pino 10 os 5 leds verdes e o pino 9 controla os 3 leds vermelhos na parte inferior.

Circuito Árvore de Natal Arduino

Nos pinos 9, 10 e 11 vamos utilizar a função PWM para ajustar a luminosidade dos leds.

Programa Árvore de Natal com Arduino

O programa é bem simples e não usa nenhuma biblioteca específica, apenas as funções de acionamento das portas digitais, e no caso das portas 9, 10 e 11 usamos PWM por meio do comando analogWrite(), passando como parâmetro o pino que será acionado, e o valor analógico desse pino no formato analogWrite(pino, valor):

//Programa: Arvore de Natal com Arduino
//Autor: FILIPEFLOP

#define led_vermelho_inf 9
#define led_verde 10
#define led_vermelho_sup 11
#define led_estrela 12

void setup()
{
  Serial.begin(9600);
  pinMode(led_vermelho_inf, OUTPUT);
  pinMode(led_verde, OUTPUT);
  pinMode(led_vermelho_sup, OUTPUT);
  pinMode(led_estrela, OUTPUT);
}

void loop()
{
  //Aciona os 3 conjuntos via pwm
  Serial.println("\n1 - Executando rotina pwm sequencial");
  digitalWrite(led_estrela, HIGH);
  liga_desliga_leds_pwm(led_vermelho_inf);
  liga_desliga_leds_pwm(led_vermelho_sup);
  liga_desliga_leds_pwm(led_verde);

  //Aciona os 3 conjuntos total alternadamente
  Serial.println("2 - Acendimento total alternado");
  analogWrite(led_vermelho_inf, 254);
  delay(1000);
  analogWrite(led_vermelho_sup, 254);
  delay(1000);
  analogWrite(led_verde, 254);
  delay(1000);
  digitalWrite(led_estrela, 254);
  delay(2000);
  //Desliga os 3 conjuntos total alternadamente
  analogWrite(led_vermelho_inf, 0);
  delay(1000);
  analogWrite(led_vermelho_sup, 0);
  delay(1000);
  analogWrite(led_verde, 0);
  delay(1000);
  digitalWrite(led_estrela, 0);
  delay(1000);

  //Rotina aleatoria
  Serial.println("3 - Executando rotina aleatoria");
  for (int x = 0; x <= 35; x++)
  {
    int valor = random(1, 5);
    int tempo = 300;
    switch (valor)
    {
      case 1:
        analogWrite(led_vermelho_inf, 254);
        delay(tempo);
        analogWrite(led_vermelho_inf, 0);
        break;
      case 2:
        analogWrite(led_vermelho_sup, 254);
        delay(tempo);
        analogWrite(led_vermelho_sup, 0);
        break;
      case 3:
        analogWrite(led_verde, 254);
        delay(tempo);
        analogWrite(led_verde, 0);
        break;
      case 4:
        digitalWrite(led_estrela, 1);
        delay(tempo);
        digitalWrite(led_estrela, 0);
        break;
    }
  }
  
  //Pisca os 4 conjuntos
  Serial.println("4 - Pisca conjunto");
  Serial.println();
  int tempo = 20;
  for (int y = 0; y <= 20; y++)
  {
    delay(tempo);
    analogWrite(led_vermelho_inf, 254);
    delay(tempo);
    analogWrite(led_vermelho_sup, 254);
    delay(tempo);
    analogWrite(led_verde, 254);
    delay(tempo);
    digitalWrite(led_estrela, 254);
    delay(tempo);
    analogWrite(led_vermelho_inf, 0);
    analogWrite(led_vermelho_sup, 0);
    analogWrite(led_verde, 0);
    digitalWrite(led_estrela, 0);
  }
}

void liga_desliga_leds_pwm(int led)
{
  for (int i = 0; i <= 254; i += 5)
  {
    analogWrite(led, i);
    delay(20);
  }
  delay(500);
  //Rotina desligar led vermelho esquerdo pwm
  for (int i = 254; i >= 0 ; i -= 5)
  {
    analogWrite(led, i);
    delay(20);
  }
  analogWrite(led, 0);
}

O loop do programa foi dividido em 4 “blocos”, e em cada um deles temos um efeito da árvore, como acender/apagar lentamente, piscar, acender aleatório, etc. Altere esses blocos para criar seus próprios efeitos!

Gostou ? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo), comente e visite nossa loja FILIPEFLOP!

6
Monte sua Árvore de Natal com Arduino
22 votos, 4.82 classificação média (96% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

7 Comentários

  1. Mateus - 7 de janeiro de 2017

    Boa tarde como eu faço para deixar ela autonoma para qie nao precise do arduino para funcionar

  2. Como fazer um pisca-pisca com Arduino | Blog FILIPEFLOP - 15 de janeiro de 2016

    […] que acompanhou o nosso último post e montou uma árvore de natal com placa de fenolite, tem agora a oportunidade de decorar uma árvore de natal de verdade utilizando leds endereçáveis […]

  3. Daniel Filipe Vieira - 18 de dezembro de 2015

    Eu fiz a arvore, ficou bem legal

  4. Vicente Neto - 18 de dezembro de 2015

    Consegui fazer uma parecida seguindo esse tutorial, só usei outro código que já estava gravado no meu Arduino. Postei no Facebook :D

  5. Andre Mendes - 14 de dezembro de 2015

    Parabens Felipe, achei fantastico a iniciativa e a simplicidade do projeto e materiais… Ja estou a fazer a minha cara!
    Um dica seria abrir espaço no blog ou em algum lugar para voce receber as fotos e videos do pessoal que faz os projetos que voce diponibiliza….
    Valew cara! Mt bom….

Deixe uma resposta