Monte sua Árvore de Natal com Arduino 19

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 com Arduino utilizando placa Uno, placa de fenolite e alguns leds:

Árvore de Natal com 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 MakerHero:

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 (usamos fio wire wrap para essas ligações). 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: MakerHero

#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 do artigo? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

19 Comentários

  1. Bacana, foi criativo na montagem da árvore.

  2. Muito bom Adilson, gostei bastante da ideia.. Usei ele para fazer a minha árvore de natal para decorar minha casa, aproveitei e personalizei algumas coisas. Fiz este artigo em meu site para demonstrar meu trabalho. https://tecdicas.com/arvore-de-natal-com-arduino/

    1. Ana Paula,

      Que bom que curtiu! Ficou show!

      Abraços!
      Diogo – Equipe MakerHero

  3. Refiz o projeto, porém o verificador encontrou erro de declaração. Como resolver?

    1. Olá, Felipe,

      Qual declaração ele acusou de erro? Se possível, poste seu erro.

      Abraços!
      Diogo – Equipe MakerHero

      1. Obrigado pela atenção, porem acabei descobrindo o erro. Era um detalhe na digitação. Abraços.

  4. Olá! Gostaria de saber se pode substituir a sold por cola quente!
    Ótimo projeto, abraço!!

    1. Olá Isabelly!

      Não é possível, a cola quente não mantém o contato elétrico.

      Abraços!

      André Rocha – Equipe MakerHero

  5. Boa noite Filipe você vende o quite para montar está arvore de natal precisando de um projeto simples para a faculdade.

    Att Carlos Roberto

  6. Boa noite Filipe você vende o quite para montar está arvore de natal

  7. Bom Dia.
    Caro amigo, não sei se vai olhar esse comentário, o código está apresentando erro na hora de verificar

    exit status 1
    ‘quot’ was not declared in this scope

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

  9. Eu fiz a arvore, ficou bem legal

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

    1. Ah ! Legal Vicente ! 🙂

      Abraço!

      Adilson – Equipe MakerHero

  11. 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….

    1. Bom dia Andre,

      Legal! Vamos estudar essa dica, mas por enquanto você pode tentar publicar a foto da sua árvore no nosso canal no Facebook. 🙂

      Abraço!

      Adilson – Equipe MakerHero

Trackbacks and Pingbacks

  1. […] Aqui você pode encontrar o essencial para construir sua árvore de natal enfeitada com LED e não ter nenhum tipo de problema na hora de colocar a mão na massa. […]

  2. […] desse post lá de 2015, onde fizemos uma árvore de natal DIY (“Do It Yourself” ou “faça […]