Você está na página 1de 24

Martin Evans

Joshua Noble
Jordan Hochenbaum

Novatec

Original English language edition published by Manning Publications Co., Sound View CT.#3B, Greenwich, CT
06830 USA. Copyright 2013 by Manning Publications. Portuguese-language edition for Brazil copyright 2013
by Novatec Editora. All rights reserved.
Edio original em ingls publicada pela Manning Publications Co., Sound View CT.#3B, Greenwich, CT 06830
USA. Copyright 2013 pela Manning Publications. Edio em portugus para o Brasil copyright 2013 pela
Novatec Editora. Todos os direitos reservados.
Novatec Editora Ltda. 2013.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta obra, mesmo
parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora.
Editor: Rubens Prates
Traduo: Camila Paduan
Reviso tcnica: Rodrigo Stulzer
Reviso gramatical: Marta Almeida de S
Editorao eletrnica: Carolina Kuwabata
ISBN: 978-85-7522-373-4
Histrico de impresses:
Agosto/2013

Primeira edio

Novatec Editora Ltda.


Rua Lus Antnio dos Santos 110
02460-000 So Paulo, SP Brasil
Tel.: +55 11 2959-6529
Fax: +55 11 2950-8869
E-mail: novatec@novatec.com.br
Site: www.novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
VC20130812

captulo 1

Ol Arduino

Este captulo aborda


A histria do Arduino
Hardware do Arduino
Configurao de hardware e software
O primeiro LED intermitente
Para que o Arduino pode ser usado? As respostas so surpreendentemente diversificadas. O Arduino tem sido usado em uma grande variedade de projetos:
Videogames, tais como Pong e Space Invaders, que traro a alguns leitores
lembranas de sua infncia e introduziro outros nos jogos que seus pais
jogavam quando eram jovens, com grficos monocromticos e efeitos sonoros simples.
Robs seguidores de linha (line-following robots), que introduzem princpios de robtica, mas tambm so usados em fbricas e armazns para
entrega de componentes ao longo de trajetos predeterminados.
Harpas de Luz que produzem msica com um aceno de mos, como as
usadas internacionalmente pelo executor Little Boots.
Controladores MIDI que controlam uma srie de instrumentos.
Robs autobalanceados que imitam o Segway.
Todos esses so exemplos de projetos construdos com o uso do Arduino, um
microcontrolador to pequeno que cabe na palma de sua mo. Originalmente
concebido para ser utilizado como uma ferramenta para projetos de computao
por designers e estudantes de arte, o Arduino tem sido adotado como a ferramenta preferida das comunidades de desenvolvedores e fabricantes interessados
na construo e prototipagem de seus prprios projetos.

24

Captulo 1 Ol Arduino

25

Neste captulo, veremos a histria do Arduino e como ele se tornou a ferramenta


que muitos fabricantes escolhem ao iniciar um novo projeto. Este histrico inclui
suas origens no Interaction Design Institute de Ivrea e explica por que ele se tornou
to necessrio. Abordaremos ento os diferentes tipos de Arduinos disponveis e as
vantagens e desvantagens de cada um deles. Tambm veremos o que voc precisa
para comear: ferramentas, equipamentos e componentes eletrnicos sugeridos.
Finalmente, completaremos este captulo de abertura olhando para o ambiente
de desenvolvimento integrado do Arduino (IDE) antes de fazer nosso primeiro
projeto: um LED que acende e apaga alternadamente.
Vamos comear vendo de onde o Arduino vem.

1.1 Breve histria do Arduino


O Arduino teve seu incio no Interaction Design Institute na cidade de Ivrea, na
Itlia, em 2005. O professor Massimo Banzi procurava um meio barato de tornar
mais fcil para os estudantes de design trabalhar com tecnologia. Ele discutiu seu
problema com David Cuartielles, um pesquisador visitante da Universidade de
Malm, na Sucia, que estava procurando uma soluo semelhante, e o Arduino
nasceu. Os produtos existentes no Mercado eram caros e relativamente difceis
de usar. Banzi e Cuartielles decidiram desenvolver um microcontrolador que
poderia ser utilizado pelos seus estudantes de arte e design em seus projetos. As
principais exigncias eram que fosse barato o preo almejado no poderia ser
mais do que o que um estudante gastaria se sasse para comer uma pizza e que
fosse uma plataforma que qualquer pessoa pudesse utilizar. David Cuartielles
desenhou a placa, e um aluno de Massimo, David Mellis, programou o software
para executar a placa. Massimo contratou um engenheiro local, Gianluca Martino,
que tambm trabalhou no Design Institute ajudando alunos com seus projetos.
Gianluca concordou em produzir uma tiragem inicial de duzentas placas.
A nova placa foi chamada Arduino em referncia a um bar local frequentado
por membros do corpo docente e alunos do instituto. As placas eram vendidas
em forma de kit para que os alunos fizessem seus prprios projetos. A tiragem
inicial foi rapidamente vendida, e mais unidades foram produzidas para manter
a demanda. Designers e artistas de outras reas ouviram falar do Arduino e quiserem us-lo em seus projetos. Sua popularidade cresceu rapidamente quando
o grande pblico percebeu que o Arduino era um sistema de fcil utilizao, de
baixo custo e que poderia ser usado em seus prprios projetos, bem como era

