ArduinoNovidadeSérie Arduino

Projetos com LEDS e Arduino: Ideias para quem está começando

Está começando a explorar o mundo do Arduino e não sabe por onde começar? Os projetos com LEDs são um excelente ponto de partida! Simples, acessíveis e muito visuais, eles ajudam a entender os primeiros conceitos da eletrônica e da programação de forma prática.

Neste tutorial, selecionamos cinco projetos clássicos para quem está começando. Com poucos componentes e explicações diretas, cada exemplo foi pensado para ensinar um conceito importante, do controle básico de um pino digital até o uso de lógica condicional e variação de brilho com PWM.

Prepare os materiais e vamos a prática!

MATERIAIS NECESSÁRIOS

1 x Placa Uno SMD R3 + Cabo – Compatível com Arduino;
1 x Kit com LEDs Coloridos difuso 5mm;
1 x Kit com 20 Resistor 220 Ohms.

Dica! Para quem está começando e quer praticidade, o Kit Iniciante em Robótica com Tutorial para Arduino é uma excelente opção. Ele já vem com os componentes essenciais, além de uma apostila digital com 20 projetos explicados passo a passo, incluindo o jogo da memória. Com esse kit, dá para montar todos os projetos deste tutorial e ainda explorar muitos outros, sem complicações.

PROJETO 1: PISCA LED

O projeto Pisca LED (também conhecido como Blink) é o clássico “olá, mundo” do Arduino. Com ele, é possível aprender como controlar a saída digital de um pino, acendendo e apagando um LED em intervalos definidos.

Esquemático de ligação

Código

/*
----               PROJETO BLINK             ----
=================================================
== BLOG DA ROBOTICA - www.blogdarobotica.com ==
=================================================
Autor: Carol Correia Viana
E-mail: [email protected]
Facebook: facebook.com/blogdarobotica
Instagram:@blogdarobotica
YouTube: youtube.com/user/blogdarobotica
=================================================
== CASA DA ROBOTICA - www.casadarobotica.com ==
=================================================
Facebook: facebook.com/casadaroboticaoficial
Instagram:@casadarobotica
=================================================
*/
int ledPin = 9;//Atribui o valor 9 a variável inteira ledPin, que irá representar o pino digital 9
void setup() {
    pinMode(ledPin, OUTPUT);//Define ledPin (pino 9) como saída
  }
  void loop() {
    digitalWrite(ledPin, HIGH);//Coloca ledPin em nível alto (5V)
    delay(1000);//Espera 1000 milissegundos (1 segundo)
    digitalWrite(ledPin, LOW);//Coloca ledPin em nível baixo (0V)
    delay(1000);//Espera 1000 milissegundos (1 segundo)
  }

PROJETO 2: SEMÁFORO SIMPLES

O projeto simula o funcionamento de um semáforo utilizando três LEDs (vermelho, amarelo e verde). Ele é ideal para praticar a programação de múltiplos pinos e aprender a controlar a ordem e o tempo de acionamento dos LEDs, simulando uma situação do cotidiano.

Esquemático de ligação

Código

/*
----       PROJETO SEMÁFORO SIMPLES          ----
=================================================
== BLOG DA ROBOTICA - www.blogdarobotica.com ==
=================================================
Autor: Carol Correia Viana
E-mail: [email protected]
Facebook: facebook.com/blogdarobotica
Instagram:@blogdarobotica
YouTube: youtube.com/user/blogdarobotica
=================================================
== CASA DA ROBOTICA - www.casadarobotica.com ==
=================================================
Facebook: facebook.com/casadaroboticaoficial
Instagram:@casadarobotica
=================================================
*/

//Declarar as variáveis
int vermelho = 13;
int amarelo = 12;
int verde = 11;

void setup() { //Configurações iniciais do programa
  pinMode(vermelho, OUTPUT); //Defino o pino como entrada
  pinMode(amarelo, OUTPUT); //Defino o pino como entrada
  pinMode(verde, OUTPUT); //Defino o pino como entrada
}

