Вы находитесь на странице: 1из 168

ArduinoGuia Iniciante

Eletrnica para quem faz


Verso

www.multilogica-shop.com 2.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
2.11 Processamento de Sinal 26
2.12 Resumo dos Sistemas Eletrnicos 26
2.13 Sinais Eletrnicos 27

2 multilogica-shop.com
2.14 Varivel Digital 27
2.15 Varivel Analgica 28
2.16 Entrada/Sada Digital 29
2.17 Entrada/Sada Analgica 29
2.18 Divisor de Voltagem 30
2.19 Conversor Analgico-Digital 30
2.20 Modulao por Largura de Pulso PWM 31
2.21 Comunicao Serial 31

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
4.3 Famlia Arduino 48
4.4 Shields para Arduino 49
4.5 Livros 50

3 multilogica-shop.com
5 Instalao de Software 51
5.1 IDE Arduino para Windows 52
5.2 IDE Arduino para Mac OS X 57
5.3 IDE Arduino para 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

8 Kit Iniciante com Arduino Uno R3 85

9 Tutoriais 87
9.1 Hello World - Piscar 88
9.2 Boto 94
9.3 Leitura Serial de uma Entrada Digital 100
9.4 Leitura Serial de uma Entrada Analgica 107
9.5 Comando com Comunicao Serial 112
9.6 Fade 116
9.7 Loop 121
9.8 Sensor LDR 126
9.9 Termistor 133
9.10 Motor CC 137
9.11 Display LCD 141
9.12 Digitando no Display LCD 150
9.13 Piezo como sada analgica 155
9.14 Scroll Bar com Processing 158
9.15 Termostato 163

4 multilogica-shop.com
Prefcio

A Multilgica-Shop, a partir com os prximos captulos onde passo a passo sero


do Guia del Arduino criado repassaremos os conceitos explicados alguns exemplos,
pela Tienda de Robtica da fundamentais. durante os quais voc
Colombia, traz este guia Aps conhecer estes encontrar perguntas, dicas
que aborda a aprendizagem temas bsicos teremos um e exerccios.
sobre o conceito DIY (Do it captulo dedicado a explicar
yourself) ou em portugs componentes eletrnicos
Faa voc mesmo. como um LED, um motor,
A partir de um detalhado um rel e muito mais.
estudo elaboramos o Kit Tambm foi desenvolvido
Iniciante com Arduino um captulo especial sobre
Uno R3, baseado na placa Arduino e Fritzing que voc
Arduino Uno R3, base para no pode perder.
todo este material didtico. O Kit Iniciante com Arduino
Neste guia abordaremos Uno R3 e este guia so
temas fundamentais como ideais para todo mbito
o hardware e software de aprendizagem desde o
livre, revisando de maneira colgio at a universidade, e
cuidadosa o projeto Arduino se voc se dedica por hobby
e usando como base o no pode deixar de ter este
software Fritzing para guia, j que um captulo
realizar montagens claras e completo est dedicado a
semelhantes realidade. mostrar todo o kit.
No necessrio que Finalmente chegamos a uma
voc saiba de eletrnica parte mais que especial,
ou programao porque ao captulo dos tutoriais,

5 multilogica-shop.com
A Multilgica-Shop

Eletrnica para quem faz

A Multilgica foi principais objetivos, por


fundada em 1990 com conta disso possumos o
foco em tecnologia e catlogo mais completo do
desenvolvimento. Em 2009 Brasil no setor e mantemos
iniciou uma nova etapa com a meta de atender aos mais
a importao de produtos exigentes consumidores e
Open Source e marcas desenvolvedores.
relacionadas de grande Hoje, depois de milhares
expressividade internacional. de cliente atendidos,
O Arduino sempre foi um apresentamos a verso
dos principais objetivos atualizada do Guia Iniciante
e com ele centenas de do Arduino.
produtos hoje fazem parte
Aproveitem a leitura!
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 tem uma porcentagem e comunicao de uma


das coisas algo que de dependncia destas mquina com os humanos,
estimula nossa curiosidade mquinas. Por exemplo, seu usando sensores e
desde o incio dos tempos. despertador. Ele tocou s 6 atuadores.
Hoje em dia vemos uma horas da manh para que As decises sero
realidade onde encontramos voc fosse para a escola ou executadas pelo
com facilidade a automao, o trabalho. Essa mquina microcontrolador que o
a domtica (automao trabalhou durante toda a ncleo da placa Arduino, o
de casas e edifcios), a noite para, ao final, avisar corao deste material.
interao entre pessoas e que era hora de despertar.
mquinas, a eletrnica, a O propsito deste guia
mecnica e a programao. abordar o conceito de
Quase qualquer processo computao fsica, que
que podemos imaginar a capacidade de interao

O Que Vou Aprender?

Muitas vezes pensamos guia fazer com que esses Com este guia voc vai
que os temas tecnolgicos processos tecnolgicos aprender conceitos que
pedem uma grande sejam simples de entender, poder aplicar em seus
habilidade tcnica e um e demonstrar que aqueles prprios projetos.
grande conhecimento, mais complexos na verdade
mas isso no verdade. so a unio de vrios
Nosso objetivo com este processos simples.

7 multilogica-shop.com
Fonte de Informao

A Wikipedia uma Commons (Atribuio


enciclopdia na nuvem onde Compartilhamento pela
voc pode encontrar grande mesma Licena - by-sa).
variedade de informao em A maior parte do contedo
diferentes idiomas e de tambm est disponvel sob
uso livre. a Licena de Documentao
Neste guia incorporamos Livre GNU (GFDL). Isso
contedo da Wikipedia significa que o contedo
(textos e imagens) com Wikipedia pode ser
o objetivo de explicar os distribudo de acordo com o
diversos conceitos que estabelecido nestas licenas.
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

8 multilogica-shop.com
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.

9 multilogica-shop.com
1 Conceitos Bsicos

10 multilogica-shop.com
1.1 Computao Fsica

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 Outras implementaes O prototipado (criar
humanos e o mundo digital. de computao fsica montagens rpidas com
Na prtica, frequentemente trabalham com o ajuda de uma protoboard
este termo descreve reconhecimento de voz, e componentes bsicos de
desenhos de projetos que captam e interpretam eletrnica) tem um papel
DIY ou objetos que as ondas sonoras atravs importante na computao
utilizam sensores e de microfones ou outros fsica. Ferramentas como
microcontroladores para dispositivos de deteco de o Arduino e o Fritzing
traduzir entradas analgicas ondas sonoras, tambm a so teis para designers,
a sistemas baseados em viso por computador, que artistas, estudantes e
software, ou controlar aplica algoritmos aos vdeos hobistas porque ajudam
dispositivos eletromecnicos detectados por algum tipo a elaborar prottipos
como motores, servos, de cmera. Interfaces tteis rapidamente.
iluminao ou outro so tambm um exemplo de
hardware. computao fsica.

11 multilogica-shop.com
1.2 Open Source Hardware

Open Source Hardware o hardware facilmente


consiste em dispositivos reconhecida. O design no
fsicos de tecnologia hardware (ou seja, desenhos
concebidos e oferecidos mecnicos, esquemas,
pelo movimento de design lista de materiais, dados
aberto. Tanto o software de layout do PCB, cdigo
livre como o open source fonte e dados de layout de
hardware so criados sob circuitos integrados), alm
o movimento de cultura do software livre que aciona
open source e aplica este o hardware, esto todos
conceito a uma variedade liberados com a abordagem
de componentes. O termo livre e open source.
normalmente significa Anualmente a Open Source
que a informao sobre 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.

12 multilogica-shop.com
1.3 Software Livre

Software livre o software programa de modo que e promovem a divulgao


que distribudo juntamente voc possa ajudar ao seu do software livre e suas
com o seu cdigo-fonte, e prximo; vantagens tecnolgicas e
liberado sob os termos Liberdade 3: A liberdade econmicas.
que garantem aos usurios de modificar o programa e A OSI, assim como muitos
a liberdade de estudar, distribuir estas modificaes, membros da comunidade,
adaptar/modificar e distribuir de modo que toda a considera que o software
o software. O software livre comunidade se beneficie. , em primeiro lugar, uma
muitas vezes desenvolvido ferramenta, e que o mrito
Os usurios deste tipo
em colaborao entre dessa ferramenta deve
de software so livres
programadores voluntrios ser julgado com base em
porque no precisam pedir
como parte de um projeto critrios tcnicos. Para eles,
permisso e no esto
de desenvolvimento de o software livre no longo
vinculados a licenas
software open source. prazo economicamente
proprietrias restritivas.
A Free Software Foundation mais eficiente e de melhor
A Open Source Initiative
considera um software como qualidade e, por isso, deve
(OSI) - Iniciativa pelo
livre quando atende aos ser incentivado. Alm
Cdigo Aberto - uma
quatro tipos de liberdade disso, a participao de
organizao dedicada a
para os usurios: empresas no ecossistema
promover o software de
Liberdade 0: A liberdade do software livre
cdigo aberto ou software
para executar o programa, considerada fundamental,
livre. Ela foi criada para
para qualquer propsito; pois so as empresas
incentivar uma aproximao
que viabilizam o aumento
Liberdade 1: A liberdade de de entidades comerciais
no desenvolvimento,
estudar o software; com o software livre. Sua
implantao e uso do
Liberdade 2: A liberdade atuao principal a de
software livre.
de redistribuir cpias do certificar quais licenas
se enquadram como
licenas de software livre,

13 multilogica-shop.com
1.4 Arduino

Arduino uma plataforma engenharia de transportes, download do software pode