26

Arduino em Ao

uma excelente introduo para programao de microcontroladores. O projeto


original foi melhorado e novas verses foram introduzidas. As vendas dos Arduinos
oficiais alcanaram agora a marca de 300 mil unidades, e eles so vendidos em
todo o mundo por intermdio de uma srie de distribuidores.
Existe agora um nmero de diferentes verses de placas de Arduino, ento daremos uma olhada nelas na prxima seo.

1.2 Hardware Arduino


Temos at o momento uma srie de verses do Arduino, todas baseadas em um
microprocessador de 8 bits Atmel AVR reduced instruction set computer (RISC).
A primeira placa foi baseada no ATmega8 rodando a uma velocidade de clock de
16 MHz com memria flash de 8 KB; mais tarde, placas tais como a Arduino NG
plus e a Diecimila (nome italiano para 10.000) usava o ATmega168 com memria
flash de 16 KB. As verses mais recentes do Arduino, Duemilanove e Uno, usam
o ATmega328 com memria flash de 32 KB e podem comutar automaticamente
entre USB e corrente contnua (DC). Para projetos que exigem mais Entrada/Sada
e memria, h o Arduino Mega1280, com memria de 128 KB, ou o mais recente
Arduino Mega2560, com memria de 256 KB.
As placas tm 14 pinos digitais, e cada um pode ser definido como entrada ou
sada, e seis entradas analgicas. Alm disso, seis dos pinos digitais podem ser
programados para fornecer uma sada de modulao por largura de pulso (PWM).
Diversos protocolos de comunicao esto disponveis, incluindo serial, bus serial
de interface perifrica (SPI) e I2C/TWI. Includos em cada placa como recurso
padro esto um conector de programao serial in-circuit (ICSP) e um boto
de reset.
NOTA: Placas especializadas chamadas shields podem expandir a funcionalidade
bsica do Arduino; elas podem ser empilhadas umas sobre as outras para
adicionar ainda mais funcionalidade.

Agora veremos os modelos mais comuns de Arduinos disponveis, comeando


com o Arduino Uno.

Captulo 1 Ol Arduino

27

1.2.1 Arduino Uno


O Jantar est Servido era o ttulo do blog que anunciava, em 25 de setembro de
2010, a chegada do Arduino Uno (uno significa um em italiano) e de seu irmo
mais velho, o Mega2560. O Arduino Uno possui compatibilidade de pinos com
os Arduinos anteriores, incluindo o Duemilanove e seu antecessor Diecimila.
A maior diferena entre o Uno e seus antecessores a incluso de um microcontrolador programado ATmega8U2 como um conversor USB-para-serial, substituindo o chipset FTDI obsoleto usado nas verses anteriores. O ATmega8U2
pode ser reprogramado para fazer o Arduino se parecer com outro dispositivo
USB, tal como mouse, teclado ou joystick. Outra diferena que ele possui uma
tenso integrada de 3,3 V mais confivel, o que ajuda na estabilidade de algumas
protees que causavam problemas no passado. Veja o apndice C para obter
especificaes tcnicas completas.

8U2

Tx
Rx

DIGIT AL (PWM-)

UNO

Arduino

ON

RESET

ICSP

L
USB

2
TX 1
RX 0

7
-6
-5

AREF
GND
13
12
-11
-10
-9
8

MADE
IN ITALY

4
-3

A figura 1.1 mostra o layout da placa e os pinos no Arduino Uno.

A2
A3
A4
A5

A0

ANALOG IN

A1

Gnd

5V

Vin

POWER
Gnd

RESET

+ POWER
6-20 VDC
- 7-12 V optimal

3.3V

ATmega328

Figura 1.1 Layout da placa e pinos do Arduino Uno.

O Arduino Uno uma boa opo multiso e sua melhor aposta para uma
placa de partida com fonte de alimentao autochaveada e tenso integrada de
3,3 V regulada.

28

Arduino em Ao

1.2.2 Arduino Duemilanove


O Duemilanove (que significa 2009 em italiano) uma das placas Arduino mais
populares j produzidas, tendo substitudo sua antecessora, a Arduino Diecimila.
Todavia, por sua vez, foi substitudo pelo Arduino Uno, mais novo e mais atual.
O Duemilanove se caracteriza pela seleo de potncia de comutao automtica
entre o externo e o USB e usa o processador ATmega328, embora os modelos
anteriores a maro de 2009 usassem o ATmega168. Seu layout de pinos e capacidades idntico ao Uno e usa o chipset FTDI para comunicao USB para serial.
Se voc for comprar um novo Arduino, deve escolher o Arduino Uno. Se voc j
possui um Duemilanove, considere atualizar para o Uno caso voc precise de uma
tenso de 3,3 V mais estvel ou queira fazer uma programao mais avanada
com o ATmega8U2.

