Arduino - Programa 05: Efeito Sequencial com LED
Eletrônica

Arduino - Programa 05: Efeito Sequencial com LED


Olá, vamos ao quinto tutorial de arduino, desta vez trago o código de um efeito sequencial com LED, a ideia em si é simples, acender sequencialmente dez LED's, mas no entanto o código apresenta uma maneira simples e eficiente de acender os dez LED's sem muito quebra-cabeça. 
Então chega de blá blá, e vamos ao código.


// 05 Programa - Efeito Sequencial

byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // laço para declarar os pinos
int ledDelay(65); // intervalo entre as alterações
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
void setup(){ 
// define os pinos com saída
for(int x=0; x<10; x++){
pinMode(ledPin[x], OUTPUT);}
changeTime = millis();
}
void loop(){ 
if((millis() - changeTime)>ledDelay){ // verifica se ja passou ledDelay ms desda a ultima alteração
changeLED();
changeTime = millis();
}
}
void changeLED(){
for(int x=0; x<10; x++){ // apaga todos os led
digitalWrite(ledPin[x], LOW);
digitalWrite(ledPin[currentLED], HIGH); //acende o led atual
currentLED += direction; // incrementa de acordo com o valor direction
// altera a direção se tivermos atingido o fim
if(currentLED == 9) {direction = -1;}
if(currentLED == 0) {direction = 1;}
}


Irei analisar de forma bem rápida este código, pois já temos capacidade de entender o que se passa nas estruturas que já foram mencionadas anteriormente. Observe então a maneira como as saídas digitais estão sendo declaradas, definimos o tamanho delas como byte, fazendo com que menos memória seja ocupada. Em seguida temos colchetes vazios, em igualdade a isso uma chave com as saídas que utilizaremos. Esta é uma maneira rápida de declararmos uma grande quantidade de variáveis com mesma característica. Em seguida utilizamos o comando direction, ele assume somente dois valores (+1 ou -1), esses valores indicam a direção em que o laço percorrerá, sentido positivo ou negativo (imagine a reta dos números reais). Observe que direction foi iniciado em +1, isso fará com que o código inicie do menor para o maior, ou seja, as saídas assumem um valor de 0 a 9, como temos dez LED's, logo o código se inicia em 0 e vai até 9, retornando ao 0 pelo if que está no final, onde se o LED 9 for o último a ser aceso, direction recebe -1, caso contrário direction recebe +1, concluindo assim o loop. 

O comando direction é um comando um pouco vago de teoria no livro, mas acho que podemos pensar nele como um comando para que, dado um conjunto de saídas, podemos acioná-las sequencialmente, para uma dada direção que desejamos. O código tem uma função chamada changeLED(), está função, é responsável por apagar o LED após ele ser acionado.
Destaquei alguns pontos interessantes neste código, a descrição foi bem rápida, porém não dá pra ficar escrevendo um mundo de teoria.

Agora vamos ao melhor, vamos ver como o código funciona na prática, para isso precisaremos dos seguintes materiais:
  1. 1 arduino;
  2. 10 resistores de 300 Ohm;
  3. 10 LED's de 5mm (qualquer cor);
  4. Fios ou jumpers;
  5. 1 protoboard;
Abaixo uma imagem de como deve ser conectado os LED's e os resistores.
Figura 1 - Esquema de conexão dos componentes do hardware.
Logo abaixo trago as fotos da minha montagem, desconsiderem o objeto intruso (minha palheta), no canto inferior direito.
Figura 2 - Minha montagem.
Figura 3 - Minha montagem.
Os programas também podem ser baixados, para isso clique aqui.

Continuando, um vídeo demonstrando o funcionamento do programa.


Espero que tenham gostado deste tutorial, os próximos provavelmente vão demorar mais um tempinho devido ao termino das férias escolares, mas não pensem que eu esqueci do blog. Qualquer dúvida, sugestão, opinião,  deixe o comentário. Até o próximo !



loading...

- Arduino - Programa 07: Interrupção (parte 2)
Prosseguindo o tutorial 7 vou apresentar o segundo modo de interrupção. Este modo permite que ao interrompermos o programa e acionarmos o botão novamente, o hardware inicie de onde parou, ou seja, é realizado uma pausa no programa. Para este programa...

- Arduino - Programa 08: Led Pulsante
Neste tutorial será apresentado um efeito pulsante com LED. Para isso faremos uso de uma saída PWM (Pulse Width Modulation).  Figura 1 - LED PulsanteEste programa traz uma aplicação com iluminação, ou seja, se antes o LED era aceso e apagado,...

- Arduino - Programa 04: Semáforo Interativo Com Led
Continuando os tutoriais de arduino, dessa vez trago o código aprimorado do semáforo anterior. A peculiaridade deste código está no fato do usuário poder interagir com o arduino. Mas, o que estamos a aprender de verdade, é como fazer a leitura de...

- Arduino - Programa 03: Semáforo Com Led
Olá pessoal, continuando os tutoriais, desta vez trago o código do semáforo. Praticamente todo mundo já se deparou com um semáforo de trânsito na vida, e hoje ele nos auxiliará a entender mais alguns comandos da linguagem. Este código é mais...

- Arduino - Programa 02: Sinal De S.o.s
Bom pessoal dando continuidade aos tutoriais de arduino trago dessa vez um programa de sinal de código morse. Para quem não sabe o código morse é um sistema de representação de letras, números e sinais de pontuação através de um sinal codificado...



Eletrônica








.