de eletrnica aberta para engenharia agronmica, ser feito de forma gratuita e
a criao de prottipos musical, moda e tantas os desenhos da placa esto
baseada em software e outras. disponveis sob uma licena
hardware livres, flexveis O microcontrolador aberta, assim voc tambm
e fceis de usar. Foi da placa Arduino livre para adapt-lo s
desenvolvida para artistas, programado mediante a suas necessidades.
designers, hobistas e linguagem de programao
qualquer pessoa interessada Arduino, baseada em
em criar objetos ou Wiring, e o ambiente de
ambientes interativos. desenvolvimento (IDE) est
O Arduino pode adquirir baseado em Processing.
informao do ambiente Os projetos desenvolvidos
atravs de seus pinos de com Arduino podem
entrada, para isso uma ser executados mesmo
completa gama de sensores sem a necessidade de
pode ser usada. Por outro estar conectados a um
lado, o Arduino pode atuar computador, apesar de
no ambiente controlando que tambm podem ser
luzes, motores ou outros feitos comunicando-se com
atuadores. diferentes tipos de software
Os campos de atuao (como Flash, Processing ou
para o controle de sistemas MaxMSP).
so imensos, podendo As placas podem ser feitas
ter aplicaes na rea de a mo ou compradas
impresso 3D, robtica, montadas de fbrica. O

14 multilogica-shop.com
1.5 Processing

Processing uma linguagem de


programao de cdigo aberto
e ambiente de desenvolvimento
integrado (IDE), construdo
para as artes eletrnicas e
comunidades de projetos visuais
com o objetivo de ensinar
noes bsicas de programao
de computador em um contexto
visual.
O projeto foi iniciado em 2001
por Casey Reas e Ben Fry,
ambos ex-membros do Grupo de
Computao do MIT Media Lab.
Um dos objetivos do Processing
atuar como uma ferramenta
para no-programadores
iniciados com a programao,
atravs da satisfao imediata
com um retorno visual.
https://processing.org/

15 multilogica-shop.com
1.6 Fritzing

Fritzing um programa de automao de design eletrnico


open source destinado a ajudar designers e artistas a passar
dos prottipos (utilizando, por exemplo, placas de teste) para os
produtos finais.
Fritzing foi criado sob os princpios de Processing e Arduino
e permite a designers, artistas, pesquisadores e amadores
documentar seu prottipo baseado em Arduino e criar diagramas
de circuitos impressos para mais tarde fabricar. Alm disso,
tem um site complementar que ajuda a compartilhar e discutir
projetos, experincias e reduzir os custos de fabricao.

http://fritzing.org/home/

16 multilogica-shop.com
1.7 Creative Commons

A CC uma organizao criadores de contedo,


no governamental sem pois permite controle
fins lucrativos localizada sobre a maneira como sua
na California, voltada a propriedade intelectual ser
expandir a quantidade de compartilhada.
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
1.8 Licena da Obra

Este guia est sob uma licena Creative Commons.

Voc tem o direito de:


Compartilhar - reproduzir, distribuir e transmitir este trabalho
Adaptar este trabalho

De acordo com as seguintes condies:


Atribuio - Tem de fazer a atribuio do trabalho, da
maneira estabelecida pelo autor ou licenciante (mas sem
sugerir que este o apoia, ou que subscreve o seu uso do
trabalho).
No Comercial - No pode usar este trabalho para fins
comerciais.
Compartilha Igual - Se alterar ou transformar este trabalho,
ou criar um trabalho baseado neste trabalho, s pode
distribuir o trabalho resultante licenciando-o com a mesma
licena ou com uma licena semelhante a esta.
No entendimento de que:

18 multilogica-shop.com
Renncia - Qualquer uma das condies acima pode ser
renunciada pelo titular do direito de autor ou pelo titular dos
direitos conexos, se obtiver deste uma autorizao para usar
o trabalho sem essa condio.
Domnio Pblico - Quando a obra ou qualquer dos seus
elementos se encontrar no domnio pblico, nos termos da
lei aplicvel, esse estatuto no de nenhuma forma afetado
pela licena.
Outros Direitos - A licena no afeta, de nenhuma forma,
qualquer dos seguintes direitos:
Os seus direitos de uso legtimo (fair dealing ou fair use)
concedidos por lei, ou outras excees e limitaes aplicveis
ao direito de autor e aos direitos conexos;
Os direitos morais do autor;
Direitos de que outras pessoas possam ser titulares, quer
sobre o trabalho em si, quer sobre a forma como este
usado, tais como os direitos de publicidade ou direitos de
privacidade.
Aviso Em todas as reutilizaes ou distribuies, tem de
deixar claro quais so os termos da licena deste trabalho.
A melhor forma de faz-lo colocando um link para esta
pgina.

19 multilogica-shop.com
2 Eletrnica

20 multilogica-shop.com
2.1 Conceito de Eletrnica

Numa definio mais estas duas formas de eltricas elementares,


abrangente, podemos dizer apresentao dos sinais as propriedades e
que a eletrnica o ramo eltricos a serem tratados. comportamento do
da cincia que estuda o uso Tambm considerada um eltron, ftons, partculas
de circuitos formados por ramo da eletricidade que, elementares, ondas
componentes eltricos e por sua vez, um ramo eletromagnticas, etc.
eletrnicos, com o objetivo da Fsica onde se estudam
principal de representar, os fenmenos das cargas
armazenar, transmitir ou
processar informaes alm
do controle de processos e
servo mecanismos.
Sob esta tica, tambm
se pode afirmar que os
circuitos internos dos
computadores, os sistemas
de telecomunicaes, os
diversos tipos de sensores
e transdutores esto, todos,
dentro da rea de interesse
da eletrnica.
Divide-se em analgica
e em digital porque suas
coordenadas de trabalho
optam por obedecer

21 multilogica-shop.com
2.2 Voltagem

Tenso eltrica, tambm Um voltmetro pode ser


conhecida como diferena utilizado para se medir a
de potencial (DDP) ou diferena de potencial entre
voltagem, a diferena de dois pontos em um sistema,
potencial eltrico entre dois sendo que usualmente um
pontos ou a diferena em ponto referencial comum
energia eltrica potencial o terra.
por unidade de carga A tenso eltrica pode
eltrica entre dois pontos. ser causada por campos
Sua unidade de medida o eltricos estticos, por uma
volt, ou joules por coulomb. corrente eltrica sob a ao
A diferena de potencial de um campo magntico,
igual ao trabalho que deve por campo magntico
ser feito por unidade de variante ou uma combinao
carga contra um campo dos trs.
eltrico para se movimentar
uma carga qualquer.

2.3 Corrente Eltrica

A corrente eltrica o fluxo A unidade padro no movimentos de cargas,


ordenado de partculas Sistema Internacional de produz um campo
portadoras de carga Unidades para medir a magntico, um fenmeno
eltrica, ou tambm, o intensidade de corrente que pode ser usado como
deslocamento de cargas o ampere. Para medir a um eletrom, sendo este o
dentro de um condutor, corrente, pode-se utilizar um princpio de funcionamento
quando existe uma diferena ampermetro. de um motor.
de potencial eltrico entre as Uma corrente eltrica,
extremidades. j que se trata de um

22 multilogica-shop.com
Corrente contnua, corrente 2.4 Corrente Contnua
direta, corrente galvnica
ou ainda corrente constante
(CC ou DC do ingls direct para alimentar aparelhos
current) o fluxo ordenado eletrnicos (entre 1,2V
de eltrons sempre numa e 24V) e os circuitos
direo. digitais de equipamento de
Esse tipo de corrente informtica (computadores,
gerado por baterias de modems, hubs, etc.).
automveis ou de motos Este tipo de circuito possui
(6, 12 ou 24V), pequenas um polo negativo e outro
baterias (geralmente de positivo ( polarizado), cuja
9V), pilhas (1,2V e 1,5V), intensidade mantida. Mais
dnamos, clulas solares corretamente, a intensidade
e fontes de alimentao cresce no incio at um
de vrias tecnologias, ponto mximo, mantendo-se
que retificam a corrente contnua, ou seja, sem se
alternada para produzir alterar. Quando desligada,
corrente contnua. diminui at zero e extingue-
Normalmente utilizada se.

2.5 Corrente Alternada

A corrente alternada (CA ou ser a forma de transmisso composta por fases (e,
AC - do ingls alternating de energia mais eficiente. muitas vezes, pelo fio
current), uma corrente Entretanto, em certas neutro).
eltrica cujo sentido varia aplicaes, diferentes formas
no tempo, ao contrrio de ondas so utilizadas, tais
da corrente contnua como triangular ou ondas
cujo sentido permanece quadradas. Enquanto a
constante ao longo do fonte de corrente contnua
tempo. A forma de onda constituda pelos plos
usual em um circuito de positivo e negativo, a
potncia CA senoidal por de corrente alternada

23 multilogica-shop.com
2.6 Resistncia

Resistncia eltrica alguma parte de um circuito


a capacidade de um eltrico, porm jamais
corpo qualquer se opor causam quedas de corrente
passagem de corrente eltrica, apesar de limitar a
eltrica mesmo quando corrente. Isso significa que
existe uma diferena de a corrente eltrica que entra
potencial aplicada. medida em um terminal do resistor
em ohms (). ser exatamente a mesma
Resistores so componentes que sai pelo outro terminal,
que tm por finalidade porm h uma queda de
oferecer uma oposio tenso.
passagem de corrente Utilizando-se disso,
eltrica, atravs de seu possvel usar os resistores
material. A essa oposio para controlar a tenso
damos o nome de sobre os componentes
resistncia eltrica. Causam desejados.
uma queda de tenso em

2.7 Lei de Ohm

A Lei de Ohm afirma que A pirmide ao lado muito


a corrente (I) que circula til para conhecer esta
atravs de um dado circuito frmula. Por exemplo,
directamente proporcional cubra com um dedo a
voltagem aplicada (V), e letra V (voltagem), ento
inversamente proporcional a voltagem ser igual
resistncia (R) da mesma. corrente (I) vezes a
resistncia (R). Ou, para
calcular a resistncia, divida
a voltagem (V) pela corrente
(I).

24 multilogica-shop.com
2.8 Sistemas Eletrnicos

Um sistema eletrnico um conjunto de circuitos