1.2.3 Arduino Ethernet


O Arduino Ethernet uma verso de baixa potncia do Arduino anunciada ao
mesmo tempo em que o Uno. As principais diferenas entre uma verso e outra
so que o Arduino Ethernet possui um conector RJ45 integrado para uma conexo Ethernet e um leitor de carto micro SD. O Arduino Ethernet no possui
um chip controlador USB para serial integrada, mas possui um conector de seis
pinos que pode ser conectado a um cabo FTDI ou a uma porta serial USB para
fornecer um link de comunicao para que a placa possa ser programada. Ela pode
tambm ser alimentada por um mdulo opcional Power over Ethernet (POE), o
qual permite ao Arduino Ethernet retirar sua energia de um cabo Ethernet de
par tranado Categoria 5 conectado.
O Arduino Ethernet ideal para uso em monitoramento remoto e estaes de
registros de dados com leitor de carto micro SD integrado e uma conexo com
uma rede Ethernet com fio para alimentao.

1.2.4 Arduino Mega


O irmo mais velho da famlia Arduino, o Mega, usa um microprocessador de
maior superfcie de montagem. O ATmega1280, o Mega, foi atualizado ao mesmo
tempo que o Uno, e o microprocessador usado agora o ATmega2560. A nova
verso possui memria flash de 256 KB, superior aos 128 KB do original.

Captulo 1 Ol Arduino

29

O Mega fornece um aumento significativo na funcionalidade de entrada-sada em


relao ao Arduino padro; portanto, com o aumento da memria, ele ideal para
aqueles projetos maiores que controlam grandes quantidades de LEDs, possuem
um grande nmero de entradas e sadas ou necessitam de mais de uma porta
serial de hardware o Arduino Mega possui quatro. As placas possuem 54 pinos
digitais de entrada-sada, 14 dos quais podem fornecer sada analgica PWM,
e 16 pinos de entrada analgica. A comunicao feita com at quatro portas
seriais de hardware. A comunicao SPI e o suporte para dispositivos I2C/TWI
esto tambm disponveis. A placa tambm inclui um conector ICSP e um boto
de reset. Um ATmega8U2 substitui o chipset FTDI usado pelo seu antecessor e
processa a comunicao serial USB.
O Mega opera com a maioria dos shields disponveis, mas uma boa ideia verificar
se um shield ser compatvel com seu Mega antes de compr-lo. Compre o Mega
quando voc realmente necessitar utilizar pinos adicionais de entrada-sada e
precisar de maior capacidade de memria. Veja o apndice C para especificaes
tcnicas completas.

A0

ANALOG IN

A2
A3
A4
A5
6
A7

A1

Vin

Gnd

Gnd

3.3V
5V

POWER

2560

SDA 20

SCL 21

DIGIT AL

TX1 18

RX1 19

MEGA

22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52

31
33
35
37
39
41
43
45
47
49
51
53

A8
A9
A10
A11
A12
A13
A14
A15

ARDUINO
RESET

+
6-20 VDC
- 7-12V optimal

RESET

ON

ATmega2560

POWER

TX2 16

Tx
Rx

ICSP

8U2

RX2 17

COMMUNICATION

L
USB

TX3 14

TX0

RX0

PWM

RX3 15

AREF
GND
13
12
11
10
9
8

MADE
IN ITALY

7
6
5
4
3
2
1
0

A figura 1.2 mostra os pinos e o layout da placa.

Figura 1.2 Os pinos e o layout do Arduino Mega; note os pinos adicionais de entrada-sada e
as portas seriais extras comparadas com o Arduino Uno.

Agora vamos dar uma olhada em algumas opes mais especializadas de Arduino.

30

Arduino em Ao

1.2.5 Outras placas Arduino


O Arduino original gerou um grande nmero de variaes que compactou o
projeto de maneiras diferentes, geralmente em resposta a uma necessidade. Vamos
dar uma olhada em dois deles: o Lily-Pad e o Nano.

Lilypad Arduino
Desenvolvido pela SparkFun Electronics e pela Leah Buechley, o LilyPad Arduino timo para projetos txteis e em esteiras industriais. Ele foi projetado com
grandes blocos de conexo que podem ser costurados ao tecido, e h uma gama
de acessrios costurveis disponveis, incluindo sensores de luz, campainhas,
LEDs tricolores, sensores de temperatura, kits de costura e acelermetros. Sua
verso de baixa potncia ainda lavvel; apenas no se esquea de tirar suas
baterias antes de molh-lo.
A principal diferena entre o LilyPad e outros Arduinos uma velocidade de
processamento menor de 8 MHz, em contrapartida normal de 16 MHz. Uma
coisa a se observar: a tenso de entrada no deve exceder 5,5 V. Veja na figura
1.3 uma foto do Lily-Pad Arduino.

