Sequencial de Leds com Arduino Uno
Neste post vou apresentar o circuito do sequencial de leds com Arduino, um projeto que você pode fazer com componentes baratos e muito fáceis de encontrar.
O sequencial de leds funciona da seguinte maneira: os leds vão piscando alternadamente da esquerda para a direita e quando chegam na extremidade mudam o sentido, piscando da direita para a esquerda.
A velocidade com que eles piscam é determinada por um potenciômetro rotativo, e você pode utilizar esse projeto para fins educativos ou, com pequenas alterações na ligação dos leds, utilizar em projetos de decoração, árvores de natal, iluminação de gabinetes, etc.
Circuito com Arduino Uno
No circuito, utilizei 10 resistores de 10K ohms e 10 leds vermelhos, e nas extremidades, resistores de 4,7 K apenas para dar um efeito diferente, ou seja, com uma resistência menor, os leds vão piscar com mais intensidade.
Uma outra opção é vc colocar por exemplo leds de outras cores nas extremidades (verde, amarelo, etc).
O potenciômetro utilizado para controle do “movimento” é de 10K ohms, mas pode ser utilizado um de menor valor.
Não esqueça de, SEMPRE, desligar o cabo usb ou o conector de força quando estiver montando o circuito, ok?
No circuito abaixo utilizamos uma placa Arduino Uno mas o esquema pode ser facilmente reaproveitado para usar com outras placas como o Arduino Mega 2560 e o Arduino Nano, entre outros.
Observe que o pino central do potenciômetro está conectado na porta analógica A2.
Isso faz com que o valor lido do potenciômetro, entre 0 e 1024, seja depois convertido e usado para determinar o ritmo em que os leds vão piscar.
Quem tem o livro Arduino Básico vai notar que o código é praticamente igual ao apresentado no livro (Projeto 6). Fiz algumas alterações de nomes de variáveis e coloquei uma linha para escrever o valor da entrada analógica na saída serial, apenas para fins de acompanhamento.
Programa Sequencial de Leds com Arduino
O programa não usa nenhuma biblioteca do Arduino em especial. Usamos apenas as portas digitais para conexão do led e uma porta analógica que vai ler o valor do potenciômetro conectado na placa.
//Programa: Sequencial de Leds com Arduino //Baseado no projeto sequencial de leds do Livro //Arduino Basico - Autor Michael Roberts //Alteracoes: Arduino e Cia //Cria um array para os pinos dos Leds byte Pinosled[]={4,5,6,7,8,9,10,11,12,13}; int ledDelay; / Intervalo entre as alterações int direcao = 1; //Direcao do "movimento" int ledatual = 0; unsigned long changeTime; //Pino analogico 2 definido como entrada para o potenciometro int potPin = 2; void setup() { Serial.begin(9600); //Inicializa a comunicacao serial for (int x=0; x<10; x++) //Loop que define todos os pinos como saída { pinMode(Pinosled[x],OUTPUT); } changeTime=millis(); } void loop() { //Varia o valor de ledDelay conforme o valor do potenciometro, //alterando a velocidade do efeito ledDelay = analogRead(potPin); //Escreve o valor de leitura do potenciometro na saida serial Serial.println(ledDelay); //Verifica se já transcorreram ledDelay ms desde a última alteração if ((millis() - changeTime) > ledDelay) { changeLED(); changeTime = millis(); } } void changeLED() { for (int x=0; x<10; x++) //Apaga todos os LEDs { digitalWrite(Pinosled[x], LOW); } digitalWrite(Pinosled[ledatual], HIGH); //Acende o LED atual ledatual += direcao; //incrementa de acordo com o valor de direction //altera a direção se tivermos atingido o fim if (ledatual == 9) {direcao = -1;} if (ledatual == 0) {direcao = 1;} }
Experimente abrir o serial monitor da IDE do Arduino, girar o potenciômetro e veja como os valores vão se alterando, conforme a figura abaixo:
Os valores mostrados se referem ao valor lido do potenciômetro pela porta analógica. A faixa vai de 0 a 1023.
Abaixo, você confere um vídeo deste projeto em funcionamento:
Gostou do projeto Sequencial de Leds com Arduino? Confira outros posts utilizando placas arduino aqui mesmo no Arduino e Cia!
estou montando um projeto, tenho 8 LEDs conectados ao arduino, e um potenciômetro ,
quero fazer assim, se o valor lido no pot ser 0 (zero) , todas as luzes ficam apagadas , e conforme for aumentando o potenciômetro, vai acendendo uma , depois duas , depois tres até chegar ao fim do potenciometro com todas as 8 ligadas, e soar um bip ! criei um codigo desde o inicio , porem nao funciona alguem poderia me auxiliar
ps: nao tenho lucro nenhum com o projeto, estou estudando arduino e queria só aumentar meu conhecimento a respeito do mesmo!!
se eu nao me engano tem que adicionar a biblioteca do buzzer se foro caso!
to preçiando do codigo do app inventor e do arduino para controlar a intensidade de um led com islider
Por favor, qual a mudança devo fazer no código para o efeito ficar apenas em uma direção?
Obrigado
Oi Alex,
Troque as linhas 58 e 59 por:
if (ledatual == 9)
{ ledatual = 0;};
Abraço!
Eu fiz isso " if (ledatual == 9)
{ledatual = 0;}; ",
e não deu certo!
Teria alguma outra opção?
Gostaria de saber se é possível multiplicar as saídas tx e rx Uart
Quero controlar 5 leds,sendo que quero ter a opção de ligar ou desligar eles separadamente,alguém sabe como??