que interagem entre si para obter um resultado.
Uma forma de entender os sistemas eletrnicos
consiste em dividi-los em entradas, sadas e
processamento de sinais.

2.9 Entradas 2.10 Sadas

As entradas, ou inputs, so As sadas, ou outputs,


sensores eletrnicos ou so atuadores, ou outros
mecnicos que tomam os sinais dispositivos que convertem os
(em forma de temperatura, sinais de corrente ou voltagem
presso, umidade, contato, luz, em sinais fisicamente teis
movimento, ph, etc.) do mundo como movimento, luz, som,
fsico e converte em sinais de fora ou rotao, entre outros.
corrente ou voltagem. Exemplos de sadas so
Exemplos de entradas so motores, LEDs ou sistemas
sensores de gs, temperatura, de luzes que acendem
pulsadores, fotoclulas, automaticamente quando
potencimetros, sensores de escurece ou um buzzer que gere
movimento, e muitos mais. diversos tons.

25 multilogica-shop.com
2.11 Processamento de Sinal

O processamento de sinal realizado mediante


circuitos conhecidos como microcontroladores. So
circuitos integrados construdos para manipular,
interpretar e transformar os sinais de voltagem e
corrente vindos dos sensores (entradas) e e ativar
determinadas aes nas sadas.

2.12 Resumo dos Sistemas Eletrnicos

Como exemplo imaginamos um aparelho de TV. A entrada


um sinal recebido por uma antena ou um cabo. Os circuitos
integrados do interior do aparelho extraem a informao
sobre brilho, cor e som deste sinal. Os dispositivos de
sada so a tela LCD, que converte os sinais eletrnicos em
imagens visveis, e as caixas de som, que emitem o som.
Outro exemplo pode ser um circuito que controle a
temperatura de um ambiente. Um sensor de temperatura
e um circuito integrado so os responsveis por converter
um sinal de entrada em um nvel de voltagem apropriado.
Se a temperatura registrada do ambiente muito alta, este
circuito enviar a informao a um motor para que este ligue
um ventilador que resfriar o local.

26 multilogica-shop.com
2.13 Sinais Eletrnicos

As entradas e sadas de um sistema eletrnico sero consideradas como sinais variveis. Em


eletrnica se trabalha com variveis que so tomadas na forma de tenso ou corrente, que
podem simplesmente ser chamados de sinais.
Os sinais podem ser de dois tipos: digital ou analgico.

2.14 Varivel Digital

Tambm chamadas de variveis


discretas, se caracterizam por
ter dois estados diferentes e
portanto tambm podem ser
chamadas de binrias (em lgica
seria valores Verdadeiro (V) e
Falso (F), ou poderiam ser 1 ou
0 respectivamente).
Um exemplo de um sinal digital
o interruptor da campainha
da sua casa, porque ele tem
somente dois estados, pulsado e
sem pulsar.

Apagado Aceso
0 1

27 multilogica-shop.com
2.15 Varivel Analgica

So aquelas que podem tomar um nmero


infinito de valores compreendidos entre dois
limites. A maioria dos fenmenos da vida
real so sinais deste tipo (som, temperatura,
luminosidade, etc.).
Um exemplo de sistema eletrnico analgico
de um palestrante, que se preocupa em
amplificar o som da sua voz para que seja
escutado por uma grande audincia. As ondas
de som que so analgicas na sua origem so
capturadas por um microfone e convertidas em
uma pequena variao analgica de tenso,
denominada sinal de udio.

28 multilogica-shop.com
2.16 Entrada/Sada Digital

Entrada Sada Entrada


Boto LED Reed switch

2.17 Entrada/Sada Analgica

Entrada Sada Entrada


LDR Motor DC Potencimetro

29 multilogica-shop.com
2.18 Divisor de Voltagem

Em eletrnica, a regra do resistncias so ligadas em A tenso de sada, Vout ,


divisor de tenso uma srie como no esquema a dada pela frmula:
tcnica de projeto utilizada seguir:
para criar uma tenso
eltrica (Vout) que seja
proporcional outra (Vin).
Desta forma a voltagem de
uma fonte repartida entre Desta forma podemos obter
uma ou mais resistncias qualquer frao entre 0 e 1
conectadas em srie. Em da tenso Vin.
um circuito deste tipo, duas

2.19 Conversor Analgico-Digital

Um conversor analgico- gravadores de som e


digital (ou ADC em vdeo e equipamentos de
ingls - Analog-to-Digital telecomunicaes.
Converter) um dispositivo Estes conversores so
eletrnico capaz de gerar muito teis na interface
uma representao digital entre dispositivos digitais
a partir de uma grandeza e dispositivos analgicos e
analgica, convertendo so utilizados em aplicaes
uma entrada analgica como leitura de sensores,
de voltagem em um valor digitalizao de udio, vdeo,
binrio. Se utiliza em etc..
equipamentos eletrnicos
como computadores,

30 multilogica-shop.com
2.20 Modulao por Largura de Pulso PWM

A modulao por largura Por exemplo, se aplicamos variar a velocidade do


de pulso (MLP) - mais PWM a um LED podemos mesmo com a caracterstica
conhecida pela sigla em variar a intensidade do de manter sua fora
ingls PWM (Pulse-Width brilho, e se aplicamos PWM constante.
Modulation) - de um sinal ou a um motor DC conseguimos
em fontes de alimentao
envolve a modulao de sua
razo cclica (duty cycle)
para transportar qualquer
informao sobre um canal
de comunicao ou controlar
a quantidade de energia que
se envia em uma carga.

2.21 Comunicao Serial

uma interface de Um de seus usos letra A do teclado se deve


comunicao de dados monitorar atravs da tela acender um LED conectado
digitais em que a informao do computador o estado de de maneira remota ao
enviada um bit de cada um perifrico conectado. computador.
vez, sequencialmente. Por exemplo ao pulsar a
diferente da comunicao
paralela, em que todos
os bits de cada smbolo
so enviados juntos. A
comunicao serial usada
em toda comunicao de
longo alcance e na maioria
das redes de computadores.

31 multilogica-shop.com
3 Componentes Eletrnicos

32 multilogica-shop.com
3.1 Microcontrolador

Um microcontrolador digitais (ADC), conversores


um circuito integrado digitais/analgicos (DAC) em
programvel, capaz alguns casos; e, interfaces
de executar as ordens de entrada e sada de
gravadas em sua memria. dados.
Um microcontrolador So geralmente utilizados
possui em seu interior em automao e controle
trs unidades funcionais de produtos e perifricos,
principais: unidade central como sistemas de controle
de processamento, memria de motores automotivos,
e perifricos de entrada e controles remotos, mquinas
sada. de escritrio e residenciais,
Os microcontroladores brinquedos, sistemas de
se diferenciam dos superviso, etc. Por reduzir
processadores pois, alm o tamanho, custo e consumo
dos componentes lgicos de energia, e se comparados
e aritmticos usuais de um forma de utilizao
microprocessador de uso de microprocessadores
geral, o microcontrolador convencionais, aliados a
integra elementos facilidade de desenho de
adicionais em sua estrutura aplicaes, juntamente
interna, como memria com o seu baixo custo, os
de leitura e escrita para microcontroladores so uma
armazenamento de dados, alternativa eficiente para
memria somente de leitura controlar muitos processos e
para armazenamento aplicaes.
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.

1 cifra: vermelho (2)


2 cifra: violeta (7)
Multiplicador: verde (105)
Smbolo
Tolerncia: prata (10%)

35 multilogica-shop.com
3.4 Termistor

Smbolo

O termistor NTC (do ingls Negative Temperature Coefficient) um componente eletrnico


semicondutor sensvel temperatura, utilizado para controle, medio ou polarizao de
circuitos eletrnicos. Possui um coeficiente de variao de resistncia que varia negativamente
conforme a temperatura aumenta, ou seja, a sua resistncia eltrica diminui com o aumento
da temperatura.

3.5 Diodo

Smbolo

o tipo mais simples de componente eletrnico semicondutor. um componente que permite


que a corrente atravesse somente em um sentido.

36 multilogica-shop.com
Smbolo
3.6 Transistor

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 um sinal eltrico mais caractersticas. A este
do componente varia fraco num mais forte. Um processo todo d-se o nome
para cima ou para baixo sinal eltrico de baixa de ganho de sinal.
da polarizao pr- intensidade, como o sinal Atualmente os transistores
estabelecida. Graas a esta gerado por um microfone, se encontram em todos
funo, a corrente eltrica injetado num circuito os aparelhos de uso
que passa entre coletor (C), eletrnico (transistorizado domstico e cotidiano:
base (B) e emissor (E) do por exemplo), cuja funo rdios, televises,
transistor varia dentro de principal transformar gravadores, aparelhos de
determinados parmetros este sinal fraco gerado som, microondas, lavadoras,
pr-estabelecidos e processa pelo microfone em sinais carros, calculadores,
a amplificao de sinal. eltricos com as mesmas impressoras, celulares, etc.
Entende-se por amplificar
o procedimento de tornar

37 multilogica-shop.com
3.7 Capacitor

Smbolo

O capacitor um dispositivo eltrico capaz de armazenar cargas eltricas. Em circuitos


eletrnicos alguns componentes necessitam que haja alimentao em corrente contnua,
enquanto a fonte est ligada em corrente alternada. A resoluo deste problema um dos
exemplos da utilidade de um capacitor.
Este elemento capaz de armazenar energia potencial eltrica durante um intervalo de
tempo, e construdo utilizando um campo eltrico uniforme. Um capacitor composto
por duas peas condutoras, chamadas armaduras e um material isolante com propriedades
especficas chamado dieltrico.

38 multilogica-shop.com
3.8 LED