Figura 1.3 O LilyPad Arduino adequado para se costurar ao tecido, e h uma gama de
acessrios costurveis disponvel.

Arduino Nano
Se o seu projeto tem espao limitado, o Arduino Nano a melhor escolha.
Projetado e produzido pela Gravitech, a verso 3.0 do Nano (com o processador ATmega328) tem uma mini-USB integrada, um formato compacto para
uso em placas de testes.

Captulo 1 Ol Arduino

31

O Nano possui funcionalidade similar do Duemilanove, mas tem dois pinos


adicionais de entrada analgica. A alimentao para a placa fornecida por
USB ou por dois pinos separados: o pino 30 pode receber uma tenso desregulada entre 6 V e 20 V, ou o pino 27 pode receber uma tenso regulada de 5,5
V. A placa seleciona a tenso que for mais alta.
O tamanho reduzido da placa faz com que seja ideal para projetos com espao
limitado.

1.2.6 Ataque dos clones


Desde o incio, o Arduino foi concebido como um hardware de cdigo aberto
(open-source). Usurios eram livres para acessar o projeto, baixar os arquivos
computer-aided design (CAD) publicados, produzir e vender hardware baseados
neles. Isso levou produo de um nmero de cpias do Arduino, com vrios
fabricantes de clones usando a especificao original para fazer suas prprias
alteraes.
O nome Arduino uma marca registrada que impede que derivados utilizem seu
nome em seus produtos, a menos que a permisso seja dada pela equipe do Arduino.

Seeeduino (Sim, 3 ES)


Se voc gosta da cor vermelha, esta a sua placa. Projetada e produzida por
Seeed Studio, em Shenzhen, na China, o Seeeduino baseado no projeto da
Diecimila, uma das placas iniciais do Arduino, e pode ser comprado com um
microprocessador ATmega168 ou ATmega328. Utiliza componentes SMD
discretos e tem uma cor vermelha caracterstica.
A placa compatvel com o layout de pinos e dimenses da Diecimila. As melhorias incluem a deteco automtica entre alimentao via USB e externa e
melhores fontes de alimentao integradas.

Seeeduino Film
O Seeeduino Film traz um conceito de utilizao diferente daquele de arquitetura baseada em tecido do LilyPad. Este clone Arduino flexvel, o qual pode
tambm ser usado em projetos de registro de dados, tem uma montagem em
superfcie ATmega168 em uma placa de circuito impresso flexvel. Em vez de
shields, a expanso ativada por meio do que os fabricantes chamam de frames. Um frame foi produzido at o momento consistindo de um barmetro,
memria flash de 32 MB e um acelermetro de trs eixos, que deve ser mais
do que suficiente para atingir o objetivo.

32

Arduino em Ao

BoArduino
O BoArduino uma pequena placa similar ao Nano 3.0, mas disponvel apenas
em forma de kit, portanto so requeridas habilidades para solda. Produzido
pela Adafruit Industries, o BoArduino projetado para ser ligado diretamente em uma placa de teste sem solda. O kit est disponvel em duas verses,
uma com USB e outra com uma conexo serial na qual um cabo adicional
requerido. Ele usa o ATmega328.

Sippino
O Sippino um clone miniatura da SpikenzieLabs, compatvel com Arduino,
vendido em forma de kit, e assim como o BoArduino requer conhecimentos
de solda. O Sippino utiliza o ATmega328, mas tambm pode utilizar o ATmega168. Todos os pinos digitais e analgicos de entrada e sada so trazidos
para fora em uma nica linha para que possam ser conectados diretamente
a uma placa de testes sem solda. Um cabo serial FTDI-USB necessrio para
programar a placa.

Ebay
Um grande nmero de placas clone vendido no eBay, muitas dessas placas
so cpias da Duemilanove. Aqui esto algumas coisas a se considerar ao adquirir qualquer clone: tenha certeza de que ele possui um microprocessador
ATmega328 e que os conectores so adequados para adicionar shields.
O primeiro Arduino que compramos no eBay possua conectores machos
ao invs de fmeas, o que tornou difcil adicionar shields. Tambm tivemos
de comprar alguns jumpers especiais para conectar placa de testes. Isso foi
suficiente para que inicissemos, mas melhor evitar tais enganos e verificar
se voc est comprando o que voc realmente deseja.

1.2.7 Obtendo um Arduino


