- Descrição: O Motor de Passo 28BYJ-48 com Driver ULN2003 é um…

Arduino – Sequencial de LEDs com Potenciômetro
Nesta prática você vai aprender a montar um sequencial de LEDs com Arduino e fazer o controle da velocidade de transição dos LEDs através de um potenciômetro.
Sequencial de LEDs é um dos projetos mais executados por quem está começando com Arduino. É um tipo de projeto simples, mas bem interessante e pode ser feito de diversas formas.
Este nosso sequencial será incrementado com um potenciômetro, que será responsável por variar a velocidade da iluminação dos LEDs.
Para esta prática vamos precisar dos seguinte itens:
– Arduino
– Cabo Jumper Macho-macho
– LEDs
– Resistor de 150Ω
– Potenciômetro Linear de 10Ω
– Protoboard
Monte as ligações conforme o esquema abaixo:
A seguir, você deverá carregar o código na IDE do Arduino. Se você ainda não instalou a IDE do Arduino, acesse o link abaixo e em seguida retorne para continuar:
Arduino – Instalação e Configuração da IDE no Windows
Conecte o Arduino ao computador, abra a IDE, confira a placa e a porta selecionada e carregue o código na placa:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
byte pinosLed[]={7,8,9,10,11}; //CRIA UM ARRAY PARA ALOCAR OS PINOS DOS LEDS int ledDelay; //VARIAVEL DE INTERVALO DA ALTERAÇÃO ENTRE LEDs int dir = 1; //VARIÁVEL QUE CONTROLA A DIREÇÃO DO MOVIMENTO int ledAtual = 0; //VARIÁVEL QUE ARMAZENA A POSIÇÃO DO LED QUE VAI RECEBER O COMANDO (LIGA / DESLIGA) unsigned long changeTime; //VARIÁVEL QUE ARMAZENA O INTERVALO DE TRANSIÇÃO ENTRE OS LEDS int pinoPot = A2; //DEFINE O PINO ANALÓGICO EM QUE O POTENCIÔMETRO ESTÁ CONECTADO void setup(){ for (int x=0; x<5; x++) // PARA X=0, ENQUANTO X FOR MENOR QUE 5, X É INCREMENTADO { pinMode(pinosLed[x],OUTPUT);//DECLARA O PINO COMO SAÍDA } changeTime = millis();//VARIÁVEL RECEBE O VALOR ATUAL DE 'millis' } void loop(){ ledDelay = analogRead(pinoPot); //VARIÁVEL RECEBE O VALOR GERADO PELO POTENCIÔMETRO E ESTE VALOR VAI DEFINIR A VELOCIDADE DE ILUMINAÇÃO DO SEQUENCIAL if ((millis() - changeTime) > ledDelay){// SE 'millis' MENOS 'changeTime' FOR MAIOR QUE 'ledDelay', FAZ changeLED(); //EXECUTA A FUNÇÃO 'changeLED' changeTime = millis(); //VARIÁVEL RECEBE O VALOR ATUAL DE 'millis' } } void changeLED(){ for (int x=0; x<5; x++){ // PARA X=0, ENQUANTO X FOR MENOR QUE 5, X É INCREMENTADO digitalWrite(pinosLed[x], LOW); //APAGA TODOS OS LEDs EM SEQUÊNCIA } digitalWrite(pinosLed[ledAtual], HIGH); // ACENDE O LED CORRESPONDENTE AO PINO QUE ESTÁ EM EVIDÊNCIA ledAtual += dir; //INCREMENTA / DECREMENTA A VARIÁVEL if (ledAtual == 5) {dir = -1;} //SE 'ledAtual' FOR IGUAL A 5, 'dir' PASSA A VALER -1 if (ledAtual == 0) {dir = 1;} //SE 'ledAtual' FOR IGUAL A 0, 'dir' PASSA A VALER 1 } |
Agora gire o potenciômetro para o sentido horário ou anti-horário e veja que a velocidade de transição do sequencial vai aumentar ou diminuir proporcionalmente ao giro.
O potenciômetro pode variar a leitura de 0 a 1023 bits na porta analógica. No código temos um trecho que faz a leitura do valor fornecido pelo potenciômetro e com base neste valor definimos o intervalo de transição do sequencial.
Você pode aumentar o número de LEDs no sequencial, fazer os ajustes necessários no código e deixar seu projeto bem mais interessante.
Gostou deste tutorial? Então deixa seu comentário, dúvida ou sugestão aí embaixo!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Obrigada e até a próxima!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.
Postagem anterior: Ethernet Shield W5100 – Só o LED Vermelho (PWR) acendendo
Próxima postagem: Arduino – Medindo o nível de gás com o Sensor MQ-2 e Buzzer
BOA NOITE, PROJETO MUITO BEM EXPLICADO , MAS E GOSTARIA DE UMA SEQUENCIA SÓ EM UM SENTIDO POR UM TEMPO DEPOIS NO OUTRO SENTIDO ONDE OS TEMPOS EU POSSA DETERMINAR .OBRIGADO POIS NÃO CONSIGO APRENDER MILLIS.
Obrigado por compartilhar esse projeto, como estou aprendendo foi muito útil, funcionou 100%.
Olá Wagner.
Agradeço pelo comentário!
Show de bola!
Vlw!!!