Smbolo
O LED (Light Emitting Diode) uma polaridade, uma ordem
um diodo que emite luz de conexo. Ao conect-lo
sinalizador de avisos.
quando energizado. Os invertido no funcionar
Tambm muito utilizado
LEDs apresentam muitas corretamente. Revise os
em painis, cortinas e
vantagens sobre as fontes desenhos para verificar a
pistas de led. Podem ser
de luz incandescentes correspondncia do negativo
encontrados em tamanho
como um consumo menor e do positivo.
maior, como em alguns
de energia, maior tempo So especialmente modelos de semforos ou
de vida, menor tamanho, utilizados em produtos displays.
grande durabilidade e de microeletrnica como
confiabilidade. O LED tem

3.9 LED RGB

Um LED RGB um LED que


incorpora em um mesmo
encapsulamento trs LEDs,
um vermelho (Red), um
verde (Green) e outro
azul (Blue). Desta forma
possvel formar milhares de
cores ajustando de maneira
individual cada cor. Os trs
LEDs esto unidos por um
negativo ou ctodo.

39 multilogica-shop.com
3.10 Display de LCD

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

3.12 Reed Switch

um interruptor eltrico ativado por um campo magntico,


por exemplo com um m. Quando os contatos esto abertos
se fecham na presena de um campo magntico. Quando
esto fechados se abrem.
comumente usado em sensores de portas e janelas de
alarmes anti-roubo. O m vai preso porta e o reed switch
ao batente.

Smbolo

41 multilogica-shop.com
Um potencimetro uma 3.13 Potencimetro
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.
Smbolo

3.14 Fotoclula

O LDR (Light Dependant Pode ser encontrada em


Resistor) uma resistncia vrios artigos de consumo,
cujo valor em ohms varia como por exemplo em
de acordo com a luz cmaras, medidores de luz,
incidente. Uma fotoclula relgios com rdio, alarmes
apresenta um baixo valor de de segurana ou sistemas
resistncia na presena de de iluminao pblica.
luz e um alto valor na sua
ausncia.

Smbolo

42 multilogica-shop.com
3.15 Transdutor Piezoeltrico

Um transdutor piezoeltrico muito prtico para detectar


vibraes ou golpes. Pode ser usado como sensor atravs da
leitura da voltagem de sada. Este transdutor eletroacstico
tambm pode ser usado como um pequeno buzzer para
produzir um som ou zumbido contnuo ou intermitente.

Smbolo

3.16 Motor CC

O motor de corrente em aplicaes de controle


contnua (CC) uma e automao de processos.
mquina que converte Por exemplo, pode-se
a energia eltrica em encontrar na trao de
mecnica provocando carros de brinquedo a pilhas
um movimento rotatrio. ou nas rodas de um rob.
Esta mquina de corrente
contnua uma das mais
versteis. Seu fcil controle
de posio, pausa e
velocidade a convertem em
uma das melhores opes
Smbolo

43 multilogica-shop.com
3.17 Rel

um interruptor eletromecnico usado para ligar ou desligar dispositivos. Quando uma


corrente circula pela bobina interna, esta cria um campo magntico que atrai um ou uma
srie de contatos fechando ou abrindo circuitos. Ao cessar a corrente da bobina o campo
magntico tambm cessa, fazendo com que os contatos voltem para a posio original.

Smbolo

44 multilogica-shop.com
4 Arduino

45 multilogica-shop.com
4.1 O Projeto Arduino

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.

No acredito que o Arduino existiria sem Wiring, e no acredito


que Wiring existiria sem Processing. E que Processing sem
dvida no existiria sem Design by Numbers e John Maeda.
Entrevista a Casey Reas e Ben Fry, Shiffman Daniel (Set/2009)

46 multilogica-shop.com
4.2 Arduino Uno R3

1 - Conector USB para o cabo tipo AB


2 - Boto de reset
3 - Pinos de entrada e sada digital e PWM
4 - LED verde de placa ligada
5 - LED laranja conectado ao pin13
6 - ATmega encarregado da comunicao com o computador
7 - LED TX (transmissor) e RX (receptor) da comunicao serial
8 - Porta ICSP para programao serial
9 - Microcontrolador ATmega 328, crebro do Arduino
10 - Cristal de quartzo 16Mhz
11 - Regulador de voltagem
12 - Conector fmea 2,1mm com centro positivo
13 - Pinos de voltagem e terra
14 - Entradas analgicas

47 multilogica-shop.com
4.3 Famlia Arduino

Com o passar dos anos a linha Arduino vem crescendo mais e mais e trazendo solues para
os mais diversos projetos. Conhea um pouco mais desta famlia:

Arduino Leonardo Arduino Mega2560 R3

Arduino Industrial 101 Arduino Ethernet com mdulo PoE Arduino M0

Arduino Yn Arduino Leonardo Ethernet Arduino LilyPad

Arduino ISP Arduino Yn mini


Arduino Micro

48 multilogica-shop.com
4.4 Shields para Arduino

Um shield uma placa que permite expandir as funcionalidades originais do Arduino. Alguns
exemplos:
Arduino Ethernet Shield R3 Motor Shield R3 Arduino WiFi Shield

Shield Arduino 4 rels Arduino ProtoShield R3 Arduino USB Host Shield

Shield Arduino 9 DOF Shield GPS Logger Shield GSM Arduino 2

Shield MP3 Player Wireless SD Shield


Arduino XBee Shield

49 multilogica-shop.com
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
5.1 IDE Arduino para Windows

1 - Placa Arduino e um cabo USB AB


Este tutorial serve para instalao das placas Arduino Uno, Arduino Duemilanove, Nano,
Arduino Mega 2560 ou Diecimila. Para outras placas da linha Arduino deve-se buscar o tutorial
correspondente. Voc tambm vai precisar de um cabo USB AB.

2 - Download do software do Arduino


Faa download da ltima verso do software do Arduino. Ao terminar, descompacte o arquivo
e mantenha a estrutura de pastas e sub-pastas. Se quiser guarde esta pasta no drive C: do
seu computador. Dentro desta pasta existe um arquivo chamado arduino.exe que o ponto
de entrada do programa do Arduino, a IDE (Integrated Development Environment).

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
5 - Abrindo o programa Arduino
Clique duas vezes na aplicao do Arduino, o arquivo arduino.exe. Caso o programa carregue
com o idioma que no da sua preferncia voc pode alterar na sesso de preferncias do
programa.

6 - Exemplo Piscar
Abra o exemplo Piscar (blink): Arquivo > Exemplos > 01.Basics > Blink

54 multilogica-shop.com
7 - Selecione sua placa
Voc deve selecionar qual a sua placa Arduino: Ferramentas > Placa > Arduino Uno.

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
5.2 IDE Arduino para Mac OS X

1 - Placa Arduino e um cabo USB AB


Este tutorial serve para instalao das placas Arduino Uno, Arduino Duemilanove, Nano,
Arduino Mega 2560 ou Diecimila. Para outras placas da linha Arduino deve-se buscar o tutorial
correspondente. Voc tambm vai precisar de um cabo USB AB.

2 - Download do software do Arduino


Faa download da ltima verso do software do Arduino. Ao terminar o download clique duas
vezes no arquivo .zip para abrir a aplicao Arduino.

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.

5 - Abrindo o programa Arduino


Clique duas vezes na aplicao do Arduino. Caso o programa carregue com o idioma que no
da sua preferncia voc pode alterar na sesso de preferncias do programa.

58 multilogica-shop.com
6 - Exemplo Piscar
Abra o exemplo Piscar (blink): Arquivo > Exemplos > 01.Basics > Blink

59 multilogica-shop.com
7 - Selecione sua placa
Voc deve selecionar qual a sua placa Arduino: Ferramentas > Placa > Arduino Uno.

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).

Selecionando um Uno, Mega 2560 ou uma placa mais nova:

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
5.3 IDE Arduino para Linux

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:

- ArchLinux
- Debian
- Fedora
- Gentoo
- MEPIS
- Mint
- openSUSE
- Puppy
- Pussy
- Slackware
- Ubuntu
- Xandros (Debian derivative) on Asus Eee PC
- CentOS 6

63 multilogica-shop.com
6 Programao

A programao um grande recurso que nos permite criar


diversas sequncias de passos lgicos com o objetivo de
cumprir nossas necessidades e de nossos sistemas.
Programar uma arte que requer uma grande habilidade
lgica e concentrao por parte do programador.

64 multilogica-shop.com
6.1 Conceito de Programao

o processo de projetar, escrever, provar, depurar e manter o cdigo fonte de programas de


computador. O cdigo fonte escrito em uma linguagem de programao. O propsito da
programao criar programas que executem um comportamento desejado.
O processo de escrever um cdigo requer frequentemente conhecimentos em vrias reas
distintas, alm do domnio da linguagem a utilizar, algoritmos especializados e lgica formal.
Programar engloba reas como a anlise e o projeto da aplicao.
Para criar um programa que o computador interprete e execute as instrues escritas, deve-
se usar uma linguagem de programao. No incio, os computadores interpretavam somente
instrues em uma linguagem especfica, uma linguagem de programao de baixo nvel
conhecida como cdigo mquina, excessivamente complicada para programar. Consiste
somente em cadeias de nmeros 1 e 0 (sistema binrio).
Para facilitar o trabalho de programao os primeiros cientistas que trabalhavam na rea
decidiram substituir as instrues, sequncias de um e zero, por palavras ou letras do ingls,
codificando e criando assim uma linguagem de maior nvel conhecida como Assembly. Por
exemplo, para somar se usa a letra A, do ingls add. Realmente escrever em linguagem
assembly basicamente o mesmo que com a linguagem mquina, mas as letras e as palavras
so mais fceis de lembrar e entender que sequncias de nmeros binrios.
medida que a complexidade das tarefas que realizavam os computadores aumentava, foi
necessrio desenvolver um mtodo mais simples de programao. Ento foram criadas as
linguagens de alto nvel. Enquanto que uma tarefa to simples como multiplicar dois nmeros
necessita um conjunto de instrues em linguagem assembly, em uma linguagem de alto
nvel basta com uma.

65 multilogica-shop.com
6.2 Linguagem de Programao

