Professional Documents
Culture Documents
MULTILGICA
SHOP
Verso 1.0
ndice
ndice 2
Prefcio 5
A Multilgica-Shop 6
O Que Vou Aprender? 7
Objetivo 7
Fonte de Informao 8
Segurana e Cuidados 9
1 Conceitos Bsicos 10
1.1 Computao Fsica 11
1.2 Open Source Hardware 12
1.3 Software Livre 13
1.4 Arduino 14
1.5 Processing 15
1.6 Fritzing 16
1.7 Creative Commons 17
1.8 Licena da Obra 18
2 Eletrnica 20
2.1 Conceito de Eletrnica 21
2.2 Voltagem 22
2.3 Corrente Eltrica 22
2.4 Corrente Contnua 23
2.5 Corrente Alternada 23
2.6 Resistncia 24
2.7 Lei de Ohm 24
2.8 Sistemas Eletrnicos 25
2.9 Entradas 25
2.10 Sadas 25
multilogica-shop.com
3 Componentes Eletrnicos 32
3.1 Microcontrolador 33
3.2 Protoboard 34
3.3 Resistor 35
3.4 Termistor 36
3.5 Diodo 36
3.6 Transistor 37
3.7 Capacitor 38
3.8 LED 39
3.9 LED RGB 39
3.10 Display de LCD 40
3.11 Boto 41
3.12 Reed Switch 41
3.13 Potencimetro 42
3.14 Fotoclula 42
3.15 Transdutor Piezoeltrico 43
3.16 Motor CC 43
3.17 Rel 44
4 Arduino 45
4.1 O Projeto Arduino 46
4.2 Arduino Uno R3 47
multilogica-shop.com
5 Instalao de Software 51
5.1 Arduino em Windows 52
5.2 Arduino em Mac OS X 57
5.3 Arduino em Linux 63
6 Programao 64
6.1 Conceito de Programao 65
6.2 Linguagem de Programao 66
6.3 Linguagem de Mquina 67
6.4 Linguagem Assembly 67
6.5 Linguagem de Alto Nvel 68
6.6 Algoritmo 68
7 Programao Arduino 69
7.1 Software Arduino 70
7.2 Programando o Arduino 75
multilogica-shop.com
Prefcio
A Multilgica-Shop, a partir
do Guia del Arduino criado
pela Tienda de Robtica da
Colombia, traz este guia
que aborda a aprendizagem
sobre o conceito DIY (Do it
yourself) ou em portugs
Faa voc mesmo.
A partir de um detalhado
estudo elaboramos o Kit
Arduino Iniciante, baseado
na placa Arduino Uno R3,
base para todo este material
didtico.
Neste guia abordaremos
temas fundamentais como
o hardware e software
livre, revisando de maneira
cuidadosa o projeto Arduino
e usando como base o
software Fritzing para
realizar montagens claras e
semelhantes realidade.
No necessrio que
voc saiba de eletrnica
ou programao porque
5
multilogica-shop.com
A Multilgica-Shop
MULTILGICA
SHOP
A Multilgica foi
fundada em 1990 com
foco em tecnologia e
desenvolvimento. Em 2009
iniciou uma nova etapa com
a importao de produtos
Open Source e marcas
relacionadas de grande
expressividade internacional.
O Arduino sempre foi um
dos principais objetivos
e com ele centenas de
produtos hoje fazem parte
do catlogo virtual da loja.
A qualidade no servio e a
ateno ao cliente sempre
estiveram entre nossos
6
multilogica-shop.com
Objetivo
Conhecer o funcionamento
das coisas algo que
estimula nossa curiosidade
desde o incio dos tempos.
Hoje em dia vemos uma
realidade onde encontramos
com facilidade a automao,
a domtica (automao
de casas e edifcios), a
interao entre pessoas e
mquinas, a eletrnica, a
mecnica e a programao.
Quase qualquer processo
que podemos imaginar
e comunicao de uma
mquina com os humanos,
usando sensores e
atuadores.
As decises sero
executadas pelo
microcontrolador que o
ncleo da placa Arduino, o
corao deste material.
multilogica-shop.com
Fonte de Informao
A Wikipedia uma
enciclopdia na nuvem onde
voc pode encontrar grande
variedade de informao em
diferentes idiomas e de
uso livre.
Neste guia incorporamos
contedo da Wikipedia
(textos e imagens) com
o objetivo de explicar os
diversos conceitos que
abordamos. O contedo
da Wikipedia utilizado
neste guia foi traduzido
diretamente em alguns
casos, e em outros os
conceitos foram reeditados
para explicar mais
facilmente uma ideia.
Wikipedia uma
plataforma de contedo
livre, de modo que todo
o texto est disponvel
sob a licena Creative
multilogica-shop.com
Commons (Atribuio
Compartilhamento pela
mesma Licena - by-sa).
A maior parte do contedo
tambm est disponvel sob
a Licena de Documentao
Livre GNU (GFDL). Isso
significa que o contedo
Wikipedia pode ser
distribudo de acordo com o
estabelecido nestas licenas.
Segurana e Cuidados
Sua rea de trabalho um espao muito importante para desenvolver seus projetos Arduino.
Trabalhe sempre em um ambiente tranquilo e bem iluminado e mantenha sua bancada
sempre limpa e seca.
Cuidado ao trabalhar com qualquer tipo de circuito impresso como o prprio Arduino. As
conexes destas placas so expostas, portanto, no apoie sua placa em suportes condutores
e tenha cuidado com cabos desencapados nas proximidades. Embora estas situaes
possam causar curtos circuitos elas no oferecem riscos fsicos devido s baixas voltagens e
potncias envolvidas. Lembre-se, voc no vai se machucar, mas destruir uma placa sempre
frustrante.
Os produtos do site, bem como os kits destinados a iniciantes, so apenas bases para a
compreenso dos princpios de funcionamento dos diversos elementos envolvidos.
Sendo assim, a Multilgica-Shop no se responsabiliza por mal uso dos produtos, impercia
ou falha prtica na execuo dos experimentos. No se responsabiliza pela aplicao em
equipamentos de terceiros, pelo uso comercial de qualquer experimento ou informao
contida, bem como insucesso ou lucros cessantes de qualquer natureza.
No recomenda e no d anuncia em testes com animais, no corpo humano e em suporte de
vida. No se responsabiliza por, e no recomenda o uso em transporte de cargas suspensas.
No se responsabiliza por acidentes ou ferimentos que possam advir de experimentos com
quaisquer de nossos produtos. E no recomenda e desencoraja o manuseio de tenses
diretas da rede de distribuio eltrica.
multilogica-shop.com
1 Conceitos Bsicos
10
multilogica-shop.com
A computao fsica
significa a construo de
sistemas interativos fsicos
mediante o uso de software
e hardware que integrados
podem sentir e responder ao
mundo analgico. Embora
esta definio seja ampla
o suficiente para englobar
aspectos como os sistemas
inteligentes de controle de
trfico de automveis ou os
processos de automatizao
em fbricas, em um sentido
mais amplo a computao
fsica uma estrutura
criativa para a compreenso
da relao entre os seres
humanos e o mundo digital.
Na prtica, frequentemente
este termo descreve
desenhos de projetos
DIY ou objetos que
utilizam sensores e
microcontroladores para
traduzir entradas analgicas
a sistemas baseados em
software, ou controlar
dispositivos eletromecnicos
como motores, servos,
iluminao ou outro
hardware.
11
multilogica-shop.com
Outras implementaes
de computao fsica
trabalham com o
reconhecimento de voz,
que captam e interpretam
as ondas sonoras atravs
de microfones ou outros
dispositivos de deteco de
ondas sonoras, tambm a
viso por computador, que
aplica algoritmos aos vdeos
detectados por algum tipo
de cmera. Interfaces tteis
so tambm um exemplo de
computao fsica.
O prototipado (criar
montagens rpidas com
ajuda de uma protoboard
e componentes bsicos de
eletrnica) tem um papel
importante na computao
fsica. Ferramentas como
o Arduino e o Fritzing
so teis para designers,
artistas, estudantes e
hobistas porque ajudam
a elaborar prottipos
rapidamente.
12
multilogica-shop.com
o hardware facilmente
reconhecida. O design no
hardware (ou seja, desenhos
mecnicos, esquemas,
lista de materiais, dados
de layout do PCB, cdigo
fonte e dados de layout de
circuitos integrados), alm
do software livre que aciona
o hardware, esto todos
liberados com a abordagem
livre e open source.
Anualmente a Open Source
Hardware Association
organiza a conferncia
Open-Hardware Summit,
da qual a Multilgica-Shop
patrocinadora, que
a primeira conferncia
abrangente do mundo
sobre hardware aberto,
um espao para discutir
e chamar a ateno para
este movimento em rpido
crescimento.
13
multilogica-shop.com
e promovem a divulgao
do software livre e suas
vantagens tecnolgicas e
econmicas.
A OSI, assim como muitos
membros da comunidade,
considera que o software
, em primeiro lugar, uma
ferramenta, e que o mrito
dessa ferramenta deve
ser julgado com base em
critrios tcnicos. Para eles,
o software livre no longo
prazo economicamente
mais eficiente e de melhor
qualidade e, por isso, deve
ser incentivado. Alm
disso, a participao de
empresas no ecossistema
do software livre
considerada fundamental,
pois so as empresas
que viabilizam o aumento
no desenvolvimento,
implantao e uso do
software livre.
1.4 Arduino
multilogica-shop.com
engenharia de transportes,
engenharia agronmica,
musical, moda e tantas
outras.
O microcontrolador
da placa Arduino
programado mediante a
linguagem de programao
Arduino, baseada em
Wiring, e o ambiente de
desenvolvimento (IDE) est
baseado em Processing.
Os projetos desenvolvidos
com Arduino podem
ser executados mesmo
sem a necessidade de
estar conectados a um
computador, apesar de
que tambm podem ser
feitos comunicando-se com
diferentes tipos de software
(como Flash, Processing ou
MaxMSP).
As placas podem ser feitas
a mo ou compradas
montadas de fbrica. O
1.5 Processing
15
multilogica-shop.com
1.6 Fritzing
16
multilogica-shop.com
A CC uma organizao
no governamental sem
fins lucrativos localizada
na California, voltada a
expandir a quantidade de
obras criativas disponveis,
atravs de suas licenas
que permitem a cpia e
compartilhamento com
menos restries que o
tradicional todos direitos
reservados.
As licenas Creative
Commons foram idealizadas
para permitir a padronizao
de declaraes de vontade
no tocante ao licenciamento
e distribuio de contedos
culturais em geral (textos,
msicas, imagens, filmes e
outros), de modo a facilitar
seu compartilhamento e
recombinao, sob a gide
de uma filosofia copyleft.
Creative Commons tem
sido abraada por muitos
17
multilogica-shop.com
criadores de contedo,
pois permite controle
sobre a maneira como sua
propriedade intelectual ser
compartilhada.
18
multilogica-shop.com
19
multilogica-shop.com
2 Eletrnica
20
multilogica-shop.com
21
multilogica-shop.com
eltricas elementares,
as propriedades e
comportamento do
eltron, ftons, partculas
elementares, ondas
eletromagnticas, etc.
2.2 Voltagem
Tenso eltrica, tambm
conhecida como diferena
de potencial (DDP) ou
voltagem, a diferena de
potencial eltrico entre dois
pontos ou a diferena em
energia eltrica potencial
por unidade de carga
eltrica entre dois pontos.
Sua unidade de medida o
volt, ou joules por coulomb.
A diferena de potencial
igual ao trabalho que deve
ser feito por unidade de
carga contra um campo
eltrico para se movimentar
uma carga qualquer.
22
multilogica-shop.com
A unidade padro no
Sistema Internacional de
Unidades para medir a
intensidade de corrente
o ampere. Para medir a
corrente, pode-se utilizar um
ampermetro.
Uma corrente eltrica,
j que se trata de um
movimentos de cargas,
produz um campo
magntico, um fenmeno
que pode ser usado como
um eletrom, sendo este o
princpio de funcionamento
de um motor.
multilogica-shop.com
2.6 Resistncia
Resistncia eltrica
a capacidade de um
corpo qualquer se opor
passagem de corrente
eltrica mesmo quando
existe uma diferena de
potencial aplicada. medida
em ohms ().
Resistores so componentes
que tm por finalidade
oferecer uma oposio
passagem de corrente
eltrica, atravs de seu
material. A essa oposio
damos o nome de
resistncia eltrica. Causam
uma queda de tenso em
24
multilogica-shop.com
2.9 Entradas
As entradas, ou inputs, so
sensores eletrnicos ou
mecnicos que tomam os sinais
(em forma de temperatura,
presso, umidade, contato, luz,
movimento, ph, etc.) do mundo
fsico e converte em sinais de
corrente ou voltagem.
Exemplos de entradas so
sensores de gs, temperatura,
pulsadores, fotoclulas,
potencimetros, sensores de
movimento, e muitos mais.
25
multilogica-shop.com
2.10 Sadas
As sadas, ou outputs,
so atuadores, ou outros
dispositivos que convertem os
sinais de corrente ou voltagem
em sinais fisicamente teis
como movimento, luz, som,
fora ou rotao, entre outros.
Exemplos de sadas so
motores, LEDs ou sistemas
de luzes que acendem
automaticamente quando
escurece ou um buzzer que gere
diversos tons.
multilogica-shop.com
Apagado
0
27
multilogica-shop.com
Aceso
1
28
multilogica-shop.com
Entrada
Sada
Entrada
Boto
LED
Reed switch
Entrada
LDR
29
multilogica-shop.com
Sada
Entrada
Motor DC
Potencimetro
resistncias so ligadas em
srie como no esquema a
seguir:
30
multilogica-shop.com
gravadores de som e
vdeo e equipamentos de
telecomunicaes.
Estes conversores so
muito teis na interface
entre dispositivos digitais
e dispositivos analgicos e
so utilizados em aplicaes
como leitura de sensores,
digitalizao de udio, vdeo,
etc..
variar a velocidade do
mesmo com a caracterstica
de manter sua fora
constante.
31
multilogica-shop.com
Um de seus usos
monitorar atravs da tela
do computador o estado de
um perifrico conectado.
Por exemplo ao pulsar a
3 Componentes Eletrnicos
32
multilogica-shop.com
3.1 Microcontrolador
Um microcontrolador
um circuito integrado
programvel, capaz
de executar as ordens
gravadas em sua memria.
Um microcontrolador
possui em seu interior
trs unidades funcionais
principais: unidade central
de processamento, memria
e perifricos de entrada e
sada.
Os microcontroladores
se diferenciam dos
processadores pois, alm
dos componentes lgicos
e aritmticos usuais de um
microprocessador de uso
geral, o microcontrolador
integra elementos
adicionais em sua estrutura
interna, como memria
de leitura e escrita para
armazenamento de dados,
memria somente de leitura
para armazenamento
de programas, EEPROM
para armazenamento
permanente de dados,
dispositivos perifricos como
conversores analgico/
33
multilogica-shop.com
3.2 Protoboard
uma placa reutilizvel usada para construir prottipos de circuitos eletrnicos sem solda.
Uma protoboard feita por blocos de plstico perfurados e vrias lminas finas de uma liga
metlica de cobre, estanho e fsforo.
Conexes internas.
34
multilogica-shop.com
3.3 Resistor
um componente formado por carbono e outros elementos resistentes usados para limitar a
corrente eltrica em um circuito.
Por seu tamanho muito reduzido, invivel imprimir nos resistores as suas respectivas
resistncias. Optou-se ento pelo cdigo de cores, que consiste em faixas coloridas no
corpo do resistor indicadas como a, b, c e % de tolerncia. As primeiras trs faixas servem
para indicar o valor nominal de suas resistncia e a ltima faixa, a porcentagem na qual a
resistncia pode variar seu valor nominal, conforme a seguinte equao:
R = (10a + b) x 10c % da tolerncia
Exemplo:
Um resistor de 2.700.000 (2,7M), com uma
tolerncia de 10% seria representado pela figura.
Smbolo
35
multilogica-shop.com
3.4 Termistor
Smbolo
3.5 Diodo
Smbolo
36
multilogica-shop.com
3.6 Transistor
Smbolo
utilizado principalmente
como amplificador,
interruptor de sinais
eltricos e como retificador
eltrico em um circuito. O
termo provm do ingls
transfer resistor (resistor/
resistncia de transferncia),
como era conhecido pelos
seus inventores.
O processo de transferncia
de resistncia, no
caso de um circuito
analgico, significa que a
impedncia caracterstica
do componente varia
para cima ou para baixo
da polarizao prestabelecida. Graas a esta
funo, a corrente eltrica
que passa entre coletor (C),
base (B) e emissor (E) do
transistor varia dentro de
determinados parmetros
pr-estabelecidos e processa
a amplificao de sinal.
Entende-se por amplificar
o procedimento de tornar
37
multilogica-shop.com
caractersticas. A este
processo todo d-se o nome
de ganho de sinal.
Atualmente os transistores
se encontram em todos
os aparelhos de uso
domstico e cotidiano:
rdios, televises,
gravadores, aparelhos de
som, microondas, lavadoras,
carros, calculadores,
impressoras, celulares, etc.
3.7 Capacitor
Smbolo
38
multilogica-shop.com
3.8 LED
Smbolo
O LED (Light Emitting Diode)
um diodo que emite luz
quando energizado. Os
LEDs apresentam muitas
vantagens sobre as fontes
de luz incandescentes
como um consumo menor
de energia, maior tempo
de vida, menor tamanho,
grande durabilidade e
confiabilidade. O LED tem
multilogica-shop.com
sinalizador de avisos.
Tambm muito utilizado
em painis, cortinas e
pistas de led. Podem ser
encontrados em tamanho
maior, como em alguns
modelos de semforos ou
displays.
Um display de cristal lquido, ou LCD (liquid crystal display), um painel fino usado para exibir
informaes por via eletrnica, como texto, imagens e vdeos.
Um LCD consiste de um lquido polarizador da luz, eletricamente controlado, que se encontra
comprimido dentro de celas entre duas lminas transparentes polarizadoras. Suas principais
caractersticas so leveza e portabilidade. Seu baixo consumo de energia eltrica lhe permite
ser utilizado em equipamentos portteis, alimentados por bateria eletrnica.
Um display de LCD pode variar o nmero de linhas e caracteres por linha, a cor dos caracteres
e a cor do fundo, assim como ter ou no backlight. Os modelos com backlight possuem
melhor visualizao.
40
multilogica-shop.com
3.11 Boto
Um boto, ou pulsador, utilizado para ativar alguma funo. Os botes so em geral
ativados ao serem pulsados. Um boto em um dispositivo eletrnico funciona geralmente
como um interruptor eltrico. No seu interior h dois contatos, e se um dispositivo
normalmente fechado ou normalmente aberto, ao pulsar o boto, se ativar a funo inversa
que se est realizando no momento.
Smbolo
Smbolo
41
multilogica-shop.com
Um potencimetro uma
resistncia cujo valor
varivel. Desta maneira,
indiretamente, pode-se
controlar a intensidade de
corrente que flui por um
circuito se est conectado
em paralelo, ou controlar
a voltagem ao conect-lo
em srie. So adequados
para uso como elemento
de controle em aparelhos
eletrnicos. O usurio
o aciona para variar os
parmetros normais de
funcionamento. Um exemplo
o boto de volume de um
rdio.
3.13 Potencimetro
Smbolo
3.14 Fotoclula
O LDR (Light Dependant
Resistor) uma resistncia
cujo valor em ohms varia
de acordo com a luz
incidente. Uma fotoclula
apresenta um baixo valor de
resistncia na presena de
luz e um alto valor na sua
ausncia.
Smbolo
42
multilogica-shop.com
Smbolo
3.16 Motor CC
O motor de corrente
contnua (CC) uma
mquina que converte
a energia eltrica em
mecnica provocando
um movimento rotatrio.
Esta mquina de corrente
contnua uma das mais
versteis. Seu fcil controle
de posio, pausa e
velocidade a convertem em
uma das melhores opes
43
multilogica-shop.com
em aplicaes de controle
e automao de processos.
Por exemplo, pode-se
encontrar na trao de
carros de brinquedo a pilhas
ou nas rodas de um rob.
Smbolo
3.17 Rel
Smbolo
44
multilogica-shop.com
4 Arduino
45
multilogica-shop.com
O projeto Arduino comeou no ano de 2005 com o objetivo de criar um dispositivo para
estudantes que oferecesse controle integrado de projetos de design e interao, e que fosse
mais econmico que os sistemas de criao de prottipos disponveis at o momento.
O que chamamos hoje de Arduino (o microcontrolador) nasceu na cidade italiana de Ivrea.
Nesta mesma cidade nos sculos X e XI houve um outro Arduino (um nobre) que se auto
proclamou rei de toda a Itlia, obviamente a coisa no funcionou e, como era comum
na poca, ele foi morto pelos rivais. O fato que em sua cidade natal ele ainda muito
lembrado, a avenida principal da cidade se chama Via Arduino bem como muitos comrcios
locais.
Enquanto viviam l, os integrantes do time que criou o Arduino (o microcontrolador), depois
do expediente iam tomar uma cerveja. Onde? No Bar Arduino. Assim o nome do Arduino
(o microcontrolador) uma homenagem ao Arduino (o bar) que por sua vez era uma
homenagem ao outro Arduino (o nobre).
O projeto Arduino foi desenvolvido por Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca
Martino e David Mellis. Est baseado em uma plataforma de cdigo aberta chamada Wiring,
criada pelo artista colombiano Hernando Barragn durante uma tese de um master no
Interaction Design Institute Ivrea. Por outro lado, Wiring est baseado em Processing e seu
entorno de desenvolvimento integrado foi criado por Casey Reas e Ben Fry.
46
multilogica-shop.com
47
multilogica-shop.com
Arduino Mega2560 R3
Arduino Esplora
Arduino Pro
Arduino Mini 05
48
multilogica-shop.com
Arduino FIO V3
Arduino LilyPad
Arduino Micro
49
multilogica-shop.com
Arduino ProtoShield R3
Shield GPS
Shield WiFly
Wireless SD Shield
4.5 Livros
Vrias edies em portugus e em ingls esto disponveis, tanto para voc comear seus
estudos com a plataforma Arduino, como para ampliar seus conhecimentos.
50
multilogica-shop.com
5 Instalao de Software
51
multilogica-shop.com
52
multilogica-shop.com
3 - Conectando o Arduino
O Arduino Uno isolado usa a energia do computador atravs da conexo USB, no sendo
necessria energia externa. Conecte a placa Arduino ao computador usando o cabo USB AB.
O LED verde de energia (PWR) deve acender.
4 - Instalando os drivers
Drivers para Arduino Uno ou Arduino Mega 2560 com Windows 7, Vista ou XP:
. Conecte a placa ao computador e aguarde o Windows iniciar o processo de instalao do
driver. Depois de alguns momentos o processo vai falhar. Clique em concluir e dispense a
ajuda do assistente.
. Clique no Menu Principal e abra o Painel de Controle.
. Dentro do Painel de Controle, navegue at Sistema e Segurana. Na sequncia clique em
Sistema, selecione Hardware e depois clique em Gerenciador de Dispositivos.
. Procure por Portas (COM & LPT), onde voc deve ver uma opo Arduino UNO (COMxx).
. Clique com o boto da direita em Arduino UNO (COMxx) e escolha a opo Atualizar Driver.
. Depois escolha a opo Instalar de uma lista ou local especfico (Avanado), e clique em
avanar.
. Finalmente navegue e escolha o driver arduino.inf localizado na pasta Drivers do software do
Arduino que voc baixou.
. O Windows vai finalizar a instalao do driver a partir deste ponto.
53
multilogica-shop.com
6 - Exemplo Piscar
Abra o exemplo Piscar (blink): Arquivo > Exemplos > 01.Basics > Blink
54
multilogica-shop.com
8 - Selecione a porta
Selecione agora a porta serial que conectar o Arduino: Ferramentas > Porta Serial.
Voc deve selecionar a mesma porta que utilizou para confirgurar o sistema no passo 4.
55
multilogica-shop.com
9 - Carregue o programa
Agora simplesmente clique no boto Carregar da janela do programa. Espere alguns
segundos. Voc deve ver os LEDs RX e TX da placa piscarem. Se o processo foi executado
normalmente voc ver uma mensagem de Transferncia concluda.
Depois de alguns segundos voc ver o LED do pin 13 piscar em laranja. Neste caso,
parabns! Seu Arduino est pronto e instalado.
Se voc tiver problemas na instalao pode acessar a pgina oficial do Arduino com algumas
solues.
56
multilogica-shop.com
57
multilogica-shop.com
3 - Instale o Software
Se voc est usando uma placa Arduino Uno ou Mega 2560 no necessrio instalar nenhum
software. Caso voc esteja usando outra placa Arduino ou um modelo mais antigo talvez seja
necessrio instalar mais algum driver.
4 - Conectando o Arduino
O Arduino Uno isolado usa a energia do computador atravs da conexo USB, no sendo
necessria energia externa. Conecte a placa Arduino ao computador usando o cabo USB AB.
O LED verde de energia (PWR) deve acender.
Se voc est usando uma placa Arduino Uno ou Mega 2560 uma janela deve aparecer
informando que uma nova interface foi detectada. Clique em Preferncias de Sistema
e clique em aplicar. O Uno e o Mega 2560 vo aparecer como no configurados, mas
estaro funcionando corretamente. Feche as preferncias do sistema.
58
multilogica-shop.com
6 - Exemplo Piscar
Abra o exemplo Piscar (blink): Arquivo > Exemplos > 01.Basics > Blink
59
multilogica-shop.com
60
multilogica-shop.com
8 - Selecione a porta
Selecione agora a porta serial que conectar o Arduino: Ferramentas > Porta Serial.
Em um Mac, esta porta deve ser algo como /dev/tty.usbmodem (para Uno ou Mega 2560)
ou /dev/tty.usbserial (para placas mais antigas).
61
multilogica-shop.com
9 - Carregue o programa
Agora simplesmente clique no boto Carregar da janela do programa. Espere alguns
segundos. Voc deve ver os LEDs RX e TX da placa piscarem. Se o processo foi executado
normalmente voc ver uma mensagem de Transferncia concluda.
Depois de alguns segundos voc ver o LED do pin 13 piscar em laranja. Neste caso,
parabns! Seu Arduino est pronto e instalado.
Se voc tiver problemas na instalao pode acessar a pgina oficial do Arduino com algumas
solues.
62
multilogica-shop.com
Ser necessrio instalar alguns programas para usar Arduino em Linux. A forma do
procedimento depende da distribuio.
Primeiro faa download da ltima verso do Arduino para Linux na pgina oficial.
Para mais detalhes selecione sua distribuio:
-
63
ArchLinux
Debian
Fedora
Gentoo
MEPIS
Mint
openSUSE
Puppy
Pussy
Slackware
Ubuntu
Xandros (Debian derivative) on Asus Eee PC
CentOS 6
multilogica-shop.com
6 Programao
64
multilogica-shop.com
65
multilogica-shop.com
66
multilogica-shop.com
67
multilogica-shop.com
6.6 Algoritmo
68
multilogica-shop.com
7 Programao Arduino
69
multilogica-shop.com
Arduino
70
multilogica-shop.com
Espao de trabalho:
71
multilogica-shop.com
Sketches
Softwares escritos usando Arduino so chamados de Sketches. Estes Sketches so escritos no
editor de texto da IDE do Arduino e so salvos com a extenso de arquivo .ino. Este editor
tem caractersticas de cortar/colar e para buscar/substituir texto. A rea de mensagem d
feedback ao salvar e exportar arquivos e tambm exibe informaes de erros ao compilar
Sketches. O canto direito inferior da janela exibe a placa atual e a porta serial. Os botes da
barra de ferramentas permitem que voc verifique, carregue, crie, abra e salve Sketches ou
abra o monitor serial.
Nota: Nas verses do IDE antes de 1.0 os Sketches so salvos com a extenso .pde.
possvel abrir esses arquivos com a verso 1.0, mas voc ser solicitado a salvar o Sketch
com a extenso .ino.
Verificar
Verifica se seu cdigo tem erros.
Carregar
Compila seu cdigo e carrega para a placa Arduino.
Novo
Cria um novo Sketch.
Abrir
Apresenta um menu de todos os sketches j existentes.
Salvar
Salva seu Sketch.
Monitor Serial
Abre o monitor serial.
72
multilogica-shop.com
Monitor Serial
Exibe dados seriais sendo enviados da placa Arduino para o computador. Para enviar dados
para a placa, digite o texto e clique no boto "enviar" ou pressione enter.
A comunicao entre a placa Arduino e seu computador pode acontecer em vrias velocidades
padro pr-definidas. Para que isso ocorra importante que seja definida a mesma velocidade
tanto na Sketch quanto no Monitor Serial.
Na Sketch esta escolha feita atravs da funo Serial.begin. E no Monitor Serial atravs do
menu drop down do canto inferior direito.
Note que no Mac ou Linux a placa Arduino ir resetar (executar novamente o seu Sketch
desde o incio), quando voc abrir o monitor serial.
A comunicao serial com a placa Arduino tambm pode ser feita atravs de outras
linguagens de programao como Processing, Flash, Python, MaxMSP e muitas outras.
73
multilogica-shop.com
Biblioteca Arduino
O ambiente Arduino pode ser estendido atravs da utilizao de bibliotecas, assim como a
maioria das plataformas de programao. Bibliotecas fornecem funcionalidades extras para
uso em sketches. Por exemplo, para trabalhar com hardware ou manipulao de dados.
Algumas bibliotecas j vm instaladas com a IDE Arduino, mas voc tambm pode fazer
download ou criar a sua prpria.
Para usar uma biblioteca em um sketch, selecione em sua IDE Arduino:
Sketch> Importar Biblioteca.
Dentro da programao voc inclui as funcionalidades de uma biblioteca j existente a partir
do comando:
#include <LiquidCrystal.h>
74
multilogica-shop.com
Arduino se programa em uma linguagem de alto nvel semelhante a C/C++ e geralmente tem
os seguintes componentes para elaborar o algoritmo:
-
Estruturas
Variveis
Operadores booleanos, de comparao e aritmticos
Estrutura de controle
Funes digitais e analgicas
CC www.arduino.cc
75
multilogica-shop.com
Estruturas
So duas funes principais que deve ter todo programa em Arduino.
A funo setup() chamada quando um programa comea a rodar. Use esta funo para
inicializar as sua variveis, os modos dos pinos, declarar o uso de livrarias, etc. Esta funo
ser executada apenas uma vez aps a placa Arduino ser ligada ou ressetada.
setup(){
}
Aps criar uma funo setup() que declara os valores iniciais, a funo loop() faz exatamente
o que seu nome sugere, entra em looping (executa sempre o mesmo bloco de cdigo),
permitindo ao seu programa fazer mudanas e responder. Use esta funo para controlar
ativamente a placa Arduino.
loop(){
}
76
multilogica-shop.com
Variveis
Variveis so expresses que voc pode usar em programas para armazenar valores como a
leitura de um sensor em um pino analgico. Aqui destacamos algumas:
- Variveis Booleanas
Variveis boolenas, assim chamadas em homenagem a George Boole, podem ter apenas dois
valores: verdadeiro (true) e falso (false).
boolean running = false;
- Int
Inteiro o principal tipo de dado para armazenamento numrico capaz de guardar nmeros
de 2 bytes. Isto abrange a faixa de -32.768 a 32.767 (valor mnimo de -2^15 e valor mximo
de (2^15) -1).
int ledPin = 13;
- Char
Um tipo de dado que ocupa 1 byte de memria e armazena o valor de um caractere ASCII.
Caracteres literais so escritos entre aspas.
char myChar = A;
77
multilogica-shop.com
Operadores booleanos
Estes operadores podem ser usados dentro da condio em uma sentena if.
- && (e lgico)
Verdadeiro apenas se os dois operandos forem verdadeiros, ou seja, a primeira condio e a
segunda forem verdadeiras. Exemplo:
if (digitalRead(2) == 1
}
// ...
// ...
// ...
78
multilogica-shop.com
Operadores de comparao
if, que usado juntamente com um operador de comparao, verifica quando uma condio
satisfeita, como por exemplo um input acima de um determinado valor. O formato para uma
verificao if :
if (algumaVariavel > 50)
{
}
digitalWrite(LEDpin, HIGH);
if (x > 120)
digitalWrite(LEDpin, HIGH);
if (x > 120) {digitalWrite(LEDpin, HIGH);}
// todos so corretos
A sentena que est sendo verificada necessita o uso de pelo menos um dos operadores de
comparao:
x
x
x
x
x
x
79
== y (x igual a y)
!= y (x no igual a y)
< y (x menor que y)
> y (x maior que y)
<= y (x menor ou igual a y)
>= y (x maior ou igual a y)
multilogica-shop.com
Operadores aritmticos
Se aplicam no uso de variveis.
= (igualdade)
+ (adio)
- (subtrao)
* (multiplicao)
/ (diviso)
% (resto da diviso)
80
multilogica-shop.com
Estruturas de controle
So instrues que permitem decidir e realizar diversas repeties de acordo com alguns
parmetros. Entre os mais importantes podemos destacar:
- Switch/case
Do mesmo modo que as sentenas if, as switch/case controlam o fluxo dos programas.
Switch/case permite ao programador construir uma lista de casos dentro de um bloco
delimitado por chaves. O programa checa cada caso com a varivel de teste e executa o
cdigo se encontrar um valor idntico.
switch (var) {
case 1:
case 2:
default:
// default opcional
- While
While far com que o bloco de cdigo entre chaves se repita contnua e indefinidamente at
que a expresso entre parentesis () se torne falsa. Algo tem que provocar uma mudana no
valor da varivel que est sendo verificada ou o cdigo vai sempre ficar dando voltas dentro
do while. Isto poderia ser o incremento de uma varivel ou uma condio externa, como o
teste de um sensor.
var = 0;
var++;
81
multilogica-shop.com
- For
A sentena for utilizada para repetir um bloco de cdigo delimitado por chaves. Um
contador com incremento normalmente usado para controlar e finalizar o loop. A sentena
for til para qualquer operao repetitiva, e frequentemente usada com arrays para
operar em conjuntos de dados ou de pinos.
// Aumentar o brilho de um LED usando um pino PWM
int PWMpin = 13; // um LED
no pino 13
void setup()
{
void loop()
{
82
delay(10);
multilogica-shop.com
Funes digitais
Orientadas a revisar o estado e a configurao das entradas e sadas digitais.
- pinMode()
Configura o pino especificado para que se comporte ou como uma entrada (input) ou uma
sada (output).
Sintaxe:
pinMode(pin, mode)
pinMode(9, OUTPUT);
- digitalRead()
L o valor de um pino digital especificado, HIGH ou LOW.
Sintaxe:
digitalRead(pin)
buttonState = digitalRead(9);
- digitalWrite()
Escreve um valor HIGH ou um LOW em um pino digital.
Sintaxe:
digitalWrite(pin, valor)
digitalWrite(9, HIGH);
83
multilogica-shop.com
Funes analgicas
Ideais para a leitura ou escrita de valores analgicos.
- analogRead()
L o valor de um pino analgico especificado. A placa Arduino contm um conversor
analgico-digital de 10 bits com 6 canais. Com isto ele pode mapear voltagens de entrada
entre 0 e 5 volts para valores inteiros entre 0 e 1023. Isto permite uma resoluo entre
leituras de 5 volts / 1024 unidades ou 0,0049 volts (4.9 mV) por unidade.
Sintaxe:
analogRead(pin)
int a = analogRead (A0);
- analogWrite()
Escreve um valor analgico (onda PWM) em um pino. Pode ser usado para acender um LED
variando o brilho ou girar um motor a velocidade varivel.
Sintaxe:
analogWrite(pin, valor)
analogWrite (9,134);
84
multilogica-shop.com
85
multilogica-shop.com
86
multilogica-shop.com
9 Tutoriais
87
multilogica-shop.com
Este exemplo mostra a experincia mais simples que voc pode fazer com um Arduino para
verificar uma sada fsica: piscar um LED.
Quando voc est aprendendo a programar, na maioria das linguagens de programao, o
primeiro cdigo que voc escreve diz Hello World na tela do computador. Como a placa
Arduino no tem uma tela substituiremos esta funo fazendo piscar um LED.
Conhecimentos Prvios
-
88
Sinal digital
Funo digitalWrite()
Polaridade de um LED (pgina 39)
Conexo da placa Arduino com o computador
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
Diagrama
89
multilogica-shop.com
1 LED
1 Cabo USB AB
Este cdigo j vem junto com a IDE do Arduino. Voc pode acessar em:
Arquivo > Exemplos > 01.Basics > Blink
Ns apenas reproduzimos aqui com explicaes e os comentrios em portugus.
No programa a seguir, o primeiro comando o de inicializar o pino 13 como sada atravs da
linha
pinMode(13, OUTPUT);
No loop principal do cdigo, voc liga o LED com esta linha de comando:
digitalWrite(13, HIGH);
Este comando direciona 5 volts ao pino 13 e o acende. Voc desliga o LED com o seguinte
comando:
digitalWrite(13, LOW);
Este comando retira os 5 volts do pino 13, voltando para 0 e desligando o LED. Entre desligar
e ligar voc precisa de tempo suficiente para que uma pessoa veja a diferena, ento o
comando delay() informa o Arduino no fazer nada durante 1000 milissegundos, ou um
segundo. Quando voc usa o comando delay(), nada mais acontece neste perodo de tempo.
Uma vez entendido os exemplos bsicos, verifique tambm o exemplo Piscar sem delay para
aprender como criar um delay enquanto faz outras funes.
90
multilogica-shop.com
Cdigo Fonte
/*
Piscar
Acende um LED por um segundo, e depois apaga pelo mesmo tempo, repetidamente.
*/
pinMode(led, OUTPUT);
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
}
// Acende o LED
delay(1000);
91
multilogica-shop.com
// Apaga o LED
Dicas
1 - Na linguagem Arduino // se utiliza para acrescentar comentrios na linha de cdigo, sendo
muito til para explicar uma sintaxe ou deixar um lembrete. Um exemplo de seu uso:
digitalWrite(13,LOW);
//Apaga o LED
2 - Os sinais digitais (Aceso e Apagado) esto presentes em muitos sensores. Conhea alguns
deles:
Sensor de movimento
infra vermelho
92
multilogica-shop.com
Exerccio 1
A partir do cdigo fonte apresentado neste tutorial, faa as modificaes necessrias para que
o LED fique:
- 3 segundos aceso e 3 segundos apagado
- 200 milissegundos aceso e 500 milissegundos apagado
Exerccio 2
A partir do mesmo cdigo fonte faa uma nova montagem deste tutorial e faa as
modificaes necessrias no cdigo fonte para que o LED seja colocado no Pino 5, e fique 2
segundos aceso e 1 segundo apagado.
Note que para qualquer pino que no seja o 13 necessrio colocar um resistor em srie com
o LED. Neste caso um resistor de 330 suficiente.
93
multilogica-shop.com
9.2 Boto
O boto um componente que conecta dois pontos do circuito quando est pressionado.
Neste exemplo quando o boto est pressionado o LED se acende.
Cabear um circuito
Condicional if/else
Estado de um boto
Ler uma entrada digital e escrever uma sada digital
Conhecimentos Prvios
-
94
Sinal digital
Funo digitalWrite() e digitalRead()
Divisor de voltagem
Condicional, operadores booleanos e de comparao
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
Jumpers
Diagrama
95
multilogica-shop.com
1 Boto
1 LED
1 Resistor 10k
1 Cabo USB AB
1 Protoboard
Cdigo Fonte
/*
Botao
*/
13;
void setup() {
pinMode(buttonPin, INPUT);
void loop(){
buttonState = digitalRead(buttonPin);
96
multilogica-shop.com
digitalWrite(ledPin, HIGH);
else {
// desliga o LED:
97
digitalWrite(ledPin, LOW);
multilogica-shop.com
Dicas
1 - Quando voc est programando com o software do Arduino, muitas das palavras que voc
escreve so reservadas para a linguagem. Estas palavras se colocam com uma cor diferente,
e uma dica para verificar se esto escritas corretamente. Como no exemplo:
void loop() {
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
}
2 - Em um projeto com uso de vrios botes com funcionalidades diferentes, pode ser til
trabalhar com peas como estas:
Conjunto de botes tcteis coloridos
98
multilogica-shop.com
Exerccio 1
Para evitar acidentes no ambiente de trabalho, uma regra de segurana em vrios
equipamentos industriais obrigar que um usurio aperte dois botes, um com cada mo,
para acionar uma mquina. o caso da mquina de corte usada em fbricas de papel.
Com a seguinte montagem podemos simular esta situao. O LED somente acende se os dois
botes do circuito estiverem pressionados:
Exerccio 2
Faa mais uma modificao no cdigo fonte do exerccio 1 para que voc possa acender o
LED do pino 13 pressionando ou o boto 1 ou o boto 2. Ao deixar de pressionar, o LED se
apaga.
99
multilogica-shop.com
Conhecimentos Prvios
- Sinal digital
- Funo digitalRead() e Serial.print
- Funo digitalWrite() e Operadores de comparao
100
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
Jumpers
Diagrama
101
multilogica-shop.com
1 Boto
1 LED
1 Resistor 10k
1 Cabo USB AB
1 Protoboard
Cdigo Fonte
Neste programa a primeira coisa que voc vai fazer na funo de configurao comear a
comunicao serial a 9600 bits de dados por segundo entre o Arduino e seu computador:
Serial.begin (9600);
Lembre-se de colocar o valor 9600 tambm no Monitor Serial como explicado na pgina 73.
Em seguida, inicializar o pino digital 2, o pino que vai fazer a leitura do boto como uma
entrada digital:
int pushButton = 2;
Quando o boto for pressionado, 5 volts fluiro livremente atravs de seu circuito, e quando
no for pressionado o pino de entrada ser ligado ao terra. Esta uma entrada digital, o que
significa que a chave s pode ter um estado (visto pelo seu Arduino como "1", ou HIGH) ou
um estado off (visto pelo seu Arduino como um "0", ou LOW), sem nada no meio.
Agora quando voc abrir o seu Monitor Serial no ambiente Arduino voc ver um fluxo de "0"
se a sua chave estiver aberta, ou "1" se a sua chave estiver fechada.
102
multilogica-shop.com
/*
DigitalReadSerial
*/
int pushButton = 2;
void setup() {
pinMode(pushButton, INPUT);
}
pinMode(ledPin, OUTPUT);
void loop() {
digitalWrite(ledPin, HIGH);
} else {
}
digitalWrite(ledPin, LOW);
delay(1);
103
multilogica-shop.com
Dicas
2 - Para lembrar:
- Para ler um sinal digital use: digitalRead(numeroPin).
- Para escrever um sinal digital use: digitalWrite(numeroPin, valor).
- Uma sada ou entrada digital sempre HIGH ou LOW.
104
multilogica-shop.com
Exerccio 1
Aqui faremos mais um exerccio usando a mesma montagem deste Tutorial.
Uma vez que voc tenha o boto funcionando, muitas vezes voc quer fazer alguma ao
com base no nmero de vezes que o boto for pressionado. Para isso, voc precisa saber
quando o boto muda de estado de desligado para ligado, e contar quantas vezes essa
mudana de estado acontece. Isso chamado de deteco de mudana de estado. Cada 4
pulsaes o LED ser ligado.
/*
http://arduino.cc/en/Tutorial/ButtonStateChange
*/
int lastButtonState = 0;
int buttonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
105
multilogica-shop.com
Serial.print("numero de pulsos:
");
Serial.println(buttonPushCounter);
// proximo loop
lastButtonState = buttonState;
// Liga o LED cada 4 pulsacoes checando o modulo de contador de botao
if (buttonPushCounter % 4 == 0) {
digitalWrite(ledPin, HIGH);
}else {
106
digitalWrite(ledPin, LOW);
multilogica-shop.com
Este exemplo mostra como ler um pino de uma entrada analgica, mapear o resultado para
um intervalo de 0 a 255, e usar esse resultado para definir a modulao PWM de um pino de
sada para acender e apagar um LED como um dmer.
Conhecimentos Prvios
- Sinal analgica
- Funo analogRead() e Serial.print
107
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
Jumpers
Diagrama
108
multilogica-shop.com
1 LED
1 Resistor
330
1 Potencimetro
1 Cabo USB AB
1 Protoboard
Cdigo Fonte
/*
void setup() {
Serial.begin(9600);
void loop() {
sensorValue = analogRead(analogInPin);
109
multilogica-shop.com
analogWrite(analogOutPin, outputValue);
// imprime o resultado no monitor serial:
Serial.print("sensor = " );
Serial.print(sensorValue);
Serial.println(outputValue);
delay(2);
110
multilogica-shop.com
Dicas
Potencimetro de Membrana
rotativo Softpot
111
multilogica-shop.com
Potencimetro de Membrana
SoftPot 50mm
Atravs deste tutorial voc vai controlar o acionamento de um rel e de um LED desde o
Monitor Serial de seu computador.
Conhecimentos Prvios
- Variveis booleanas
- Serial.print
112
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
Jumpers
Diagrama
113
multilogica-shop.com
2 LEDs
1 Resistor
330
1 Rel
1 Cabo USB AB
1 Protoboard
Cdigo Fonte
//**************************************************************************
//* Codigo para teste de Arduino acionando rele do kit Multilogica,
//* ligado na saida digital 2 e GND, monitorado pelo Led 13
//* este codigo tem dominio publico
//**************************************************************************
//inicializa uma variavel do tipo char que utiliza 1 byte para armazenar
//1 caracter
char input= 0;
int rele=2;
int led=13;
boolean y=true;
void setup() {
pinMode(rele,OUTPUT);
pinMode(led,OUTPUT);
Serial.begin(9600);
Serial.println();
void loop() {
if (Serial.available() > 0) {
input= Serial.read();
114
multilogica-shop.com
if (input =='1'){
digitalWrite(rele, HIGH);
digitalWrite(led, HIGH);
Serial.println("ligado");
else {
digitalWrite(rele, LOW);
digitalWrite(led, LOW);
}
}
Serial.println("desligado");
else {
115
Serial.println("Comando invalido");
multilogica-shop.com
9.6 Fade
Este exemplo demonstra o uso da funo analogWrite() para apagar um LED em fade
(variao gradual). AnalogWrite usa um pulso PWM, alternando o pino digital on e off
rapidamente, criando o efeito de fade.
Conhecimentos Prvios
-
116
PWM
Funo AnalogWrite()
Polaridade de um LED
Incrementar e manipular variveis
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
Jumpers
Diagrama
117
multilogica-shop.com
1 LED
1 Resistor 330
1 Cabo USB AB
1 Protoboard
Cdigo Fonte
Conecte a perna mais longa do LED no pino digital 9 de seu Arduino atravs de um resistor de
330. Conecte a perna mais curta do LED diretamente ao terra.
Aps definir que o pino 9 ser seu ledPin, nada mais dever ser feito na funo setup() do
cdigo.
A funo analogWrite() que voc vai usar no loop principal do cdigo requer dois argumentos:
um deles informando funo qual pino deve acionar e outra indicando qual valor PWM
utilizar.
Para executar o fade no LED, gradualmente aumente o valor PWM de 0 (totalmente
desligado) a 255 (totalmente ligado) e depois diminua novamente a 0 para completar o ciclo.
No cdigo abaixo, o valor PWM definido usando uma varivel chamada brightness. Cada vez
que o loop roda ele aumenta o valor da varivel de acordo com o fadeAmount.
Se brightness definida entre os valores extremos (0 ou 255), ento fadeAmount muda para
seu negativo. Por exemplo, se fadeAmount 5, em seguida ele definido como -5. Se -5,
ento seria definido 5. A prxima vez que rodar o loop, esta mudana causa que o incremento
de brightness mude tambm de direo.
analogWrite() pode mudar o valor PWM muito rapidamente, ento o delay no final do cdigo
controla a velocidade do fade. Tente modificar o valor do delay e veja como isso muda o
programa.
118
multilogica-shop.com
/*
Fade
int led = 9;
// pino do LED
int fadeAmount = 5;
int brightness = 0;
void setup()
pinMode(led, OUTPUT);
analogWrite(led, brightness);
// muda o brilho para o proximo loop:
brightness = brightness + fadeAmount;
// inverte a direcao do fade ao final do mesmo:
if (brightness == 0 || brightness == 255) {
}
fadeAmount = -fadeAmount ;
delay(30);
119
multilogica-shop.com
Dicas
Outros elementos tambm utilizam sinais PWM e tm diferentes funes:
Micromotor metlico
Variar a velocidade do giro do motor.
Servomotor
Variar a posio do servo motor em graus.
120
multilogica-shop.com
9.7 Loop
Muitas vezes voc deseja repetir uma ao sobre uma srie de pinos e fazer alguma coisa
diferente para cada um. Neste caso o exemplo faz piscar 6 LEDs usando a funo for()
loop para fazer circular ida e volta entre os pinos 2 e 7. Os LEDs acendem e apagam em
sequncia, usando ambos as funes digitalWrite() e delay().
Podemos chamar este exemplo de "Super Mquina" lembrando a srie de televiso dos anos
80 em que o famoso ator David Hasselhoff dirigia seu Pontiac com inteligncia artificial. O
carro foi turbinado com vrios LEDs de vrios tamanhos possveis para reproduzir efeitos
brilhantes.
Consideramos que seria interessante usar esta metfora da "Super Mquina" com o objetivo
de aprender mais sobre programao sequencial e boas tcnicas de programao para as
informaes de E/S da placa.
121
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
1 Protoboard
1 Cabo USB AB
122
multilogica-shop.com
6 LEDs
6 Resistores 330
Jumpers
Diagrama
123
multilogica-shop.com
Cdigo Fonte
O cdigo abaixo comea utilizando a funo for() loop para designar os pinos digitais 2 a 7
como sadas dos 6 LEDs usados. No loop principal do cdigo, dois for() loops so usados para
incrementar o lao, percorrendo os LEDs, um por um, a partir de pino 2 ao pino 7. Uma vez
que o pino 7 est aceso, o processo inverte, percorrendo de volta atravs de cada LED.
Para mais informaes da funo for() veja pgina 82.
/*
Loop
http://www.arduino.cc/en/Tutorial/ForLoop
*/
void setup() {
124
pinMode(thisPin, OUTPUT);
multilogica-shop.com
void loop() {
digitalWrite(thisPin, HIGH);
delay(timer);
digitalWrite(thisPin, LOW);
digitalWrite(thisPin, HIGH);
delay(timer);
125
digitalWrite(thisPin, LOW);
multilogica-shop.com
Neste tutorial vamos usar um LDR (Light Dependent Resistor) para simular uma compensao
de luz de 5 nveis, ou seja, dependendo se h mais ou menos luz incidindo no sensor o
sistema liga ou desliga uma srie de LEDs.
Este programa poderia ser usado em um sistema de iluminao com cinco linhas de luz que
vo acendendo conforme o sol se pe, compensando progressivamente a deficincia de luz.
Alm disso, um potencimetro ajusta o nvel crtico mnimo de luz, a partir do qual se ativar
o circuito.
Conhecimentos Prvios
- Funo digitalWrite()
- Condicional if/else
126
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
1 Cabo USB AB
Jumpers
127
multilogica-shop.com
1 LDR
1 Potencimetro
5 LEDs
5 Resistores 330
1 Protoboard
Diagrama
128
multilogica-shop.com
Cdigo Fonte
/*
Sensor LDR
*/
Serial.begin(9600);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
129
multilogica-shop.com
pinMode(pinLed4, OUTPUT);
pinMode(pinLed5, OUTPUT);
//Definimos o uso de uma referencia externa:
pinMode(EXTERNAL);
void loop()
{
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, LOW);
130
multilogica-shop.com
digitalWrite(pinLed4, LOW);
}
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
digitalWrite(pinLed5, LOW);
else
{
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, HIGH);
131
digitalWrite(pinLed5, HIGH);
multilogica-shop.com
Dica
Quando o Arduino recebe um sinal analgico ele o converte para digital em 1024 partes.
Esta operao padro j que o Arduino pensa que o sinal que vai receber varia entre 0v
e 5v o que nos d um valor para cada parte de aproximadamente 4,88 mV. Mas podemos
dizer que no, que realmente o sistema vai funcionar entre 0v e 3v, obtendo assim 1024
partes distribudas entre 0v e 3v, o que nos d um valor para cada parte de 2,9 mV, ou seja,
uma resoluo muito maior. A distribuio destes valores vamos dividir igualmente em nosso
programa para fazer uma ativao progressiva das linhas de iluminao.
Se colocarmos a referncia muito baixa, os LEDs comeam a funcionar com menos luz
ambiente que se colocarmos um sinal mais alto, lembre-se:
Mais luz = menor resistncia = Vout maior
Menos luz = maior resistncia = Vout menor
Este controle ser feito via potencimetro, onde poderemos calibrar o sistema atravs da luz
ambiente.
pinMode(EXTERNAL);
Com esta instruo estamos dizendo a nosso Arduino que no use a tenso de referncia
(+5V), mas sim a que vamos aplicar atravs do pino AREF.
132
multilogica-shop.com
9.9 Termistor
Neste tutorial vamos usar um Termistor (Temperature Dependent Resistor) para fazer uma
leitura da temperatura.
O resultado, em graus Celsius, veremos atravs do Monitor Serial da IDE do Arduino.
Conhecimentos Prvios
- Funo analogRead
- Serial.print
133
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
Jumpers
Diagrama
134
multilogica-shop.com
1 Termistor
1 Resistor 1K
1 Cabo USB AB
1 Protoboard
Cdigo Fonte
Serial.begin(9600);
void loop(void) {
float leitura;
float leitura1;
leitura = analogRead(pino_termistor);
Serial.print("Leitura pino A0 = ");
Serial.println(leitura);
leitura1 = (leitura*0.2027)-82;
delay(2500);
135
multilogica-shop.com
Dica
Existem basicamente dois tipos de termistores:
- NTC (Negative Temperature Coefficient) - termistores cujo coeficiente de variao
de resistncia com a temperatura negativo: a resistncia diminui com o aumento da
temperatura.
- PTC (Positive Temperature Coefficient) - termistores cujo coeficiente de variao de
resistncia com a temperatura positivo: a resistncia aumenta com o aumento da
temperatura conforme a curva/tabela caracterstica do termistor, o seu valor de resistncia
pode diminuir ou aumentar em maior ou menor grau em uma determinada faixa de
temperatura.
Assim alguns podem servir de proteo
contra sobreaquecimento, limitando a
corrente eltrica quando determinada
temperatura ultrapassada. Outra
aplicao a medio de temperatura
(em motores por exemplo), pois
podemos com o termistor obter uma
variao de resistncia eltrica em
funo da variao de temperatura.
O termistor includo no kit Multilgica
do tipo NTC e obedece esta tabela,
cujos dados podem ser utilizados para
clculos e aplicaes.
136
multilogica-shop.com
9.10 Motor CC
Conhecimentos Prvios
- Funo digitalWrite()
- Funo digitalRead()
- Condicional if/else
137
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
1 Motor CC
1 Resistor 330
1 Resistor 15
1 Cabo USB AB
1 Boto
Jumpers
138
multilogica-shop.com
1 Protoboard
Diagrama
139
multilogica-shop.com
Cdigo Fonte
// Ligar motor no pino 2 em serie com um resistor de 15 ohms
pinMode(buttonPin, INPUT);
pinMode(motorPin, OUTPUT);
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
}
digitalWrite(motorPin, HIGH);
else {
digitalWrite(motorPin, LOW);
Dica
1 - Sentido do Giro
Podemos modificar o sentido do giro de um motor de corrente contnua simplesmente
invertendo o sentido da corrente. Com a mesma montagem deste tutorial, teste inverter as
conexes do motor e verifique que o mesmo passar a girar no sentido contrrio.
140
multilogica-shop.com
O display de LCD uma pea importante em projetos em que voc precisa visualizar a leitura
de um sensor ou mesmo para transmitir uma informao para o usurio.
Neste exerccio voc aprender a conectar o Display LCD 2x16 do seu Kit, que j vem com os
pinos soldados.
141
lcd.print
lcd.setCursor
scrollDisplayLeft()
scrollDisplayRight()
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
Jumpers
142
multilogica-shop.com
1 Display LCD
1 Potencimetro
1 Cabo USB AB
1 Protoboard
Diagrama
143
multilogica-shop.com
Cdigo Fonte
/*
2014
Circuito :
* Terra no terra
*/
144
multilogica-shop.com
void loop() {
}
145
multilogica-shop.com
2014 ");
Dicas
Se o seu projeto necessita mais espao para visualizar informaes ou um display de LCD
diferenciado, conhea estas outras opes:
146
multilogica-shop.com
Exerccio 1
O site do Arduino oferece vrios outros projetos com a Biblioteca LiquidCrystal.h. Aqui
faremos mais um exerccio usando a mesma montagem deste Tutorial.
Neste exerccio voc poder tambm modificar o texto original e controlar o tempo que seu
texto fica fixo e a durao do scroll para a direita ou para a esquerda.
/*
* Terra no terra
147
multilogica-shop.com
*/
delay(2000);
void loop() {
delay(250);
148
multilogica-shop.com
// Aguarda um instante:
}
delay(250);
delay(250);
149
multilogica-shop.com
MULTILGICA
SHOP