void loop() {
  digitalWrite(verde, HIGH); //Liga o LED verde 
  delay (5000); //Aguarda 5 segundos
  digitalWrite(verde, LOW); //Desliga o LED verde 
  digitalWrite(amarelo, HIGH); //Liga o LED amarelo 
  delay(2500); //Aguarda 2,5 segundos
  digitalWrite(amarelo, LOW); //Desliga o LED amarelo
  digitalWrite(vermelho, HIGH); //Liga o LED vermelho 
  delay (5000); //Aguarda 5 segundos
  digitalWrite(vermelho, LOW);//Desliga o LED verde 
}

PROJETO 3: SINALIZADOR DE CÓDIGO MORSE

O sinalizador de código Morse é um projeto que transforma o LED em um meio de comunicação. Por meio de piscadas rápidas e lentas, o Arduino envia mensagens codificadas, simulando o sistema Morse usado em radiocomunicações.

Ao programar o sinalizador, é possível aprender sobre estrutura de repetições e decisões condicionais.

Esquemático de ligação

Código

/*
----      SINALIZADOR DE CÓDIGO MORSE        ----
=================================================
== BLOG DA ROBOTICA - www.blogdarobotica.com ==
=================================================
Autor: Carol Correia Viana
E-mail: [email protected]
Facebook: facebook.com/blogdarobotica
Instagram:@blogdarobotica
YouTube: youtube.com/user/blogdarobotica
=================================================
== CASA DA ROBOTICA - www.casadarobotica.com ==
=================================================
Facebook: facebook.com/casadaroboticaoficial
Instagram:@casadarobotica
=================================================
*/

int LED = 11; //Atribui o pino 11 à variável LED

void setup() {
  pinMode(LED, OUTPUT); //Define LED como saída
}

void loop() {
  // Letra S (•••) - Três pontos curtos
  for (int i = 0; i < 3; i++) { //Estrutura de repetição que fará o LED piscar 3x
    digitalWrite(LED, HIGH); //Liga o LED
    delay(200); //Mantém o LED ligado por 200ms
    digitalWrite(LED, LOW); //Desliga o LED
    delay(400);//Pausa entre as letras
  }

  // Letra O (–––) - Três traços longos
  for (int i = 0; i < 3; i++) {
    digitalWrite(LED, HIGH); //Liga o LED
    delay(600); // Mantém o LEd ligado por 500ms
    digitalWrite(LED, LOW); //Desliga o LED
    delay(400); //Pausa entre as letras
  }

  // Letra S (•••) novamente - Três pontos curtos
  for (int i = 0; i < 3; i++) {
    digitalWrite(LED, HIGH); //Liga o LED
    delay(200); //Mantém o LED ligado por 200ms
    digitalWrite(LED, LOW); //Desliga o LED
    delay(400); //Pausa entre as letras
  }

  delay(1000); // Pausa entre repetições
}

PROJETO 4: LEDS SEQUENCIAIS

O projeto de LEDs sequenciais é uma ótima forma de aprender como o Arduino pode controlar vários componentes ao mesmo tempo, acendendo cada LED em uma ordem definida. Essa lógica é usada em brinquedos, painéis luminosos e até em efeitos especiais.

Neste projeto, os LEDs acendem um por um, criando uma sequência que pode ser modificada com facilidade. É uma excelente atividade para treinar o uso de arrays e estruturas de repetição, essenciais na programação com Arduino.

Esquemático de ligação

Código

/*
----       PROJETO LEDS SEQUENCIAIS          ----
=================================================
==  BLOG DA ROBOTICA - www.blogdarobotica.com  ==
=================================================
Autor: Carol Correia Viana
E-mail: [email protected]
Facebook: facebook.com/blogdarobotica
Instagram:@blogdarobotica
YouTube: youtube.com/user/blogdarobotica
=================================================
== CASA DA ROBOTICA - www.casadarobotica.com ==
=================================================
Facebook: facebook.com/casadaroboticaoficial
Instagram:@casadarobotica
=================================================
*/