Uma linguagem de programao um idioma artificial desenvolvido para expressar operaes


que podem ser executadas por mquinas como os computadores. Podem ser usadas para
criar programas que controlam o comportamento fsico e lgico de uma mquina, para
expressar algoritmos com preciso, ou como modo de comunicao entre as pessoas.
Est formada por um conjunto de smbolos e regras sintticas e semnticas que definem sua
estrutura e o significado de seus elementos e expresses.
O processo pela qual se escreve, prova, depura, compila e se mantm o cdigo fonte de um
programa informtico se chama programao.

66 multilogica-shop.com
6.3 Linguagem de Mquina

Sistema de cdigos diretamente interpretvel por um circuito microprogramvel, como o


microprocessador de um computador ou um microcontrolador. Um programa em cdigo de
mquina consiste em uma sequncia de nmeros que significam uma sequncia de instrues
a serem executadas.
A linguagem mquina trabalha com dois nveis de voltagem. Tais nveis, por abstrao, se
simbolizam com o zero (0) e o um (1), por isso a linguagem de mquina s utiliza estes
signos.
Os programas de computador raramente so criados em linguagem de mquina, mas devem
ser traduzidos (por compiladores) para serem executados diretamente pelo computador.
Existe a opo, em voga atualmente, de no execut-los diretamente, mas sim por meio
de um interpretador, esse sim rodando diretamente em cdigo de mquina e previamente
compilado.

6.4 Linguagem Assembly

uma linguagem de programao de baixo nvel para computadores, microcontroladores e


outros circuitos integrados programveis. A linguagem de mquina, que um mero padro
de bits, torna-se legvel pela substituio dos valores em bruto por smbolos chamados
mnemnicos. Estes smbolos so geralmente definidos pelo fabricante do hardware e est
baseada em cdigos que simbolizam os passos do processamento (as instrues).
Uma linguagem assembly portanto especfica de cada arquitetura de computador, podendo
ser usada somente por um microprocessador especfico. Isso contrasta com a maioria das
linguagens de programao de alto nvel que idealmente so portteis, o que significa que um
programa pode ser executado em uma variedade de computadores.

67 multilogica-shop.com
6.5 Linguagem de Alto Nvel

Linguagem de programao de alto nvel como se chama, na Cincia da Computao


de linguagens de programao, uma linguagem com um nvel de abstrao relativamente
elevado, longe do cdigo de mquina e mais prximo linguagem humana. Desse modo, as
linguagens de alto nvel no esto diretamente relacionadas arquitetura do computador.
O programador de uma linguagem de alto nvel no precisa conhecer caractersticas do
processador, como instrues e registradores. Essas caractersticas so abstradas na
linguagem de alto nvel.
Para estas linguagens necessrio certo conhecimento de programao para realizar
sequncias de instrues lgicas. As linguagens de alto nvel foram criadas para que o usurio
comum pudesse solucionar um problema de processamento de dados de uma maneira mais
fcil e rpida.

6.6 Algoritmo

Um algoritmo uma sequncia finita de instrues bem definidas e no ambguas, cada


uma das quais pode ser executada mecanicamente num perodo de tempo finito e com uma
quantidade de esforo finita.
O conceito de algoritmo frequentemente ilustrado pelo exemplo de uma receita culinria,
embora muitos algoritmos sejam mais complexos. Eles podem repetir passos (fazer
iteraes) ou necessitar de decises (tais como comparaes ou lgica) at que a tarefa seja
completada. Um algoritmo no representa, necessariamente, um programa de computador, e
sim os passos necessrios para realizar uma tarefa. Sua implementao pode ser feita por um
computador, por outro tipo de autmato ou mesmo por um ser humano.

68 multilogica-shop.com
7 Programao Arduino

69 multilogica-shop.com
7.1 Software Arduino

Para executar o programa entramos na pasta do Arduino guardada no computador e


procuramos o cone. Clique duas vezes para abrir o programa.
O programa do Arduino tambm conhecido como IDE Arduino (Integrated Development
Environment) pois alm do entorno de programao consiste tambm em um editor de
cdigo, um compilador e um depurador.

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
7.2 Programando o Arduino

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

Para mais detalhes visite a Referncia da linguagem de programao Arduino, em portugus.


Veja a referncia extendida para caractersticas mais avanadas da linguagem Arduino e a
pgina das bibliotecas para interao com tipos especficos de hardware, no site oficial do
Arduino.

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 && digitalRead(3) == 1) { // ler dois interruptores
// ...
}
verdadeiro apenas se os dois interruptores estiverem fechados.

- || (ou lgico)
Verdadeiro se algum dos operandos for verdadeiro, ou seja, se a primeira ou a segunda
condio for verdadeira. Exemplo:
if (x > 0 || y > 0) {
// ...
}
verdadeiro apenas se x ou y forem maiores que 0.

- ! (negao)
Verdadeiro apenas se o operando for falso. Exemplo:
if (!x) {
// ...
}
verdadeiro apenas se x for falso (ou seja, se x for igual a 0).

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)
{
// faa alguma coisa
}

O programa checa se algumaVariavel (colocar acentos em nomes de variveis no uma


boa idia) maior que 50. Se for, o programa realiza uma ao especfica. Colocado de outra
maneira, se a sentena que est dentro dos parntesis verdadeira o cdigo que est dentro
das chaves roda; caso contrrio o programa salta este bloco de cdigo.
As chaves podem ser omitidas aps uma sentena if se s houver uma nica linha de cdigo
(definida pelo ponto e vrgula) que ser executado de modo condicional:
if (x > 120) 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 == y (x igual a y)
x != y (x no igual a y)
x < y (x menor que y)
x > y (x maior que y)
x <= y (x menor ou igual a y)
x >= y (x maior ou igual a y)

79 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:
//faa alguma coisa quando var == 1
case 2:
//faa alguma coisa quando var == 2
default:
// se nenhum valor for idntico, faa o 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;
while(var < 200){
// algum cdigo que se repete 200 vezes
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()
{
// nenhum setup necessrio
}
void loop()
{
for (int i=0; i <= 255; i++){
analogWrite(PWMpin, i);
delay(10);
}
}

82 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); // determina o pino digital 9 como uma sada.

- digitalRead()
L o valor de um pino digital especificado, HIGH ou LOW.
Sintaxe:
digitalRead(pin)

buttonState = digitalRead(9); // Leitura do estado de um boto no pino 9.

- digitalWrite()
Escreve um valor HIGH ou um LOW em um pino digital.
Sintaxe:
digitalWrite(pin, valor)

digitalWrite(9, HIGH); // Coloca o pino 9 em estado 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); // L o valor do pino analgico A0 e armazena


//este valor na varivel "a".

- 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); // Envia o valor analgico 134 para o pino 9.

84 multilogica-shop.com
8 Kit Iniciante com Arduino Uno R3

O Kit Iniciante com Arduino Uno R3 desenvolvido pela Multilgica-Shop


o mais completo do Brasil.
Possui tudo o que voc precisa para realizar todos os tutoriais deste guia
e para comear a desenvolver seus prprios projetos com a plataforma
Arduino, sem necessidade de realizar soldas.

85 multilogica-shop.com
1 - 1 Caixa organizadora Multilgica-shop
2 - 1 Arduino Uno R3
3 - 1 Protoboard
4 - 15 jumpers de tamanhos variados
5 - 1 potencimetro 10k
6 - 2 chaves momentneas (boto)
7 - 1 Sensor de temperatura (termistor ntc 1k)
8 - 15 resistores 330
9 - 5 resistores 1k
10 - 5 resistores 10k
11 - 1 resistor de 15
12 - 1 sensor/atuador piezoeltrico
13 - 1 Sensor de luminosidade (LDR 5mm)
14 - 1 Cabo USB - Para conectar o Arduino ao seu computador.
15 - 1 Rel de uso geral, bobina de 5V, 40 mA / Dois contatos reversveis de 1A
16 - 5 LEDs vermelhos (1,2 Vdc 20mA)
17 - 5 LEDs amarelos (1,2 Vdc 20mA)
18 - 5 LEDs verdes (1,2 Vdc 20mA)
19 - 1 LED de alto brilho branco
20 - 1 Motor CC 6V com jumpers soldados
21 - 1 Display LCD 2x16 com conector soldado (com Backlight)

86 multilogica-shop.com
9 Tutoriais

Tutoriais desenvolvidos para utilizar todos os componentes de seu


Kit Iniciante com Arduino Uno R3 Multilgica-Shop.
Em cada tutorial voc identifica os materiais necessrios para sua
execuo, os conhecimentos prvios necessrios e o que voc vai
aprender, o diagrama de montagem, o cdigo de programao, dicas
e exerccios extras.

87 multilogica-shop.com
9.1 Hello World - Piscar

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.

O Que Vou Aprender?

- Ativar uma sada digital


- Acender um LED em ON/OFF
- Temporizar um sinal de sada
- Sintaxe de um programa Arduino

Conhecimentos Prvios

- Sinal digital
- Funo digitalWrite()
- Polaridade de um LED (pgina 39)
- Conexo da placa Arduino com o computador

Cdigo Fonte

Download do arquivo em formato .ino

88 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 LED 1 Cabo USB AB

Diagrama

89 multilogica-shop.com
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.
*/

// Estabeleca um nome para o pino 13:


int led = 13;

// Se executa cada vez que o Arduino inicia:


void setup() {
// Inicializa o pino digital como sada.
pinMode(led, OUTPUT);
}

// A funcao loop() continua executando enquanto o Arduino estiver alimentado,


// ou ate que o botao reset seja acionado.

void loop() {
digitalWrite(led, HIGH); // Acende o LED
delay(1000); // Aguarda um segundo (1s = 1000ms)
digitalWrite(led, LOW); // Apaga o LED
delay(1000); // Aguarda um segundo (1s = 1000ms)
}

91 multilogica-shop.com
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 Sensor de distncia Sharp


infra vermelho GP2Y0A41SK0F - 4 a 30cm

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.