Se voc est procurando um Arduino, recomendamos que comece com o Uno, com
sua conexo USB superior e uma melhor fonte de alimentao regulada integrada.
O Arduino Uno est disponvel em diversas lojas online. As trs mais importantes nos Estados Unidos so SparkFun Electronics (www.sparkfun.com), Adafruit
Industries (http://adafruit.com) e Maker Shed (http://makershed.com/). No Reino
Unido, h a SK Pang Electronics (http://skpang.co.uk) e a oomlout (http://oomlout.
co.uk). Uma lista completa dos distribuidores ao redor do mundo est disponvel
no website principal do Arduino (http://Arduino.cc/en/Main/Buy).

Captulo 1 Ol Arduino

33

Se voc j tem um Arduino, pode iniciar a conexo ao seu sistema e criar seu
ambiente de trabalho.

1.3 Configurando seu ambiente de trabalho


Quando voc receber um Arduino novinho em folha, provavelmente ficar ansioso
para comear. Esta seo deve ajud-lo a acabar com essa ansiedade. Assim que
conectar seu Arduino ao seu computador pela primeira vez, voc aprender o
que necessrio para configurar o seu ambiente de trabalho.
Para iniciar, voc precisar de um Arduino. Como mencionado na seo anterior,
um Duemilanove ou um Uno uma boa opo. Voc tambm precisar de um
cabo USB para conectar o Arduino ao seu computador.

1.3.1 Software para Arduino


Neste momento, seu Arduino somente uma placa com alguns componentes
eletrnicos. Para que ela faa algum trabalho til, voc deve dar-lhe instrues, e
por isso que voc precisa do IDE do Arduino. O IDE do Arduino fornece tudo
o que necessrio para program-lo, incluindo vrios exemplos de programas ou
sketchs que demonstram como conect-lo e comunicar-se com alguns dispositivos
comuns, tais como LEDs, LCDs e alguns sensores.
Voc ficar satisfeito de saber que, assim como o hardware, o software para o
Arduino de cdigo aberto e pode ser baixado gratuitamente de http://Arduino.
cc/en/Main/Software. Tenha certeza de baixar a verso correta para seu sistema. As
verses do IDE esto disponveis para Windows, Mac OS X e Linux. Para instrues completas de cada plataforma, veja o apndice A.
importante familiarizar-se com o IDE, pois onde voc escrever todo o seu
cdigo. No mundo do Arduino, um bloco de cdigos chamado de sketch. Um
sketch fornece ao Arduino uma lista de instrues e o Arduino esboa a sua ideia.
O IDE ajuda a mascarar muito da complexidade do Arduino, tornando-o mais
fcil de desenvolver projetos.
NOTA: O termo sketch vem de Processing, uma linguagem frequentemente ensinada
a estudantes de design e artes, e na qual o Arduino IDE baseado. Aqueles que
j so familiarizados com programao devem pensar em um sketch como sendo
um programa de software.

34

Arduino em Ao

1.3.2 Configurao bsica de hardware


A placa Arduino conectada ao seu computador via USB. O cabo USB fornece os
5 V necessrios para alimentar o Arduino e proporciona energia suficiente para
acender um par de LEDs, permitindo alguma experimentao bsica.

1.3.3 Sua caixa de ferramentas do Arduino


Aqui est uma lista de compras que recomendamos para algum que est comeando a utilizar o Arduino:
Arduino (Uno ou Duemilanove)
Miniplaca de testes (breadboard) e jumpers (usados para montar pequenos
circuitos)
Seleo de LEDs
Seleo de resistores
Bateria de 9 V
Conector da bateria
Fotorresistor
Pequeno motor de corrente contnua ou servomotor
Piezo buzzer (um tipo de alto-falante pequeno, como aqueles encontrados
em cartes musicais)
Potencimetro (um tipo de resistor varivel)
Os projetos tpicos que voc pode desenvolver com esses componentes incluem
LEDs intermitentes, semforos miniatura, uma campainha musical e um interruptor ativado por luz.
Se voc se sentir um pouco mais aventureiro, pode adicionar os seguintes componentes:
GPS Adafruit e shield de registro de dados para gravao de dados de
sensores, hora e posio
Shield Adafruit Wave para reproduo de udio a partir de um carto de
memria SD para efeitos especiais
Shield motor para acionar alguns motores, possivelmente o incio de movimento de robs

Captulo 1 Ol Arduino

35

Um kit de componentes bsicos, incluindo um Arduino e uma seleo de componentes, pode ser adquirido em diversos revendedores que oferecem desconto
quando voc compra um kit.
Agora que seu ambiente de trabalho foi configurado, est na hora de escrever seu
primeiro sketch e executar o hardware equivalente a Hello World.

1.4 Faa algo acontecer!


Antes de voc sair correndo para aproveitar todos estes componentes emocionantes, tudo o que voc precisa para o seu primeiro exemplo um Arduino, pois
todos eles possuem um LED integrado conectado ao pino digital 13. Para este
primeiro exemplo, voc far um LED acender e apagar repetidamente.
NOTA: Se voc quiser se aventurar mais, ns tambm inclumos instrues para
adicionar um LED externo na seo 1.4.3.

1.4.1 Seu primeiro LED intermitente


Os LEDs esto disponveis em uma gama de cores, mas o LED conectado ao
pino 13 do Arduino normalmente verde. O LED acende quando uma corrente
aplicada a ele, ento voc pode usar o pino 13 como uma chave. Quando voc a
ligar, ela acender o LED, e quando voc a desligar, ela apagar o LED.
Vamos comear escrevendo o sketch.

1.4.2 Sketch para fazer um LED piscar


Inicie o IDE do Arduino e copie o cdigo seguinte. Pode parecer um pouco difcil em um primeiro momento, mas no se preocupe. Ns vamos entrar em mais
detalhes sobre o que tudo isso significa mais adiante neste captulo.

Listagem 1.1 Cdigo necessrio para fazer um LED piscar


void setup() {

}

pinMode(13, OUTPUT);

36

Arduino em Ao

void loop() {

digitalWrite(13, HIGH);

delay(1000);

digitalWrite(13, LOW);

delay(1000);
}

O cdigo simples. Voc est atribuindo o pino digital 13 como uma sada e, em
seguida, voc entra em um loop no qual algum cdigo muda o pino 13 para HIGH
ou LOW durante um segundo. O valor do atraso dado em milissegundos, ento
mil milissegundos lhe d um atraso de tempo de um segundo.
NOTA: Certifique-se de copiar o cdigo exatamente como mostrado. Cuidado com o
ponto e vrgula (;) ao final de algumas linhas e o uso correto das letras maisculas.
No que diz respeito ao Arduino, digitalwrite no o mesmo que digitalWrite.

1.4.3 Conectando tudo


Se voc conectar seu Arduino ao seu computador por meio do cabo USB, este
sketch controlar o LED integrado prximo ao pino 13.
Voc pode tambm controlar um LED externo conectando-o entre o pino 13 e o
GND. A conexo mostrada na figura 1.4.

Figura 1.4 LED inserido entre o pino 13 e o GND. Note que a perna menor conectada ao
GND.

Captulo 1 Ol Arduino

37

Note que o LED deve estar conectado de forma correta a perna mais curta
o catodo ou , e a mais comprida o anodo ou +, ento empurre a perna mais
longa dentro do pino 13 e a mais curta dentro do GND. Se voc desconhece alguns
termos da eletrnica, uma boa cartilha pode ser encontrada em http://electronicsclub.info/components.htm.
NOTA: Um resistor limitador de corrente pode ser necessrio para prevenir a
queima do LED, e veremos isso no captulo 2. Por enquanto, vamos apenas usar
o LED integrado existente. Uma vez que o LED foi inserido, voc pode passar
para a prxima seo para testar sketch.

1.4.4 Carregando e testando


Hora de ver se o seu sketch funciona! Primeiro, conecte o Arduino ao seu computador por meio do cabo USB. Voc agora tem alguns ajustes a fazer entre o
software e o Arduino.
Ento voc precisa definir o tipo de placa. Selecione Tools > Board e ento selecione
o tipo de Arduino que voc est usando. Veja a figura 1.5.

Figura 1.5 Neste exemplo, o Duemilanove foi selecionado, mas voc pode ver que h uma
grande lista a escolher.

38

Arduino em Ao

Depois, voc precisa definir a porta serial, pois o USB enxerga o Arduino como
uma conexo serial. Selecione Tools > Serial Port e ento escolha sua porta serial (veja
a figura 1.6). Em um sistema usando Mac OS X para um Arduino Uno, a porta ser
identificada como algo parecido com /dev/tty.usbmodem; para placas mais antigas
como a Duemilanove ou Diecimila, ser algo como /dev/tty.usbserial. Em um
sistema Windows, a porta ser identificada como COM3.

Figura 1.6 Selecione a placa serial correta da lista.


NOTA: A figura 1.6 mostra a seleo para um sistema usando Mac OS X. A porta
em um sistema Windows diferente e ser algo parecido com COM3.

O prximo passo clicar no boto Upload no IDE. Veja a figura 1.7.

Figura 1.7 Clique no boto Upload para carregar o sketch para o Arduino.

Espere alguns segundos, e ento o LED deve comear a piscar em uma taxa de
cerca de uma vez por segundo.
NOTA: O Arduino retm o programa em sua memria mesmo se ele for desligado
at que voc carregue outro sketch.

sempre emocionante quando voc v o primeiro LED piscando e sabe que tudo
est funcionando corretamente, mas isso no tudo o que voc pode fazer com
seu Arduino. Voc agora obter uma viso mais detalhada do IDE e far um tour
na tela principal do editor de cdigos.

Captulo 1 Ol Arduino

39

1.5 Passeando pelo IDE


Como informado anteriormente, o IDE baseado na linguagem Processing, a qual
foi projetada para facilitar a utilizao e a aprendizagem. O IDE fornece tudo o
que voc precisa para escrever e carregar sketches (programas) no Arduino.

1.5.1 O editor principal


Quando o IDE carregado pela primeira vez, ele abre um sketch em branco;
para esse sketch dado automaticamente um nome temporrio com uma data de
referncia. O nome pode ser alterado depois para algo mais apropriado quando
voc salvar o sketch.
A figura 1.8 mostra o IDE que contm um sketch, com anotaes para os vrios
botes e as janelas.

Figura 1.8 Sketch tpico com os botes e as reas da tela rotulada.

40

Arduino em Ao

A barra de tarefas ao longo do topo do editor principal tem as seguintes funes:


Verify Verifica sketches em busca de erros. Os erros so apresentados na
parte inferior da tela.
New Abre um novo sketch.
Open Abre uma lista de sketches salvos previamente e exemplos de sketches.
Save Salva o sketch e solicita um nome se esse for o primeiro a ser salvo.
Upload Verifica o cdigo em busca de erros antes de carregar o sketch para
o Arduino.
Serial monitor Abre o monitor serial em uma nova janela (veja figura 1.9 na
prxima seo).
No parte inferior da tela principal existem duas janelas. A primeira fornece informao
de status e comentrios; a segunda fornece informaes quando voc est verificando
e carregando sketches. Qualquer erro de cdigo tambm ser reportado aqui.
O editor de cdigo adicionalmente verifica a combinao das chaves, {}, usadas
para designar blocos de cdigo, executa o realce de sintaxe e automaticamente
endenta o seu cdigo para facilitar a leitura.

1.5.2 Monitor serial


O monitor serial mencionado na seo anterior monitora os dados entre o Arduino
e o sistema do computador central atravs do cabo USB conectado. O Arduino
pode enviar informaes utilizando cdigo e pode tambm receb-lo. Voc pode
ver isso na figura 1.9.

Figura 1.9 Monitor serial mostrando a sada de um Arduino imprimindo uma tabela ASCII.

Captulo 1 Ol Arduino

41

A parte superior da janela do monitor serial usada para enviar dados ao Arduino.
Voc pode, por exemplo, us-la para enviar comandos de controle ao Arduino,
para girar um servomotor a um nmero varivel de graus ou para abrir ou fechar
um interruptor. A parte principal da janela mostra os dados de sada do Arduino.
Isso pode ser usado para verificar a sada de um GPS ou para executar outro
monitoramento de sinal.
O motor serial muito til para depurao do cdigo ao ligar o Arduino ao sistema
do computador que executa o software que ento interage de alguma maneira com
o Arduino; voc pode usar o monitor serial para verificar se o Arduino est gerando
os dados corretamente no formato esperado. No monitor serial, voc tambm pode
definir a taxa de transmisso usada para a comunicao, a rolagem automtica de
texto e a forma de trmino de linha que anexada aos dados enviados ao Arduino.

1.5.3 Erros de captura


Agora vamos retornar ao editor principal. A rea principal da tela o editor de
cdigo onde voc digita seu cdigo. Uma vez que terminou de introduzir seu
cdigo, voc tem a opo de verificar ou carregar seu sketch ao Arduino.
Quaisquer erros de cdigo so reportados na parte inferior da janela. Na figura
1.10, introduzimos um erro omitindo ponto e vrgula (;) ao final de uma das
linhas do cdigo.
Os detalhes do erro so fornecidos, bem como a linha onde o erro ocorre. O
verificador de cdigo fornece informaes suficientes para apont-lo na direo
correta, se no mostrar exatamente o que est errado. Como voc pode ver na
figura 1.10, o verificador de cdigo identificou corretamente o ; que falta e onde
o erro ocorreu.

1.5.4 Processo
O que o IDE realmente faz com o seu cdigo? Quando voc pressiona o boto
carregar, ele verifica o cdigo procurando erros e executa algumas tradues
mnimas para converter o sketch para um C++ vlido. O cdigo ento compilado, o que significa que convertido numa forma que pode ser entendido pelo
Arduino. O arquivo resultante ento combinado com as bibliotecas padro do
Arduino antes de ser carregado no seu hardware.
Agora que voc fez um tour pelo IDE, hora de ter uma noo melhor dos sketches do Arduino.

42

Arduino em Ao

Figura 1.10 O editor de cdigo reporta um erro que introduzimos no cdigo. O verificador de
cdigo indica em qual linha ele acha que o erro ocorreu, bem como o que ele espera.

1.6 Anatomia de um sketch


Um sketch tpico consiste de duas partes ou rotinas: a primeira a rotina de inicializao chamada setup, e a segunda a rotina chamada loop, que geralmente
contm o corpo principal do cdigo. Vamos dar uma olhada mais detalhada
nessas duas rotinas a seguir.

1.6.1 Uma rotina chamada setup


Quando voc deseja sair para uma corrida, existem coisas que deve fazer antes
de iniciar: colocar seus tnis de corrida, pegar uma garrafa de gua e alongar-se.
Acontece o mesmo com o Arduino. Ele deve ser preparado ou configurado antes
que voc possa trabalhar com ele.

Captulo 1 Ol Arduino

43

Esta configurao est contida dentro de uma rotina de inicializao ou funo


adequadamente chamada setup (veja a listagem a seguir). Coisas tpicas que voc
deve fazer no setup incluem a inicializao dos pinos digitais definindo-os como
INPUT ou OUTPUT e definio da taxa de transmisso para a comunicao serial.

Listagem 1.2 A funo setup


void setup() {
pinMode(13,OUTPUT);
Serial.begin(9600);
}

O cdigo de setup na listagem 1.2 configura o pino 13 como uma sada e configura
a comunicao serial a uma taxa de transmisso de 9.600. O void na frente do
setup apenas significa que a funo no retorna um valor.
Mesmo que voc no tenha algo a configurar, a rotina ainda requerida ou um
erro ser gerado ao verificar ou carregar um sketch. Apenas digite uma funo
vazia com um comentrio no cdigo:
void setup() {
// nada para configurar
{

Agora vamos olhar para a outra funo necessria, loop.

1.6.2 O loop infinito


Quando voc vai para uma corrida, corre do comeo at o fim (no entanto voc
define o fim). o mesmo com um Arduino; ele roda continuamente em uma
rotina de loop ou funo chamada loop at que alguma condio seja satisfeita
ou o Arduino seja desligado. A listagem seguinte mostra o loop para o LED intermitente da listagem 1.1.

Listagem 1.3 Um exemplo de uma funo de loop que pisca um LED aceso e apagado
void loop() {

digitalWrite(13, HIGH);

delay(1000);
digitalWrite(13,LOW);
delay(1000);
}

44

Arduino em Ao

Neste caso, o Arduino fica em loop repetidamente, acendendo o LED por um segundo e apagando por um segundo, e continua at que o Arduino seja desligado.
Agora que voc conhece os princpios bsicos de como escrever um sketch, hora
de fechar o captulo com um lembrete importante.

1.7 Comentando o cdigo


Voc escreveu um grande pedao de cdigo e est realmente orgulhoso. Agora
imagine que, seis meses depois, algum mais est lendo seu trabalho e encontra
o seu sketch, mas no consegue descobrir o que ele faz ou como funciona. Uma
simples descrio ajudaria imensamente. Aqui onde o comentrio do seu cdigo
se torna inestimvel.
Existem duas maneiras de colocar comentrios em um sketch: como uma nica
linha ou como um bloco. Uma nica linha tem barras duplas (//) ao incio da
linha. Isso diz ao compilador que aquele contedo apenas um comentrio e pode
ser ignorado. Se voc deseja adicionar um bloco de cdigos como um comentrio,
inicie o bloco com/* e termine com */.
Ambos os mtodos so demonstrados aqui:
// Este um comentrio de linha nica
/* E este um bloco de comentrio em
algumas linhas
*/

Onde voc deve colocar os comentrios? Cada sketch deve possuir um bloco de
comentrios no topo ou um cabealho do sketch, dando uma descrio do que
o sketch faz, indicando quem o escreveu, a data e o nmero da verso. A prxima
listagem mostra um exemplo de cabealho.

Listagem 1.4 Exemplo de cdigo de cabealho


/*
Cdigo para piscar um LED
Autor: Martin Evans
Data de criao: 1 de Setembro de 2009
Verso 1.0
*/

Captulo 1 Ol Arduino

45

Comentrios de linha nica espalhados por todo o sketch permitiro que voc
veja rapidamente o que as partes individuais do cdigo fazem. Voc no precisa
comentar cada parte do cdigo, somente lugares onde acha que ajudaria algum
a entender o cdigo no futuro. Provavelmente melhor ter muitos comentrios
do que poucos. A listagem seguinte mostra alguns comentrios de cdigos tpicos.

Listagem 1.5 Exemplo de comentrios de cdigos


void setup() {
Serial.begin(9600);

// imprime o ttulo com quebra de linha ao final

Serial.println("ASCII Table ~ Character Map");

}
// primeiro ASCIIcharacter visvel '! o nmero 33:
int thisByte = 33;
/* voc pode tambm escrever caracteres ASCII em aspas simples.
por exemplo. '!' o mesmo que 33, ento voc pode tambm usar este:
int thisByte = '!; */

Estudamos o editor de cdigo e o IDE, vimos como um sketch formado com


a funo setup e loop e discutimos a importncia dos comentrios de cdigos.

1.8 Resumo
Este foi um captulo abrangente, apresentando muitos fundamentos. Comeamos aprendendo um pouco da histria do Arduino e seu incio no Interaction
Design Institute na Itlia. Vimos o layout dos pinos e os principais componentes
do Arduino Uno e Mega. Vislumbramos algumas outras verses do Arduino,
incluindo o Lily-Pad e o Seeeduino Film e o que eles oferecem. Voc configurou
um ambiente de trabalho e escreveu seu primeiro sketch, comeando a ver seu
Arduino ganhar vida.
Vimos em detalhes o software IDE do Arduino e os componentes de um sketch,
com as rotinas setup e loop, o uso do monitor serial e tambm a importncia de
comentar seu cdigo.
O prximo captulo um tutorial que abrange o desenvolvimento gradual de um
projeto e os passos envolvidos para complet-lo.