//Cria um vetor chamado 'portas' contendo os números das portas digitais de 5 a 13
int portas[9] = {5, 6, 7, 8, 9, 10, 11, 12, 13};

void setup() {
  Serial.begin(9600);  // Inicializa a comunicação serial com velocidade de 9600 bps
  for (int i = 0; i < 9; i++) {   // Configura todas as portas do vetor como saída (OUTPUT)
    pinMode(portas[i], OUTPUT);
  }
}

void loop() {
  for(int i=0; i<9; i++){ //Acende os LEDs conectados nas portas de 5 a 13, um por um, com intervalo de 100 ms
  digitalWrite(portas[i], HIGH); // Liga a porta
    delay(100); // Espera 100 milissegundos
  }
  
  for(int i=9; i>=0; i--){ // Apaga os LEDs na ordem inversa (de 13 a 5), um por um, com intervalo de 100 ms
  digitalWrite(portas[i], LOW); // Desliga a porta
    delay(100); // Espera 100 milissegundos
  }
  delay(1000); // Espera 1 segundo antes de reiniciar o ciclo
}

PROJETO 5: FADE LED – CONTROLE DA INTENSIDADE DO BRILHO DO LED

Neste projeto, o objetivo é fazer o LED acender e apagar suavemente, criando um efeito de transição de brilho. Esse comportamento é possível graças ao uso de um sinal PWM (Modulação por Largura de Pulso), recurso presente em algumas portas do Arduino.

Com essa prática, é possível aprender como controlar gradualmente a intensidade de um sinal elétrico enviado a um componente, no caso, um LED. Esse controle é feito por meio da função analogWrite(), que permite simular níveis variados de tensão entre 0 e 255, resultando em diferentes níveis de brilho percebido.

Esquemático de ligação

Código

/*
----             FADE LED PWM                 ---
=================================================
== BLOG DA ROBOTICA - www.blogdarobotica.com ==
=================================================
Autor: Carol Correia Viana
E-mail: [email protected]
Facebook: facebook.com/blogdarobotica
Instagram:@blogdarobotica
YouTube: youtube.com/user/blogdarobotica
=================================================
== CASA DA ROBOTICA - www.casadarobotica.com ==
=================================================
Facebook: facebook.com/casadaroboticaoficial
Instagram:@casadarobotica
=================================================
*/

int ledPin = 9;//Porta que o LED está conectado
int brilho = 0;//variável que armazenará o brilho do LED
int fade = 5;//Variável que determina quantos pontos o brilho deve aumentar ou diminuir

void setup()
{
  pinMode(ledPin, OUTPUT);//Define ledPin como saída
}

void loop()
{
  analogWrite(ledPin,brilho);//Envia um PWM proporcional ao valor do brilho para o LED ligado ao pino 9
  brilho = brilho + fade;//Acrescenta 5 pontos no brilho a cada loop
//Inverte a direção do Fade caso ultrapasse os limites da escala do analogWrite()  
  if(brilho == 0 || brilho == 255){//Se brilho for igual a 0 ou brilho for igual a 255
    fade = -fade;//Inverte a direção do Fade
  }
  delay (30);//Intervalo de 30 milissegundos
}

Continue explorando, testando e criando. A robótica e a eletrônica estão cheias de possibilidades, e esse é só o começo da jornada.

Se quiser compartilhar seus resultados ou tirar dúvidas, deixe um comentário no Blog da Robótica. Vamos adorar ver o que você construiu!

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Carol Correia Viana

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Visão geral de privacidade

Este site usa cookies para que possamos oferecer a melhor experiência de usuário possível. As informações dos cookies são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.