O Que Vou Aprender?

- Cabear um circuito
- Condicional if/else
- Estado de um boto
- Ler uma entrada digital e escrever uma sada digital

Conhecimentos Prvios

- Sinal digital
- Funo digitalWrite() e digitalRead()
- Divisor de voltagem
- Condicional, operadores booleanos e de comparao

Cdigo Fonte

Download do arquivo em formato .ino

94 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 Boto 1 LED 1 Resistor 10k 1 Cabo USB AB

Jumpers 1 Protoboard

Diagrama

95 multilogica-shop.com
Cdigo Fonte

/*
Botao

Liga e desliga um LED conectado ao pino digital 13 quando pressionado um


botao conectado ao pino 2.

O Circuito:
* LED conectado ao pino 13 e ao terra
* botao conectado ao pino 2 desde 5V
* resistor de 10K conectado ao pino 2 desde o terra
*/

// constantes nao sao alteradas.


// Sao usadas aqui para definir os numeros dos pinos:
const int buttonPin = 2; // o numero do pino do boto
const int ledPin = 13; // o numero do pino do LED

// variaveis que devem mudar:


int buttonState = 0; // variavel para ler o estado do botao

void setup() {
// inicializa o pino do LED como saida:
pinMode(ledPin, OUTPUT);
// inicializa o pino do botao como entrada:
pinMode(buttonPin, INPUT);
}

void loop(){
// faz a leitura do valor do botao:
buttonState = digitalRead(buttonPin);

96 multilogica-shop.com
// verifica se o botao esta pressionado.
// em caso positivo, buttonState e HIGH:
if (buttonState == HIGH) {
// liga o LED:
digitalWrite(ledPin, HIGH);
}
else {
// desliga o LED:
digitalWrite(ledPin, LOW);
}
}

97 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
9.3 Leitura Serial de uma Entrada Digital

Este exemplo mostra como monitorar o estado de um interruptor estabelecendo a


comunicao serial entre seu Arduino e o computador atravs da USB.

O Que Vou Aprender?

- Controlar uma entrada digital


- Ver dados pelo computador
- Monitor Serial
- Ler uma entrada digital

Conhecimentos Prvios

- Sinal digital
- Funo digitalRead() e Serial.print
- Funo digitalWrite() e Operadores de comparao

Cdigo Fonte

Download do arquivo em formato .ino

100 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 Boto 1 LED 1 Resistor 10k 1 Cabo USB AB

Jumpers 1 Protoboard

Diagrama

101 multilogica-shop.com
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
Le a entrada digital no pino 2 e imprime o resultado no monitor serial.
Este exemplo e de dominio publico.
*/

int pushButton = 2; // o pino 2 tem um botao ligado nele.


int ledPin = 13; // entrada do LED no pino 13.

void setup() {
// Inicializa a comunicacao serial a 9600 bits por segundo:
Serial.begin(9600);

pinMode(pushButton, INPUT); // define o botao como uma entrada.


pinMode(ledPin, OUTPUT); //define o LED como uma sada.
}

void loop() {
// faz a leitura do pino de entrada:
int buttonState = digitalRead(pushButton);
if (buttonState == 1) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
// imprime o estado do botao:
Serial.println(buttonState);
delay(1); // delay entre leituras (em milissegundos)
}

103 multilogica-shop.com
Dicas

1 - O sistema binrio um sistema de numerao posicional em que todas as quantidades


se representam com base em dois nmeros, ou seja, zero e um (0 e 1). Os computadores
trabalham internamente com dois nveis de tenso, pelo que o seu sistema de numerao
natural o sistema binrio (aceso, apagado).

O sistema binrio base para a lgebra booleana que permite fazer operaes lgicas e
aritmticas usando-se apenas dois dgitos ou dois estados (sim e no, falso e verdadeiro, tudo
ou nada, 1 ou 0, ligado e desligado). Toda a eletrnica digital e computao est baseada
nesse sistema binrio e na lgica de Boole, que permite representar por circuitos eletrnicos
digitais (portas lgicas) os nmeros, caracteres, realizar operaes lgicas e aritmticas. Os
programas de computadores so codificados sob forma binria e armazenados nas mdias
(memrias, discos, etc) sob esse formato.

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.

/*
Contador de pulsos (edge detection)
criado em 27/09/2005, modificado em 30/08/2011 por Tom Igoe
Este exemplo e de dominio publico.
http://arduino.cc/en/Tutorial/ButtonStateChange
*/

// constantes nao sao alteradas:


const int buttonPin = 2; // o numero do pino do botao
const int ledPin = 13; // o numero do pino do LED

// variaveis que devem mudar:


int buttonPushCounter = 0; // contador para o numero de impressoes do botao
int buttonState = 0; // atual estado do botao
int lastButtonState = 0; // anterior estado do botao

void setup() {
pinMode(buttonPin, INPUT); // inicializa o pino do botao como entrada
pinMode(ledPin, OUTPUT); // inicializa o pino digital como saida
Serial.begin(9600); // inicializa a comunicacao serial
}

void loop() {
// faz a leitura do valor do botao:
buttonState = digitalRead(buttonPin);

105 multilogica-shop.com
// compara o estado atual do botao com seu estado anterior
if (buttonState != lastButtonState) {
// se o estado do botao foi alterado, incrementar o contador
if (buttonState == HIGH) {
buttonPushCounter++;
Serial.print("numero de pulsos: ");
Serial.println(buttonPushCounter);
}
}
// salva o estado atual do botao como ultimo estado para iniciar o
// 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 {
digitalWrite(ledPin, LOW);
}
}

Download do arquivo em formato .ino

106 multilogica-shop.com
9.4 Leitura Serial de uma Entrada Analgica

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.

O Que Vou Aprender?

- Controlar uma entrada analgica


- Ver dados pelo computador
- Mltiplos estados de um potencimetro
- Ler uma entrada analgica

Conhecimentos Prvios

- Sinal analgica
- Funo analogRead() e Serial.print

Cdigo Fonte

Download do arquivo em formato .ino

107 multilogica-shop.com
Materiais Necessrios

1 Resistor
1 Arduino Uno 1 LED 1 Potencimetro 1 Cabo USB AB
330

Jumpers 1 Protoboard

Diagrama

108 multilogica-shop.com
Cdigo Fonte

/*
Entrada Analogica, Saida Analogica, Saida serial

Le o pino de entrada analogica, mapeia o resultado para um intervalo entre 0


e 255 e usa o resultado para estabelecer o pulso PWM do pino de saida.
Tambem e possivel acompanhar o resultado atraves do Monitor Serial.

O circuito:
- O pino central do Potenciometro conectado ao pino analogico 0. Os pinos
lateriais do potenciometro conectados no terra e 5V.
- LED conectado no pino digital 9 e no terra.

Criado em 29/12/2008, Modificado em 09/04/2012 por Tom Igoe


Este exemplo e de dominio publico.
*/

// constantes nao sao alteradas:


const int analogInPin = A0; // Entrada analogica do potenciometro
const int analogOutPin = 9; // Saida analogica onde o LED esta conectado

int sensorValue = 0; // leitura do potenciometro


int outputValue = 0; // leitura da saida PWM (analogica)

void setup() {
// inicializa a comunicacao serial:
Serial.begin(9600);
}

void loop() {
// faz a leitura da entrada analogica:
sensorValue = analogRead(analogInPin);

109 multilogica-shop.com
// mapeia o resultado da entrada analogica dentro do intervalo de 0 a 255:
outputValue = map(sensorValue, 0, 1023, 0, 255);

// muda o valor da saida analogica:


analogWrite(analogOutPin, outputValue);

// imprime o resultado no monitor serial:


Serial.print("sensor = " );
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.println(outputValue);

// Aguarda 2 milissegundos antes do proximo loop:


delay(2);
}

110 multilogica-shop.com
Dicas

1 - Note que as entradas analgicas do Arduino tm uma resoluo de 10 bits (valores de


0 a 1023), mas as sadas analgicas por PWM tm uma resoluo de 8 bits (valores de 0 a
255). por isso que necessria a funo 'map', para "mapear" os valores de modo que se
mantenham proporcionais.

2 - Outros elementos que tambm so potencimetros:

Resistor sensvel a fora 0,5" Resistor sensvel a fora quadrado

111 multilogica-shop.com
9.5 Comando com Comunicao Serial

Atravs deste tutorial voc vai controlar o acionamento de um rel e de um LED desde o
Monitor Serial de seu computador.

O Que Vou Aprender?

- Executar um comando atravs da Comunicao Serial


- Controlar o acionamento de um rel e de um LED atravs do computador
- Varivel char

Conhecimentos Prvios

- Variveis booleanas
- Serial.print

Cdigo Fonte

Download do arquivo em formato .ino

112 multilogica-shop.com
Materiais Necessrios

1 Resistor
1 Arduino Uno 2 LEDs 1 Rel 1 Cabo USB AB
330

Jumpers 1 Protoboard

Diagrama

113 multilogica-shop.com
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; // inicializa uma variavel do tipo booleano

