Você está na página 1de 5

1

Um Mdulo de Desenvolvimento
para o ARDUINO
by Joo Alexandre da Silveira

Introduo

Em 1978 foi publicado o primeiro livro sobre linguagem C, The C programming


Language, onde seus autores, Kernighan e Ritche, sugerem que o nico caminho
para aprender uma nova linguagem de programao escrever programas nessa
linguagem. Seguindo essa ideia poderamos dizer que a melhor ferramenta para
aprender microcontroladores um mdulo de desenvolvimento, uma plataforma de
hardware que serve para testar os principais comandos da linguagem de
programao do microcontrolador.

Existe no mercado muitos modelos de mdulos de desenvolvimento para


microcontroladores PIC, Atmel e outros que em suas verses mais simples possuem
um conjunto de chaves mecanicas e potenciometros como entradas e um ou dois
grupos de 8 LEDs mais mostradores de 7 segmentos e LCD como sadas para o
microcontrolador embarcado no mdulo.

Nesse artigo propomos a montagem de um pequeno mdulo de desenvolvimento para


o leitor se familiarizar com a linguagem do Arduino.

www.revistadoarduino.com.br

Hardware

Os blocos de software no mundo do Arduino so chamadas de sketches, os de


hardware so chamados de shields. Os shields so feitos de modo que se encaixem
sobre os conectores fmea do Arduino e deste recebam alimentao e acesso a todos
os pinos digitais e analgicos e tambem ao pino de reset. Essa placa de interface,
ou shield, que propomos ao leitor montar contem somente dois potenciometros de
10Kohms, quatro minichaves mecanicas e quatro LEDs de 5 mm. Utilizamos em nossa
montagem uma placa de fibra de vidro de 65x52 mm com perfurao padro de 2,54
mm entre os furos. Os componentes so interligados por pequenos pedaos de fios no
lado oposto, o lado de solda da placa.

Existe porem um problema com essa soluo simples de se montar um shield: a


distancia entre os dois conectores digitais no Arduino no obedece ao padro 2,54mm
da placa, porisso abrimos mo do conector digital da esquerda e montamos somente
o conector da direita e os conectores analgico e de alimentao. Veja na figura 1
como ficou nossa montagem encaixada no Arduino Duemilanove.

figura 1

No diagrama do circuito na figura 2 vemos as quatro chaves conectadas aos pinos


digitais 2 a 5 (os pinos 0 e 1 so pinos reservados para a comunicao serial) e os
cursores dos dois potenciometros ligados nos pinos analgicos 14 e 15. Os quatro
LEDs so ligados aos outros quatro pinos analgicos 16 a 19. Foi incluido na
montagem uma chave de reset e um LED vermelho de 3 mm somente para indicar
que o Arduino est alimentado. Os pinos 6 e 7 no so aqui utilizados.

www.revistadoarduino.com.br

figura 2

A montagem desse shield bastante simples pois os nicos componentes que devem
ser observados quanto polarizao so os LEDs. Na placa perfurada observe a
correta distancia entre as barras de pinos digital e analgica para que se encaixem
corretamente nos conectores fmea do Arduino. Depois de montado o mdulo e
conferida cada ligao encaixe o shield no Arduino. A alimentao para o circuito vir
do seu computador pelo cabo USB, por onde o Arduino e o PC tambem vo se
comunicar.

www.revistadoarduino.com.br

Lista de componentes
R1 a R4 e R9 Resistor 270 ohms x 1/8W
R5 a R8 Resistor 10Kohms x 1/8 W
P1 e P2 Potenciometro linear 10Kohms
LED1 a LED4 Led vermelho 5 mm
LED5 Led vermelho 3 mm
S1 a S5 Chave miniatura 1/0
C1 a C3 Barras de pinos 2,54mm
Outros Placa CI perfurao padro

Software

Podemos testar as funes digitalRead( ) e digitalWrite( ) de entrada e sada digitais


da linguagem do Arduino junto com as chaves e os LEDs do mdulo com osketch da
listagem 1 abaixo.

Listagem 1

int pinSwitch=2;
int pinLed=16;
void setup() {
pinMode(pinLed,OUTPUT);
}
void loop() {
(digitalRead(pinSwitch) == HIGH)?
digitalWrite(pinLed,HIGH):
digitalWrite(pinLed,LOW);
}

A variveis pinSwitch e pinLed indicam os pinos no Arduino onde esto conectados


uma chave mecanica e um LED, respectivamente. O estado de pinSwitch testado
pelo operador ternrio ? que via fazer ou no o LED acender. Note que
nessesketch o pino analgico 16 configurado como sada e o pino 2,
por defaultconfigurado como entrada; se a chave no pino 2 for fechada o LED no pino
16 vai apagar.

A funo analogRead( ) da linguagem do Arduino pode ser testada com um dos


potenciometros do mdulo com o sketch da listagem 2, abaixo. A
varivelpinSensor guarda a posio do cursor do potenciometro. A resistencia do
potenciometro depois de digitalizada pela funo analogRead( ) serve de parametro
para a funo delay( ) que marca o tempo das piscadas do LED na varivel pinLed. O
LED vai estar aceso ou apagado de acordo com o valor da varivel statusLed, que a
cada ciclo muda de estado.

www.revistadoarduino.com.br

Listagem 2

int pinSensor=14;
int pinLed=16;
int statusLed=LOW;
void setup() {
pinMode(pinLed,OUTPUT);
}

void loop() {
delay(analogRead(pinSensor));
digitalWrite(pinLed,statusLed);
statusLed=!statusLed;
}

Acrescentando ao sketch acima um comando for para configurar de uma s vez como
sada os quatro pinos com LEDs e um outro comando for com a mesma estrutura
para selecionar um LED de cada vez podemos criar um bargraph para testar os
quatro LEDs com um s potenciometro. Veja a listagem 3.

Listagem 3

int pinSensor=14;
int statusLed=LOW;
void setup() {
for(int i=16; i<=19; i++) {
pinMode(i,OUTPUT);
}

void loop() {
for (int i=16; i<=19; i++) {
int pinLed=i;
delay(analogRead(pinSensor));
digitalWrite(pinLed,statusLed);
statusLed=!statusLed;
}

Experimente modificar o sketch acima para inverter a sequencia de acionamento dos


LEDs ou tente escrever um outro que utilize tambem as quatro chaves no mesmo
cdigo.

www.revistadoarduino.com.br

Você também pode gostar