Академический Документы
Профессиональный Документы
Культура Документы
Guia Arduino Iniciante Multilogica Shop PDF
Guia Arduino Iniciante Multilogica Shop PDF
MULTILGICA
SHOP
Open Source Hardware
www.multilogica-shop.com Verso 1.0
ndice
ndice 2
Prefcio 5
A Multilgica-Shop 6
O Que Vou Aprender? 7
Objetivo 7
Fonte de Informao 8
Segurana e Cuidados 9
1 Conceitos Bsicos 10
1.1 Computao Fsica 11
1.2 Open Source Hardware 12
1.3 Software Livre 13
1.4 Arduino 14
1.5 Processing 15
1.6 Fritzing 16
1.7 Creative Commons 17
1.8 Licena da Obra 18
2 Eletrnica 20
2.1 Conceito de Eletrnica 21
2.2 Voltagem 22
2.3 Corrente Eltrica 22
2.4 Corrente Contnua 23
2.5 Corrente Alternada 23
2.6 Resistncia 24
2.7 Lei de Ohm 24
2.8 Sistemas Eletrnicos 25
2.9 Entradas 25
2.10 Sadas 25
2 multilogica-shop.com
2.11 Processamento de Sinal 26
2.12 Resumo dos Sistemas Eletrnicos 26
2.13 Sinais Eletrnicos 27
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
3 multilogica-shop.com
4.3 Famlia Arduino 48
4.4 Shields para Arduino 49
4.5 Livros 50
5 Instalao de Software 51
5.1 Arduino em Windows 52
5.2 Arduino em Mac OS X 57
5.3 Arduino em Linux 63
6 Programao 64
6.1 Conceito de Programao 65
6.2 Linguagem de Programao 66
6.3 Linguagem de Mquina 67
6.4 Linguagem Assembly 67
6.5 Linguagem de Alto Nvel 68
6.6 Algoritmo 68
7 Programao Arduino 69
7.1 Software Arduino 70
7.2 Programando o Arduino 75
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
4 multilogica-shop.com
Prefcio
5 multilogica-shop.com
A Multilgica-Shop
MULTILGICA
SHOP
Open Source Hardware
6 multilogica-shop.com
Objetivo
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
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
12 multilogica-shop.com
1.3 Software Livre
13 multilogica-shop.com
1.4 Arduino
14 multilogica-shop.com
1.5 Processing
15 multilogica-shop.com
1.6 Fritzing
16 multilogica-shop.com
1.7 Creative Commons
17 multilogica-shop.com
1.8 Licena da Obra
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
21 multilogica-shop.com
2.2 Voltagem
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.
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
24 multilogica-shop.com
2.8 Sistemas Eletrnicos
25 multilogica-shop.com
2.11 Processamento de Sinal
26 multilogica-shop.com
2.13 Sinais Eletrnicos
Apagado Aceso
0 1
27 multilogica-shop.com
2.15 Varivel Analgica
28 multilogica-shop.com
2.16 Entrada/Sada Digital
29 multilogica-shop.com
2.18 Divisor de Voltagem
30 multilogica-shop.com
2.20 Modulao por Largura de Pulso PWM
31 multilogica-shop.com
3 Componentes Eletrnicos
32 multilogica-shop.com
3.1 Microcontrolador
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.
35 multilogica-shop.com
3.4 Termistor
Smbolo
3.5 Diodo
Smbolo
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
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
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
Smbolo
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
Smbolo
42 multilogica-shop.com
3.15 Transdutor Piezoeltrico
Smbolo
3.16 Motor CC
43 multilogica-shop.com
3.17 Rel
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.
46 multilogica-shop.com
4.2 Arduino Uno R3
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 Esplora
Arduino Mega ADK
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 Kit Motor Shield R3 Arduino WiFi 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 Arduino em Windows
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:
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 Arduino em Mac OS X
57 multilogica-shop.com
3 - Instale o Software
Se voc est usando uma placa Arduino Uno ou Mega 2560 no necessrio instalar nenhum
software. Caso voc esteja usando outra placa Arduino ou um modelo mais antigo talvez seja
necessrio instalar mais algum driver.
4 - Conectando o Arduino
O Arduino Uno isolado usa a energia do computador atravs da conexo USB, no sendo
necessria energia externa. Conecte a placa Arduino ao computador usando o cabo USB AB.
O LED verde de energia (PWR) deve acender.
Se voc est usando uma placa Arduino Uno ou Mega 2560 uma janela deve aparecer
informando que uma nova interface foi detectada. Clique em Preferncias de Sistema
e clique em aplicar. O Uno e o Mega 2560 vo aparecer como no configurados, mas
estaro funcionando corretamente. Feche as preferncias do sistema.
58 multilogica-shop.com
6 - Exemplo Piscar
Abra o exemplo Piscar (blink): Arquivo > Exemplos > 01.Basics > Blink
59 multilogica-shop.com
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).
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 Arduino em 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
64 multilogica-shop.com
6.1 Conceito de Programao
65 multilogica-shop.com
6.2 Linguagem de Programao
66 multilogica-shop.com
6.3 Linguagem de Mquina
67 multilogica-shop.com
6.5 Linguagem de Alto Nvel
6.6 Algoritmo
68 multilogica-shop.com
7 Programao Arduino
69 multilogica-shop.com
7.1 Software Arduino
Arduino
70 multilogica-shop.com
Espao de trabalho:
71 multilogica-shop.com
Sketches
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.
#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
CC www.arduino.cc
75 multilogica-shop.com
Estruturas
So duas funes principais que deve ter todo programa em Arduino.
A funo setup() chamada quando um programa comea a rodar. Use esta funo para
inicializar as sua variveis, os modos dos pinos, declarar o uso de livrarias, etc. Esta funo
ser executada apenas uma vez aps a placa Arduino ser ligada ou ressetada.
setup(){
}
Aps criar uma funo setup() que declara os valores iniciais, a funo loop() faz exatamente
o que seu nome sugere, entra em looping (executa sempre o mesmo bloco de cdigo),
permitindo ao seu programa fazer mudanas e responder. Use esta funo para controlar
ativamente a placa Arduino.
loop(){
}
76 multilogica-shop.com
Variveis
Variveis so expresses que voc pode usar em programas para armazenar valores como a
leitura de um sensor em um pino analgico. Aqui destacamos algumas:
- Variveis Booleanas
Variveis boolenas, assim chamadas em homenagem a George Boole, podem ter apenas dois
valores: verdadeiro (true) e falso (false).
boolean running = false;
- Int
Inteiro o principal tipo de dado para armazenamento numrico capaz de guardar nmeros
de 2 bytes. Isto abrange a faixa de -32.768 a 32.767 (valor mnimo de -2^15 e valor mximo
de (2^15) -1).
int ledPin = 13;
- Char
Um tipo de dado que ocupa 1 byte de memria e armazena o valor de um caractere ASCII.
Caracteres literais so escritos entre aspas.
char myChar = A;
77 multilogica-shop.com
Operadores booleanos
Estes operadores podem ser usados dentro da condio em uma sentena if.
- && (e lgico)
Verdadeiro apenas se os dois operandos forem verdadeiros, ou seja, a primeira condio e a
segunda forem verdadeiras. Exemplo:
if (digitalRead(2) == 1 && 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
}
if (x > 120)
digitalWrite(LEDpin, HIGH);
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)
- digitalRead()
L o valor de um pino digital especificado, HIGH ou LOW.
Sintaxe:
digitalRead(pin)
- digitalWrite()
Escreve um valor HIGH ou um LOW em um pino digital.
Sintaxe:
digitalWrite(pin, valor)
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)
- 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)
84 multilogica-shop.com
8 Kit Arduino Uno R3 - Iniciante
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
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.
Conhecimentos Prvios
- Sinal digital
- Funo digitalWrite()
- Polaridade de um LED (pgina 39)
- Conexo da placa Arduino com o computador
88 multilogica-shop.com
Materiais Necessrios
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.
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.
*/
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
2 - Os sinais digitais (Aceso e Apagado) esto presentes em muitos sensores. Conhea alguns
deles:
92 multilogica-shop.com
Exerccio 1
A partir do cdigo fonte apresentado neste tutorial, faa as modificaes necessrias para que
o LED fique:
Exerccio 2
A partir do mesmo cdigo fonte faa uma nova montagem deste tutorial e faa as
modificaes necessrias no cdigo fonte para que o LED seja colocado no Pino 5, e fique 2
segundos aceso e 1 segundo apagado.
Note que para qualquer pino que no seja o 13 necessrio colocar um resistor em srie com
o LED. Neste caso um resistor de 330 suficiente.
93 multilogica-shop.com
9.2 Boto
O boto um componente que conecta dois pontos do circuito quando est pressionado.
Neste exemplo quando o boto est pressionado o LED se acende.
- Cabear um circuito
- Condicional if/else
- Estado de um boto
- Ler uma entrada digital e escrever uma sada digital
Conhecimentos Prvios
- Sinal digital
- Funo digitalWrite() e digitalRead()
- Divisor de voltagem
- Condicional, operadores booleanos e de comparao
94 multilogica-shop.com
Materiais Necessrios
Jumpers 1 Protoboard
Diagrama
95 multilogica-shop.com
Cdigo Fonte
/*
Botao
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
*/
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:
98 multilogica-shop.com
Exerccio 1
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
Conhecimentos Prvios
- Sinal digital
- Funo digitalRead() e Serial.print
- Funo digitalWrite() e Operadores de comparao
100 multilogica-shop.com
Materiais Necessrios
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.
*/
void setup() {
// Inicializa a comunicacao serial a 9600 bits por segundo:
Serial.begin(9600);
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
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:
104 multilogica-shop.com
Exerccio 1
/*
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
*/
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;
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.
Conhecimentos Prvios
- Sinal analgica
- Funo analogRead() e Serial.print
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
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.
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);
110 multilogica-shop.com
Dicas
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.
Conhecimentos Prvios
- Variveis booleanas
- Serial.print
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.
Conhecimentos Prvios
- PWM
- Funo AnalogWrite()
- Polaridade de um LED
- Incrementar e manipular variveis
116 multilogica-shop.com
Materiais Necessrios
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.
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
void setup() {
// define o pino 9 como saida:
pinMode(led, OUTPUT);
}
119 multilogica-shop.com
Dicas
Micromotor metlico
Variar a velocidade do giro do motor.
Servomotor
Variar a posio do servo motor em graus.
120 multilogica-shop.com
9.7 Loop
Muitas vezes voc deseja repetir uma ao sobre uma srie de pinos e fazer alguma coisa
diferente para cada um. Neste caso o exemplo faz piscar 6 LEDs usando a funo for()
loop para fazer circular ida e volta entre os pinos 2 e 7. Os LEDs acendem e apagam em
sequncia, usando ambos as funes digitalWrite() e delay().
Podemos chamar este exemplo de "Super Mquina" lembrando a srie de televiso dos anos
80 em que o famoso ator David Hasselhoff dirigia seu Pontiac com inteligncia artificial. O
carro foi turbinado com vrios LEDs de vrios tamanhos possveis para reproduzir efeitos
brilhantes.
Consideramos que seria interessante usar esta metfora da "Super Mquina" com o objetivo
de aprender mais sobre programao sequencial e boas tcnicas de programao para as
informaes de E/S da placa.
121 multilogica-shop.com
Materiais Necessrios
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
O circuito:
* LEDs entre os pinos 2 ao 7 e ao terra
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);
}
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.
Conhecimentos Prvios
- Funo digitalWrite()
- Condicional if/else
126 multilogica-shop.com
Materiais Necessrios
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.
*/
void setup()
{
Serial.begin(9600);
129 multilogica-shop.com
pinMode(pinLed4, OUTPUT);
pinMode(pinLed5, OUTPUT);
}
void loop()
{
//Guardar o valor da leitura de uma variavel:
valorLDR = analogRead(pinLDR);
Serial.println(valorLDR);
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:
Este controle ser feito via potencimetro, onde poderemos calibrar o sistema atravs da luz
ambiente.
pinMode(EXTERNAL);
Com esta instruo estamos dizendo a nosso Arduino que no use a tenso de referncia
(+5V), mas sim a que vamos aplicar atravs do pino AREF.
132 multilogica-shop.com
9.9 Termistor
Neste tutorial vamos usar um Termistor (Temperature Dependent Resistor) para fazer uma
leitura da temperatura.
O resultado, em graus Celsius, veremos atravs do Monitor Serial da IDE do Arduino.
Conhecimentos Prvios
- Funo analogRead
- Serial.print
133 multilogica-shop.com
Materiais Necessrios
Jumpers 1 Protoboard
Diagrama
134 multilogica-shop.com
Cdigo Fonte
#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
136 multilogica-shop.com
9.10 Motor CC
Conhecimentos Prvios
- Funo digitalWrite()
- Funo digitalRead()
- Condicional if/else
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
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.
141 multilogica-shop.com
Materiais Necessrios
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)
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 shop");
lcd.setCursor(0, 1); //Posiciona o cursor na primeira coluna(0) e na
segunda linha(1) do Display
lcd.print(" (cc) 2014 ");
}
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:
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()
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
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);
}
148 multilogica-shop.com
// Aguarda um instante:
delay(250);
}
149 multilogica-shop.com
MULTILGICA
SHOP
Open Source Hardware
Verso 1.0
Guia desenvolvido pela Equipe da Multilgica-Shop.
Baseado no Guia del Arduino criado pela Tienda de Robtica da Colombia.
www.multilogica-shop.com