void setup() {
pinMode(rele,OUTPUT);
pinMode(led,OUTPUT);

Serial.begin(9600);
Serial.println();
Serial.print("**Codigo para acionar rele conectado ao pino 2 do Arduino ");
Serial.println("atraves do monitor serial**");
Serial.println("");
Serial.println("Pressione 1 e depois ENTER para inverter o estado do rele
novamente");
Serial.println("Aguardando comando :");
}
void loop() {
if (Serial.available() > 0) {
input= Serial.read();

114 multilogica-shop.com
if (input =='1'){
Serial.print("O rele agora esta ");

if(y){
digitalWrite(rele, HIGH);
digitalWrite(led, HIGH);
Serial.println("ligado");
}
else {
digitalWrite(rele, LOW);
digitalWrite(led, LOW);
Serial.println("desligado");
}
y=!y; // altera o valor de y, se le y e igual a nao y
}
else {
Serial.println("Comando invalido");
}
}
}

115 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.

O Que Vou Aprender?

- Acender e apagar um LED em fade


- Intensificar o conceito de PWM

Conhecimentos Prvios

- PWM
- Funo AnalogWrite()
- Polaridade de um LED
- Incrementar e manipular variveis

Cdigo Fonte

Download do arquivo em formato .ino

116 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 LED 1 Resistor 330 1 Cabo USB AB

Jumpers 1 Protoboard

Diagrama

117 multilogica-shop.com
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

Este exemplo mostra como executar um fade em um LED no pino 9 usando a


funcao analogWrite().
Este exemplo e de dominio publico
*/

int led = 9; // pino do LED


int brightness = 0; // intensidade do brilho do LED
int fadeAmount = 5; // em quantos pontos aplicar o fade no LED

void setup() {
// define o pino 9 como saida:
pinMode(led, OUTPUT);
}

// o loop roda em sequencia continuamente:


void loop() {
// define o brilho do pino 9:
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 ;
}
// aguarda 30 milissegundos para ver o efeito dimer:
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.

O Que Vou Aprender?

- funo for() loop


- digitalWrite()
- delay()

Cdigo Fonte

Download do arquivo em formato .ino

121 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 6 LEDs

1 Protoboard 6 Resistores 330

1 Cabo USB AB Jumpers

122 multilogica-shop.com
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

Demonstra o uso da funcao for() loop.


Acende varios LEDs em sequencia, e logo ao reves.

O circuito:
* LEDs entre os pinos 2 ao 7 e ao terra

Criado em 2006 por David A. Mellis


Modificado em 30 de Agosto de 2011 por Tom Igoe

Este codigo e de dominio publico.


http://www.arduino.cc/en/Tutorial/ForLoop
*/

int timer = 100; // Quanto maior o valor, mais lenta a sequencia de Leds.

void setup() {
// Use for loop para inicializar cada pino como saida:
for (int thisPin = 2; thisPin < 8; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}

124 multilogica-shop.com
void loop() {
// loop desde o pino mais baixo ate o mais alto:
for (int thisPin = 2; thisPin < 8; thisPin++) {
// liga este pino:
digitalWrite(thisPin, HIGH);
delay(timer);
// desliga este pino:
digitalWrite(thisPin, LOW);
}

// loop desde o pino mais alto ate o mais baixo:


for (int thisPin = 7; thisPin >= 2; thisPin--) {
// liga este pino:
digitalWrite(thisPin, HIGH);
delay(timer);
// desliga este pino:
digitalWrite(thisPin, LOW);
}
}

125 multilogica-shop.com
9.8 Sensor LDR

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.

O Que Vou Aprender?

- Leitura serial de um sensor analgico


- Utilizao de uma leitura analgica
- pino AREF do Arduino

Conhecimentos Prvios

- Funo digitalWrite()
- Condicional if/else

Cdigo Fonte

Download do arquivo em formato .ino

126 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 LDR 5 LEDs

1 Cabo USB AB 1 Potencimetro 5 Resistores 330

Jumpers 1 Protoboard

127 multilogica-shop.com
Diagrama

128 multilogica-shop.com
Cdigo Fonte

/*
Sensor LDR
Conectar um LDR a uma entrada analogica para controlar cinco saidas em
funcao da luz ambiente.
Este codigo e de dominio publico.
Criado em 27/11/2011 por Arduteka.
Modificado em 13/01/2014 por Multilogica-Shop.
*/

//Armazenar os dados recolhidos pelo sensor LDR:


int valorLDR = 0;

//Definir os pinos de entrada dos LEDs:


int pinLed1 = 12;
int pinLed2 = 11;
int pinLed3 = 10;
int pinLed4 = 9;
int pinLed5 = 8;

//Definir pino de entrada do sensor LDR


int pinLDR = 0;

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

//Definir os pinos de saida dos LEDs:


pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);

129 multilogica-shop.com
pinMode(pinLed4, OUTPUT);
pinMode(pinLed5, OUTPUT);

//Definimos o uso de uma referencia externa:


analogReference(EXTERNAL);

}
void loop()
{
//Guardar o valor da leitura de uma variavel:
valorLDR = analogRead(pinLDR);
Serial.println(valorLDR);

//Definicao do padrao de controle dos LEDs:


if(valorLDR >= 1023)
{
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
}
else if((valorLDR >= 823) & (valorLDR < 1023))
{
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
}

else if((valorLDR >= 623) & (valorLDR < 823))


{
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, LOW);

130 multilogica-shop.com
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
}
else if((valorLDR >= 423) & (valorLDR < 623))
{
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
digitalWrite(pinLed4, LOW);
digitalWrite(pinLed5, LOW);
}
else if((valorLDR >= 223) & (valorLDR < 423))
{
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);
digitalWrite(pinLed5, HIGH);
}
}

131 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.

O Que Vou Aprender?

- Leitura serial de um sensor analgico (Termistor)


- Utilizao de uma leitura analgica
- Varivel float

Conhecimentos Prvios

- Funo analogRead
- Serial.print

Cdigo Fonte

Download do arquivo em formato .ino

133 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 Termistor 1 Resistor 1K 1 Cabo USB AB

Jumpers 1 Protoboard

Diagrama

134 multilogica-shop.com
Cdigo Fonte

/* Codigo para leitura aproximada de temperatura


utilizando termistor de 1K do kit Multilogica
Note que nao e um termometro preciso, apenas um exemplo
aproximado baseado em dados empiricos.
Ligar resistor 1k de A0 para terra e termistor de +5V para A0 */

#define pino_termistor A0
void setup(void) {
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;
Serial.print("Temperatura aprox. Celsius = ");
Serial.println(leitura1);
Serial.println("");
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

Neste tutorial vamos controlar um motor de corrente contnua atravs do Arduino.


O acionamento do boto vai ligar nosso motor.

O Que Vou Aprender?

- Leitura digital de um boto


- Controlar um motor de corrente contnua com Arduino

Conhecimentos Prvios

- Funo digitalWrite()
- Funo digitalRead()
- Condicional if/else

Cdigo Fonte

Download do arquivo em formato .ino

137 multilogica-shop.com
Materiais Necessrios

1 Resistor 330
1 Arduino Uno 1 Motor CC 1 Cabo USB AB
1 Resistor 15

1 Boto

Jumpers 1 Protoboard

138 multilogica-shop.com
Diagrama

139 multilogica-shop.com
Cdigo Fonte

// Ligar motor no pino 2 em serie com um resistor de 15 ohms


// para limitar a corrente em 40mA para nao sobrecarregar o Arduino

//Este codigo e de dominio publico.


//Criado em 2014 por Multilogica-Shop.

const int motorPin = 2;


const int buttonPin = 7;
int buttonState = 0;

void setup() {
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
9.11 Display LCD

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.

O Que Vou Aprender?

- Conectar seu display LCD ao Arduino Uno


- Programar frases para aparecer no visor do LCD
- Ajustar o brilho do display com um potencimetro
- Conhecer as funes da biblioteca LiquidCrystal.h
- Usar as funes:
- lcd.print
- lcd.setCursor
- scrollDisplayLeft()
- scrollDisplayRight()

Cdigo Fonte

Download do arquivo em formato .ino

141 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 Display LCD 1 Potencimetro 1 Cabo USB AB

Jumpers 1 Protoboard

142 multilogica-shop.com
Diagrama

143 multilogica-shop.com
Cdigo Fonte

/*
Biblioteca LiquidCrystal codigo Multilogica
Demonstra o uso do display de 16x2 caracteres
Esta biblioteca funciona com todos displays compativeis com o
driver Hitachi HD44780.
Este codigo escreve :

Multilogica shop
(cc) 2014

Circuito :
* LCD pino RS no pino digital 12
* LCD pino Enable no pino digital 11
* LCD pino D4 pin no pino digital 5
* LCD pino D5 pin no pino digital 4
* LCD pino D6 pin no pino digital 3
* LCD pino D7 pin no pino digital 2
* LCD pino R/W no terra
* Trimpot de 10K :
* +5V no +5V
* Terra no terra
* wiper to LCD VO pin (pin 3)

Codigo de dominio publico baseado no tutorial original :


http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/

// Inclui o codigo da biblioteca:


#include <LiquidCrystal.h>

144 multilogica-shop.com
// Inicializa a biblioteca e define os pinos utilizados
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
// define o numero de colunas e linhas do display :
lcd.begin(16, 2);
// Envia a mensagem para o display.
lcd.print("Multilogica");
lcd.setCursor(0, 1); //Posiciona o cursor na primeira coluna(0) e na
segunda linha(1) do Display
lcd.print("shop");
}

void loop() {
}

145 multilogica-shop.com
Dicas

Se o seu projeto necessita mais espao para visualizar informaes ou um display de LCD
diferenciado, conhea estas outras opes:

Display LCD 2x40 - branco sobre azul

Display LCD 2x16 fundo RGB

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.

/*
LiquidCrystal Library - scrollDisplayLeft() and scrollDisplayRight()

Biblioteca LiquidCrystal codigo Multilogica


Demonstra o uso do display de 16x2 caracteres
Esta biblioteca funciona com todos displays compativeis com o
driver Hitachi HD44780

Este codigo escreve Multilogica Shop no LCD e usa


scrollDisplayLeft() e scrollDisplayRight() para passar o texto.

Circuito :
* LCD pino RS no pino digital 12
* LCD pino Enable no pino digital 11
* LCD pino D4 pin no pino digital 5
* LCD pino D5 pin no pino digital 4
* LCD pino D6 pin no pino digital 3
* LCD pino D7 pin no pino digital 2
* LCD pino R/W no terra
* Trimpot de 10K :
* +5V no +5V
* Terra no terra
* wiper to LCD VO pin (pin 3)

147 multilogica-shop.com
Library originally added 18 Apr 2008 by David A. Mellis
library modified 5 Jul 2009 by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009 by Tom Igoe
modified 22 Nov 2010 by Tom Igoe

Codigo de dominio publico baseado no tutorial original:


http://arduino.cc/en/Tutorial/LiquidCrystalScroll
*/

// Inclui o codigo da biblioteca:


#include <LiquidCrystal.h>

// Inicializa a biblioteca e define os pinos utilizados


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
// define o numero de colunas e linhas:
lcd.begin(16, 2);
// Envia a mensagem para o display.
lcd.print("Multilogica Shop");
delay(2000);
}

void loop() {
// caminha 16 posicoes para o texto sair do display a esquerda:
for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
// caminha uma posicao para a esquerda:
lcd.scrollDisplayLeft();
// Aguarda um instante:
delay(250);
}

// caminha 32 posicoes para o texto sair do display a direita:


for (int positionCounter = 0; positionCounter < 32; positionCounter++) {
// caminha uma posicao para a direita:
lcd.scrollDisplayRight();

148 multilogica-shop.com
// Aguarda um instante:
delay(250);
}

// caminha 16 posicoes para a esquerda para mover de novo ao centro:


for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
// caminha uma posicao para a esquerda:
lcd.scrollDisplayLeft();
// Aguarda um instante:
delay(250);
}

