Nesta aula prática eu vou demonstrar o uso de todos os pinos de IO digitais da placa Arduino UNO. Vamos usar os pinos de IO como saídas para atuar 13 LEDs montados em uma base protoboard.

Para está montagem vamos utilizar o seguinte material:

13 LEDs vermelhos comuns.

13 resistores de 330 R-1/3W- 5%

1 base protoboard

conjunto de cabos.

img_20161210_094354627

 

O esquema que iremos utilizar é muito simples. O terminal positivo do LED (anodo) vai ligado ao positivo da fonte e o terminal negativo (catodo) vai ligado ao resistor que por sua vez vai ser ligado ao terminal de IO da placa Arduino. O esquema para cada LED é o seguinte:

figled1

O valor do resistor será de 330 ohms para que a corrente do LED fique por volta de 15 mA, o suficiente para ter boa luminosidade e não exigir demais da placa do Arduino.

A base de montagem protoboard possui furos com terminações internas que são usadas para realizar as ligações entre os componentes segundo o esquema.

protoboard1

No caso da base mostrada acima as linhas anotadas com + e – possuem conexões na horizontal e são utilizadas para distribuir a tensão para o circuito. As colunas internas numeradas de 1 a 30 possuem conexões na vertical. Existe mais de um modo de realizar a montagem que queremos. Abaixo está a minha sugestão:

img_20161210_095827825

Agora só falta fazer a ligação do positivo + e dos pontos de IO digital da placa Arduino. Nas lojas que vendem placas de Arduino é possível comprar um conjunto de cabinhos com terminações apropriadas para fazer a conexão dos sinais da placa com o protoboard, é bastante prático.

De cada um dos lados da placa Arduino, temos os conectores de ligação com os sinais e alimentação da placa. Em um dos lados temos os sinais de IO digitais identificados com os números 0 a 13. Neste projeto vamos utilizar os sinais de número 1 a 13 e deixar livre o sinal 0. Vamos conectar cada um desses sinais em um resistor na base protoboard. Um detalhe, alguns desses sinais na placa Arduino tem um sinal ~ antes do número. Isso quer dizer que esses sinais tem uma função especial chamada PWM, mas por enquanto não vamos utilizar esta função e todos os sinais vão ser iguais neste projeto.

O ponto comum positivo (+) da base protoboard vai ser ligado ao ponto +5V da placa Arduino. Depois de todas as conexões feitas o circuito fica igual a figura abaixo:

img_20161210_101341146

O próximo passo é criar o programa que irá acionar os LEDs em sequência.

Primeiro você tem que conectar a placa Arduino ao computador pelo cabo USB, lembrando que só de conectar o cabo ao computador a placa já fica energizada e se houver um programa carregado ele já é executado automaticamente. Se o último programa carregado for o que fizemos nas aulas anteriores (Blink) um dos LEDs montados na base protoboard irá começar a piscar juntamente com o LED interno da placa. Isso porque o sinal que atua o LED interno da placa é o mesmo que esta conectado ao pino 13, e assim esse sinal vai atuar os 2 juntos. Na verdade eles atuam de forma invertida, ou seja, quando um deles acende o outro apaga e vice-versa. ao contrário do esquema que utilizamos com o comum ligado ao positivo da fonte, o LED interno está ligado no negativo da fonte e é atuado quando o sinal da porta está em nível lógico 1.

Agora você vai abrir o programa IDE do Arduino no seu computador e fazer uma cópia do programa exemplo Blink renomeando ele com o nome que você escolher. Neste ponto você pode compilar o programa do jeito que está e verificar que ele carrega na placa fazendo piscar o LED da saída 13, que é o que faz o programa exemplo Blink.

Vamos alterar o programa primeiramente criando uma variável do tipo char chamada contador e inicializá-la com o valor 1.

ide1

Como pode ser visto, a declaração de variáveis feita logo no início do programa (antes só temos os comentários) define a variável como global, ou seja, ela pode ser vista e acessada por qualquer rotina dentro do programa em uso.

Em seguida vamos alterar a rotina Setup(). Como vimos anteriormente esta rotina é utilizada para fazer as definições de como a placa Arduino deve funcionar. Ela é executada logo no inicio do programa e não é chamada mais durante a execução do programa.

Vamos colocar uma função do tipo pinMode() para cada pino de saída que iremos utilizar definindo elas como saídas. Cada vez que chamamos a função pinMode colocamos entre parenteses os argumentos da função. O primeiro argumento define o número do pino e o segundo o modo que ele irá trabalhar, neste caso OUTPUT.

ide2

Finalmente vamos editar a rotina loop() do programa. Esta parte do programa é a que fica sendo executada continuamente em looping. Apague o que estiver dentro dela e escreva o código a seguir:

ide3

A função digitalWrite() é a mesma que utilizamos no programa Blink mas agora o primeiro argumento dela é a variável contador. A primeira vez que esta função for executada no programa o valor da variável contador será 1 porque este é o valor que ela foi inicializada na primeira linha do programa. Assim o LED que esta ligado ao pino 1 vai acender e apagar em um tempo definido pelo valor na função delay, neste caso 200 milisegundos.

Em seguida a variável contador é incrementada e comparada com o valor 13. Isso faz a variável contador ter um valor diferente a cada vez que o looping é executado fazendo os LEDs piscarem em sequencia. Quando o valor de contador for maior que 13 seu valor é reinicializado com 1 e o ciclo recomeça. Depois de compilado e os erros corrigidos o resultado deve ser todos os LEDs piscarem sequencialmente. Caso algum deles não acenda, verifique as conexões e também a polaridade do LED. Um LED invertido não vai acender.

Depois disso você pode alterar o tempo das funções delay para fazer o sequenciador ficar mais rápido ou mais lento. Outra sugestão é você tentar fazer mais de um LED acender ao mesmo tempo ou ainda fazer eles piscarem com uma sequencia crescente e decrescente.

Se funcionar, enviem um email ou deixem um comentário.

Abraços.