// delay no final do full loop:


delay(2000);

Download do arquivo em formato .ino

149 multilogica-shop.com
9.12 Digitando no Display LCD

Transmitir informaes ou comandos personalizados atravs do display de LCD pode ser til e
necessrio em vrios projetos ou atividades.
Neste tutorial voc poder controlar o texto que aparece no display atravs do Monitor Serial
da IDE do Arduino de modo rpido e divertido.

O Que Vou Aprender?

- Conectar seu display LCD ao Arduino Uno


- Personalizar frases para aparecer no visor do LCD
- Usar o Monitor Serial para introduzir textos

Cdigo Fonte

Download do arquivo em formato .ino

150 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 Display LCD 1 Potencimetro 1 Cabo USB AB

Jumpers 1 Protoboard

151 multilogica-shop.com
Diagrama

152 multilogica-shop.com
Cdigo Fonte

/*
Biblioteca LiquidCrystal codigo Multilogica
Demonstra o uso do display de 16x2 caracteres
Esta biblioteca funciona com todos displays
compativeis com o driver Hitachi HD44780.
Este codigo envia um texto digitado via USB para o display
Circuito :
* LCD pino RS no pino digital 12
* LCD pino R/W no pino 11
* LCD pino Enable no pino digital 10
* LCD pino D4 pin no pino digital 5
* LCD pino D5 pin no pino digital 4
* LCD pino D6 pin no pino digital 3
* LCD pino D7 pin no pino digital 2
* Trimpot de 10K :
* +5V no +5V
* Terra no terra
* wiper to LCD VO pin (pin 3)
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
void setup()
{
Serial.begin(9600);
lcd.begin(2, 20);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Multilogica");
lcd.setCursor(0,1);
lcd.print("shop");

153 multilogica-shop.com
}
void loop()
{
if (Serial.available())
{
//faz a leitura atraves do monitor serial//
char cr = Serial.read();
//determina um caracter para limpar a tela//
if (cr == '%')
{
lcd.clear();
}
//determina um caracter para pular para a linha de baixo//
else if (cr == '>')
{
lcd.setCursor(0,1);
}
else
{
// se o caracter digitado nao limpa e nem pula linha vai para o display//
// nao aceita acentuacao //
lcd.write(cr);
}
}
}

154 multilogica-shop.com
9.13 Piezo como sada analgica

Neste tutorial vamos usar um piezo como sada analgica. Usamos a possibilidade dos
processadores de produzir sinais PWM com o objetivo de tocar msicas ou emitir sons.

O Que Vou Aprender?

- Conectar seu piezo eltrico ao Arduino Uno.

Cdigo Fonte

Excepcionalmente para este tutorial disponibilizamos o cdigo fonte somente para


download, j que muito extenso.

Download do arquivo em formato .ino

155 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 Piezo eltrico 1 Cabo USB AB

Jumpers 1 Protoboard

Dica

Quer amplificar o som do piezo?


Coloque o verso do piezo (a parte toda dourada) no fundo de uma lata de refrigerante ou lata
de achocolatado e voc vai ouvir o som mais alto.
Use sua criatividade e teste que outros elementos podem amplificar o som do piezo.

156 multilogica-shop.com
Diagrama

157 multilogica-shop.com
9.14 Scroll Bar com Processing

Neste tutorial vamos utilizar a comunicao serial do Arduino para fazer a interao com um
programa em Processing rodando no computador.
Ver pgina sobre o Processing neste guia.

O Que Vou Aprender?

- A partir de uma interface grfica em Processing rodando no computador, realizar


interaes com o Arduino.

Requisitos Prvios

- Ter a verso mais recente do Processing instalada e rodando em seu computador.

Cdigo Fonte

Download do arquivo em formato .ino Download do arquivo em formato .pde

158 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 1 Cabo USB AB

5 Leds 5 resistores de 330

Jumpers 1 Protoboard

159 multilogica-shop.com
Diagrama

160 multilogica-shop.com
Cdigo Fonte .ino

- Para o funcionamento deste tutorial, ser necessrio primeiro fazer a montagem conforme a
imagem anterior.
- Fazer download dos arquivos .ino e .pde.
- Fazer upload do arquivo .ino para o Arduino atravs da IDE Arduino. Depois rodar o arquivo
.pde na interface do Processing no seu computador.
- Provavelmente voc dever ajustar a configurao da porta serial dentro do arquivo .pde
seguindo as instrues descritas nos comentrios do cdigo.
- Voc ver uma barra conforme a imagem abaixo. Esse um scroll que voc poder deslizar
para fazer acender ou apagar a linha de LEDs de seu projeto.

/*
Scroll Bar com Processing
*/
char val; // variavel para guardar o valor recebido pela interface
serial
char val_old; // variavel para guardar o valor anterior recebido pela
interface serial

// funcao setup roda apenas uma vez quando a execucao do programa se inicia
void setup() {
// inicializamos os pinos de 2 a 6 como saidas
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);

161 multilogica-shop.com
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);

// inicializamos a comunicacao serial com velocidade de 115200 bauds


Serial.begin(115200);
}

// a funcao loop e executada indefinidamente


void loop() {
if (Serial.available()) { //verifica se ha dados disponiveis para a leitura
val = Serial.read(); // le o dado e o armazena em val
}
if (val!=val_old){ // somente atua se houver variacao no valor de val
alloff(); // executa a funcao alloff que apaga todos os LEDs
for (int i=2; i<(int(val)+2); i++){
// faz com que o valor de i varie de 2 ate val+2
// note que val armazena um caractere e necessitamos
// da funcao int(val) para tranformar em um valor numerico
digitalWrite(i, HIGH); // acende o led no pino i
}
val_old=val; // guarda o valor de val em val_old
}
}

void alloff() { // funcao para apagar todos os LEDs


for(int i = 2; i < 7; i++){ // faz com que i varie de 2 a 6
digitalWrite(i, LOW); // apaga o led no pino i
}
}

162 multilogica-shop.com
9.15 Termostato

Neste tutorial vamos fazer a montagem de um termostato experimental simples com Arduino.
Esta montagem faz com que um rel e um LED liguem quando a temperatura baixe de um
valor mnimo estabelecido ou desligue quando ultrapassar uma temperatura mxima definida.
Note que a medio de temperatura emprica e no deve ser usada como instrumento
preciso.

O Que Vou Aprender?

- Usar seu Arduino para controlar dispositivos a partir da leitura da temperatura ambiente.
- Para este experimento voc pode variar a temperatura do sensor apenas segurando o
mesmo com a ponta dos dedos.
- Note que da mesma maneira que estamos utilizando um rel para acender um LED, voc
poderia acionar qualquer outro dispositivo (um motor, por exemplo), dentro da faixa de
potncia do rel.

Cdigo Fonte

Download do arquivo em formato .ino

163 multilogica-shop.com
Materiais Necessrios

1 Arduino Uno 2 Leds 1 resistor 330 +


1 resistor de 1k

1 rel 1 Termistor 1 Cabo USB AB

Jumpers 1 Protoboard

164 multilogica-shop.com
Diagrama

165 multilogica-shop.com
Cdigo Fonte

//Exemplo de termostato experimental simples com Arduino


//Esta montagem faz com que o rele e um Led
//liguem quando a temperatura abaixe de um minimo
//e desliguem quando ultrapasse um maximo
//A medicao de temperatura e uma aproximacao empirica
//Nao utilize como instrumento preciso e sim como um
//modelo didatico de termostato.

// rele ligado ao pino 2 digital


// Led ligado ao pino 13 digital
// divisor resistivo do termistor ligado ao pino A0 analogico

// declaracao de variaveis :
#define pino_termistor A0
int rele=2;
int led=13;
float leitura;
float leitura1;

// defino modo de atuacao :


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

166 multilogica-shop.com
// loop infinito :
void loop(void) {
leitura = analogRead(pino_termistor);
Serial.print("Leitura pino A0 = ");
Serial.println(leitura);
leitura1 = (leitura*0.2027)-85; // Calcula a temp. aproximada
if (leitura1 < 32) // define temperatura de acionamento
{
digitalWrite(rele,HIGH); // liga rele
digitalWrite(led,HIGH); // liga Led
}
if (leitura1 > 35) // define ponto de desligamento
{
digitalWrite(rele,LOW); // desliga rele
digitalWrite(led,LOW); // desliga Led
}
Serial.print("Temperatura aprox. Celsius = "); // envia e temp. para o
monitor serial
Serial.println(leitura1);
Serial.println("");
delay(2500);
}

167 multilogica-shop.com
Eletrnica para quem faz

Verso 2.0
Guia desenvolvido pela Equipe da Multilgica-Shop.
Baseado no Guia del Arduino criado pela Tienda de Robtica da Colombia.

www.multilogica-shop.com