Você está na página 1de 25

Introduo ao Arduino

Grupo de Robtica
UFMS 2012

SUMRIO
1. Introduo ao Arduino ______________________________________ 3
1.1

Histria do Arduino _______________________________________ 3

1.2

O que um Arduino? _____________________________________ 3

1.3 Por que usar Arduino? ______________________________________ 4


2. Modelos de Arduino ________________________________________ 4
2.1 Arduino UNO ______________________________________________ 4
2.2

Arduino 2009 ____________________________________________ 5

2.3

Arduino Mega 2560 _______________________________________ 5

2.4

Arduino Nano ___________________________________________ 5

3. Arduino Mega ______________________________________________ 6


3.1 Definies: _______________________________________________ 6
3.2 Especificaes ____________________________________________ 7
3.3 Alimentao ______________________________________________ 7
3.4 Entrada e Sada ___________________________________________ 8
3.5 LED 13 __________________________________________________ 8
3.6 Memria _________________________________________________ 8
3.7 Caractersticas Fsicas do Arduino MEGA 2560 ___________________ 9
4. Descrio do funcionamento de uma Protoboard _______________ 10
5. Resistores _______________________________________________ 14
5.1

O que so resistores? ____________________________________ 14

5.2

Tipos de resistores ______________________________________ 14

5.3

Resistores em srie e em paralelo: __________________________ 16

5.4

Cdigos de cores _______________________________________ 16

6. Ambiente de Desenvolvimento Arduino _______________________ 18


7. Programando para o Arduino: Conceitos e Sintaxe da Linguagem de
Programao _____________________________________________ 20
7.1 Setup e Loop _____________________________________________ 20
7.2

HIGH e LOW ___________________________________________ 21

7.3

INPUT e OUTPUT _______________________________________ 21

7.4

Funes ______________________________________________ 22

7.4.1

Funes de Entrada e Sada Digital ______________________ 22

7.4.2

Funes de Entrada e Sada Analgica ___________________ 23

7.4.3

Tempo ____________________________________________ 24
2

1. Introduo ao Arduino
1.1 Histria do Arduino
O Arduino surgiu em 2005, na Itlia, com um professor chamado
Massimo Banzi, que queria ensinar eletrnica e programao de computadores
a seus alunos de design, para que eles usassem em seus projetos de arte,
interatividade e robtica. Porm, ensinar eletrnica e programao para
pessoas que no so da rea no era uma tarefa simples, e outra dificuldade
era a inexistncia de placas poderosas e baratas no mercado.
Foi pensando nisso que Massimo e David Cuartielles decidiram criar sua
placa prpria, com a ajuda do aluno de Massimo, David Mellis, que ficou
responsvel por criar a linguagem de programao do Arduino. Vrias pessoas
conseguiram utilizar o Arduino e fazer coisas incrveis, surgindo assim essa
febre mundial da eletrnica.
1.2 O que um Arduino?
Arduino uma placa de controle de entrada de dados (IN), como
sensores, e sada de dados (OUT), como motores e leds, com cristal oscilador
de 16 Mhz, um regulador de tenso de 5 V, boto de reset, plugue de
alimentao, pinos conectores, e alguns LEDs para facilitar a verificao do
funcionamento. A porta USB j fornece alimentao enquanto estiver
conectado ao computador, e a tenso de alimentao quando desconectado
pode variar de 7 V a 12 V, graas ao regulador presente na placa.
No Arduino, informaes ou ordens so transmitidas de um computador
para a placa atravs de Bluetooth, wireless, USB, infravermelho, etc. Essas
informaes devem ser traduzidas utilizando a linguagem Wiring baseada em
C/C++.

Figura 1. Caixa do arduino

1.3 Por que usar Arduino?

Baixo custo - Uma pessoa pode comprar um Arduino pagando


em torno de R$ 50,00.

Software para vrias plataformas - Microsoft Windows, Mac OS X


e Linux.

Linguagem simples - Os desenvolvedores do Arduino tentam


manter sua linguagem fcil de usar para iniciantes, mas flexvel o
bastante para usurios avanados.

Software livre - O Arduino completamente um software livre. Se


quiser construir seu prprio software ou modificar um, voc livre
para isso. Alm disso, o Web site oficial do Arduino contm um
wiki extensivo no qual amostras de cdigo e exemplos so
compartilhados livremente.

Existe uma comunidade ativa para usurios, por isso, existe uma
quantidade enorme pessoas que podem te ajudar.

2. Modelos de Arduino
2.1 Arduino UNO

Figura 2. Arduino UNO

uma placa com micro controlador Atmega328. Possui 14 entradas/sadas


digitais, 6 entradas analgicas, um cristal oscilador de 16MHz, conexo USB,
uma entrada para fonte, soquetes para ICSP, e um boto de reset. A placa
contm todo o necessrio para usar o micro controlador. Simplesmente
conecte-a a um computador com o cabo USB ou ligue a placa com uma fonte
4

AC-DC (ou bateria). O Uno seleciona automaticamente a fonte de alimentao


(USB ou fonte externa).

2.2 Arduino 2009

Figura 3. Arduino 2009

Praticamente igual ao Arduino Uno.


2.3 Arduino Mega 2560

Figura 4. Arduino Mega

Possui uma considervel quantidade de portas, o que viabiliza a


implementao de projetos mais complexos garantindo a eficincia e o baixo
custo.

2.4 Arduino Nano

Figura 5. Arduino Nano

O Arduino Nano uma pequena verso de Arduino parecida com o


Arduino UNO, pois tambm possui um chip ATMega328, na verso SMD.
Possui um conector para cabos Mini-USB para gravao. Uma das diferenas
entre esta placa e a Arduino UNO ou Arduino 2009, que esta placa possui 2
entradas analgicas a mais e um jumper de +5V AREF. Esta placa no possui
um conector para fonte externa, mas possvel aliment-la pelo pino Vin. O
Arduino Nano automaticamente seleciona a maior alimentao fornecida.

3. Arduino Mega
O Arduino Mega 2560 uma placa de micro controlador baseada no
ATmega2560 (datasheet). Ele possui 54 pinos de entradas/sadas digitais, 16
entradas analgicas, 4 UARTs (portas seriais de hardware), um oscilador de
cristal de 16 MHz, uma conexo USB, uma entrada de alimentao, uma
conexo ICSP e um boto de reset. Ele contm tudo o que necessrio para
dar suporte ao micro controlador; basta conectar a um computador com um
cabo USB ou a uma fonte de alimentao e j est pronto para comear. O
mega compatvel com a maioria dos shields desenhados para os Arduino
Uno, Duemilanove e para o Diecimila. Possui ainda o dobro de memria do
antigo Arduino Mega.

3.1 Definies:
Memria flash : capaz de preservar os dados armazenados por
um longo tempo sem a presena de corrente eltrica.
EEPROM : memria no voltil, pode ser programada e apagada
vrias vezes, eletricamente.
SRAM: memria de acesso aleatrio que mantm os dados
armazenados desde que seja mantida sua alimentao eltrica
Micro controlador: um computador-num-chip, contendo um
processador, memria e perifricos de entrada/sada. um micro
processador que pode ser programado para funes especficas, em
contraste com outros micro processadores de propsito gerais (como
os utilizados nos PCs). Eles so embarcados no interior de algum
6

outro dispositivo (geralmente um produto comercializado) para que


possam controlar as funes ou aes do produto. Outro nome para
o micro controlador, portanto, controlador embutido.
Shields: so placas de circuito impresso com uma funo especfica.

3.2 Especificaes
Micro controlador

ATmega2560

Tenso de operao

5V

Tenso de entrada
(recomendada)

7-12V

Tenso de entrada (limites)

6-20V

Pinos de entrada e sada (I/O)


digitais

54
(dos quais 14 podem ser sadas PWM)

Pinos de entradas analgicas

16

Corrente DC por pino I/O

40mA

Corrente DC para pino de 3,3V

50mA

Memria Flash

256KB (dos quais 8KB so usados para o


bootloader)

SRAM

8KB

EEPROM

4KB

Velocidade de Clock

16MHz

Tabela 1: Caractersticas da placa Arduino MEGA 2560

3.3 Alimentao
O Arduino Mega2560 pode ser alimentado pela conexo USB ou com
uma fonte externa. A entrada de alimentao selecionada automaticamente.
Alimentao externa (no USB) pode ser tanto de uma fonte como de baterias.
A fonte pode ser conectada plugando um conector de 2,1mm, positivo no
centro, na entrada de alimentao. Cabos vindos de uma bateria podem ser

inseridos nos pinos terra (Gnd) e entrada de voltagem (Vin) do conector de


energia.
A placa pode operar com alimentao externa entre 6 e 20 volts. No
entanto, se menos de 7 volts forem fornecidos o pino de 5V pode fornecer
menos de 5 volts e a placa pode ficar instvel. Com mais de 12V o regulador
de voltagem pode superaquecer e danificar a placa. A faixa recomendvel de
7 a 12 volts.
Os pinos de alimentao so os seguintes:
VIN. Relacionado entrada de voltagem da placa Arduino quando se
est usando alimentao externa (em oposio aos 5 volts fornecidos pela
conexo USB ou outra fonte de alimentao regulada). possvel fornecer
alimentao atravs deste pino ou acess-la se estiver alimentando pelo
conector de alimentao.
5V. Fornecimento de alimentao regulada para o micro controlador e
outros componentes da placa.
3V3. Uma alimentao de 3,3 volts gerada pelo chip FTDI. A corrente
mxima de 50 mA.
GND. Pinos terra.

3.4 Entrada e Sada

Cada um dos 54 pinos digitais do Mega2560 pode ser usado como


entrada ou sada. Eles operam a 5 volts. Cada pino pode fornecer ou receber
um mximo de 40 mA e possui um resistor interno de 20-50 K.

3.5 LED 13
H um LED conectado ao pino digital 13. Quando o pino est em HIGH o
led se acende.

3.6 Memria

O Atmega2560 tem 256 KB de memria flash para armazenamento de


cdigo(dos quais 8KB so usados pelo bootloader), 8 KB de SRAM e 4 KB de
EEPROM.
8

3.7 Caractersticas Fsicas do Arduino MEGA 2560


Na figura 6 est representada a localizao dos pinos de Entrada/Sada
Digital, as entradas analgicas, as portas de alimentao, entradas de
comunicao serial, entre outros.

Figura 6. Caracterizao do Arduino Mega

4. Descrio do funcionamento de uma Protoboard


A protoboard (ou breadboard) uma base de construo de prottipos
eletrnicos. Ela muito utilizada, pois no requer solda, ou seja, reutilizvel.
Isto torna mais fcil de usar para criao de prottipos temporrios. A utilizao
de uma protoboard em montagem com projetos de Arduino torna possvel a
construo de circuitos mais complexos.
A ligao de circuitos feita atravs de jumpers (basicamente pequenos
fios), que so utilizados para ligar temporariamente componentes eletrnicos
na protoboard. A faixa central tem o tamanho especifico para componentes
eletrnicos pequenos. Normalmente, uma protoboard possui quatro matrizes,
mas este nmero pode variar.

Figura 7. Exemplo de uma protoboard

10

Nos exemplos de protoboard j com circuito (figuras 8 e 9), pode-se


notar que o encaixe dos circuitos torna-se bastante complexo com acrscimo
de muitos jumpers (fios) e circuitos.

Figura 8. Circuito simples poucos jumpers

Figura 9. Circuito complexo muitos jumpers

11

Figura 10. Protoboard diviso por matrizes

A protoboard composta de dois tipos de matrizes principais: uma com


duas colunas, chamada de matriz 2 e outra com cinco colunas, chamada de
matriz 5. Elas se diferem no modo de transmisso de energia e dados.
A matriz 2 geralmente usada para ligao inicial de energia, e a 5
usada na utilizao de componentes no circuito.A matriz de 2 tem sua
transmisso de coluna em coluna, enquanto a matriz 5 tem a transmisso de
linha em linha.

Figura 11. Protoboard transmisso nas matrizes

12

Um exemplo de energizao da protoboard, na figura 12 a cor vermelha


corresponde a parte energizada da protoboard e a parte azul so jumpers
(fios). Como se pode ver, a matriz 2 esquerda tem ligao com a fonte de
energia. Toda essa coluna que est interligada na fonte por um jumper est
energizada, caracterstica da matriz 2. Ao colocarmos um jumper dessa matriz
2 interligando-a com a linha cinco da matriz esquerda de cinco colunas,
energizamos esta linha. Ao colocarmos um jumper da linha cinco da matriz
esquerda de cinco colunas para a linha cindo da matriz direita de cinco
colunas, tambm energizamos essa linha. E assim por diante.

Fonte de energia

Saida

Figura 12. Exemplo do funcionamento das matrizes em uma protoboard

13

5. Resistores
5.1 O que so resistores?
So elementos que apresentam resistncia passagem de corrente
eltrica, quanto maior a sua resistncia, menor a corrente eltrica que passa
num condutor. Os resistores possuem um formato cilndrico e faixas coloridas
que definem o seu valor em Ohms. Servem para opor-se a passagem de
corrente, ficando assim certa tenso retida no mesmo.
Um resistor ideal um componente com uma resistncia eltrica que
permanece constante independentemente da tenso ou corrente eltrica que
circular pelo dispositivo.
O valor de um resistor pode ser facilmente identificado analisando as
cores que apresenta em torno dele ou ento usando um ohmmetro
(instrumento de medio de resistores).
O material do resistor uma pelcula fina de carbono (filme), depositada
sobre um pequeno tubo de cermica. O filme resistivo enrolado em hlice por
fora do tubinho at que a resistncia entre os dois extremos fique to prxima
quanto possvel do valor que se deseja. So acrescentados terminais (um em
forma de tampa e outro em forma de fio) em cada extremo. Em seguida o
resistor recoberto com uma camada isolante, e no fim suas faixas coloridas
transversais so pintadas para indicar o valor da sua resistncia.

Figura 13. O resistor internamente

5.2 Tipos de resistores


Os resistores podem ser de resistncia fixa ou varivel.
Resistor fixo: um resistor que possibilita um nico valor de resistncia.
Resistor varivel: Seus valores podem ser ajustados por um movimento
mecnico, ou seja, rodando manualmente.

14

O reostato um resistor varivel com dois terminais, sendo um fixo e o


outro deslizante. Geralmente so utilizados com altas correntes.

Figura 14. Reostato

O potencimetro um tipo de resistor varivel comum, sendo


comumente utilizado para controlar o volume em amplificadores de udio.
Geralmente, um resistor de trs terminais onde a conexo central
deslizante e manipulvel. Se todos os trs terminais so usados, ele atua como
um divisor de tenso.

Figura 15. Potencimetro

Varistor um tipo especial de resistor que tem dois valores de


resistncia muito diferentes, um valor muito alto em baixas voltagens. usado
geralmente para proteo contra curtos-circuitos em extenses ou para-raios
usados nos postes de ruas, ou como "trava" em circuitos eletromotores. No
caso de picos de tenso de maior durao, a alta corrente que circula pelo
componente faz com que o dispositivo de proteo, disjuntor ou fusvel,
desarme, desconectando o circuito da fonte de alimentao.

15

Figura 16. Metal Oxido Varistor 385 volt

5.3 Resistores em srie e em paralelo


Em um circuito srie constatam-se as seguintes propriedades:
A corrente que passa por todos os componentes a mesma;
A soma das tenses sobre todos os componentes deve ser igual
tenso total aplicada;
A resistncia total da associao em serie igual soma das
resistncias dos componentes individuais.
Em um circuito paralelo constatam-se as seguintes propriedades:
Todos os componentes suportam a mesma tenso eltrica;
A soma de todas correntes nos componentes individuais deve ser
igual corrente total;
A resistncia total da associao calculada pelo quociente entre o
produto das resistncias individuais e a soma delas (CUIDADO: isso
vale s para 2 resistores em paralelo)

5.4 Cdigos de cores


Por ter um 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.
As primeiras trs faixas servem para indicar o valor nominal de sua
resistncia e a ltima faixa, a porcentagem na qual a resistncia pode variar
seu valor nominal (tolerncia).
Para encontrar a resistncia de um resistor e sua tolerncia, usa-se a
equao e a tabela abaixo:
Restistncia = (10*faixa 1 + faixa 2) * 10^(faixa 3) % de tolerncia
16

Obs. 1: Na faixa 3, so permitidos valores somente at 7, o dourado


passa a valer -1 e o prateado -2.
Obs. 2: A ausncia de uma quarta faixa, indica uma tolerncia de 20%.

Tabela 2. Cores e valores das faixas de resistores

Alguns websites disponibilizam uma pgina que podemos inserir as


cores de um resistor (em sua devida ordem) e ele nos mostra qual a resistncia
imposta por ele.

Figura 17. Pgina da web <http://www.areaseg.com/sinais/resistores.html>

17

6. Ambiente de Desenvolvimento Arduino


O ambiente de desenvolvimento Arduino contm um editor de texto para
a escrita de cdigo, uma rea de mensagens, um console de texto, uma barra
de ferramentas com botes para variadas funes, e uma srie de menus. Ele
se conecta ao hardware do Arduino, permitindo o upload de programas e a
comunicao com eles.
Os programas escritos usando Arduino so chamados sketches. Essas
sketches so escritas no editor de texto, e so salvas com a extenso de
arquivo.ino. Elas permitem funcionalidades como recortar/colar e
procurar/substituir texto. Na rea de mensagem, temos retorno de aes como
salvar e exportar, alm da exibio de erros. O console mostra a sada de texto
do Arduino, incluindo mensagens de erro completas e outras informaes. O
canto inferior direito mostra a board atual e a portal serial. Os botes da barra
de ferramentas permitem que voc verifique e faa upload de programas, crie,
abra e salve sketches, e abra o monitor serial.

Figura 18: Ambiente de desenvolvimento (IDE) do Arduino.

18

Principais comandos disponveis atravs dos botes:

(a) Verify: Verifica se o cdigo contm erros.

(b) Upload: Compila o cdigo a faz o upload para o Arduino.

(c) New: Cria uma nova sketch.

(d) Open: Exibe um menu com todas as sketches no seu sketchbook. Ao clicar em uma, a
mesma ser aberta na janela atual.

(e) Save: Salva sua sketch.

(f) Serial Monitor: Abre o monitor serial.

Comandos adicionais so encontrados atravs dos menus: File, Edit,


Sketch, Tools, Help. As funes disponveis pelos menus File, Edit e Help so
semelhantes a outros programas bem conhecidos e, por isso, no iremos
detalh-las aqui.
menu Sketch

Verify/Compile - Verica se seu cdigo tem erros


Import Library - Adiciona bibliotecas ao seu programa
Show sketchfolder - Abre a pasta onde o programa est salvo
Add File... - Adiciona um arquivo fonte ao programa. O novo arquivo
aparece em uma nova aba

menu Tools

Auto format - Formata o cdigo para uma melhor leitura, alinhando


as chaves e indentando seu contedo.
Board - Seleciona o kit de desenvolvimento onde se deseja realizar o
projeto.
Serial Port - Mostra todas as portas seriais que o computador
possui.
Burn Bootloader - Permite gravar um bootloader no kit de
desenvolvimento do Arduino.
19

7. Programando para o Arduino: Conceitos e Sintaxe da


Linguagem de Programao
A plataforma de implementao dos programas em Arduino baseada
nas linguagens C/C++, preservando sua sintaxe na declarao de variveis, na
utilizao de operadores, na manipulao de vetores, na conservao de
estruturas, bem como uma linguagem sensvel ao caso (case-sensitive)
Contudo, ao invs de uma funo main( ), o Arduino necessita de duas funes
elementares: setup( ) e loop( ).

7.1 Setup e Loop


Pode-se dizer que todo cdigo criado para o Arduino deve
obrigatoriamente possuir duas funes para que o programa funcione
corretamente: a funo setup( ) e a funo loop( ). Essas duas funes no
utilizam parmetros de entrada e so declaradas como void. No necessrio
invocar a funo setup() ou a funo loop(). Ao compilar um programa para o
Arduino, o compilador ir, automaticamente, inserir uma funo main que
invocar ambas as funes.
setup( )
A funo setup utilizada para inicializar variveis, configurar o modo
dos pinos e incluir bibliotecas. Esta funo executada automaticamente uma
nica vez, assim que o kit Arduino ligado ou resetado.
Sintaxe:
void setup()
{
.
:
}

loop( )
A funo loop faz exatamente o que seu nome sugere: entra em looping
(executa sempre o mesmo bloco de cdigo), permitindo ao seu programa
executar as operaes que esto dentro desta funo. A funo loop( ) deve
ser declarada aps a funo setup( )
Sintaxe:
void loop()
{
.
:
}

20

7.2 HIGH e LOW


Quando estamos lendo ou escrevendo em um pino digital h apenas
dois valores que um pino pode ter: HIGH (alto) e LOW (baixo).

HIGH O significado de HIGH (em referncia a um pino) pode variar


um pouco dependendo se este pino uma entrada (INPUT) ou sada
(OUTPUT). Quando um pino configurado como INPUT com a
funo pinMode, e lido com a funo digitalRead, o micro controlador
considera como HIGH se a voltagem for de 3 Volts ou mais. Um pino
tambm pode ser configurado como um INPUT com o pinMode, e
posteriormente receber um HIGH com um digitalWrite, isto vai
levantar o resistor interno de 20 KOhms que vai manter a leitura do
pino como HIGH a no ser que ela seja alterada para LOW por um
circuito externo. Quando um pino configurado como OUTPUT com
o pinMode, e marcado como HIGH com o digitalWrite, ele est a 5
Volts. Neste estado ele pode enviar corrente para, por exemplo,
acender um LED que est conectado com um resistor em srie ao
terra, ou a outro pino configurado como OUTPUT e marcado como
LOW.

LOW O significado de LOW tambm pode variar dependendo do pino


ser marcado como INPUT ou OUTPUT. Quando um pino
configurado como INPUT com a funo pinMode, e lido com a funo
digitalRead, o micro controlador considera como LOW se a voltagem
for de 2 Volts ou menos. Quando um pino configurado como
OUTPUT com a funo pinMode, e marcado como LOW com a
funo digitalWrite, ele est a 0 Volts. Neste estado ele pode drenar
corrente para, por exemplo, acender um LED que est conectado
com um resistor em srie ao +5 Volts, ou a outro pino configurado
como OUTPUT e marcado como HIGH.

7.3 INPUT e OUTPUT


Pinos digitais podem ser tanto de INPUT como de OUTPUT. Mudar um
pino de INPUT para OUTPUT com pinMode() muda drasticamente o seu
comportamento eltrico.

INPUT Os pinos do Arduino (Atmega) configurados como INPUT com


a funo pinMode() esto em um estado de alta impedncia. Pinos
de entrada so vlidos para ler um sensor, mas no para energizar
um LED.

OUTPUT Pinos configurados como OUTPUT com a funo


pinMode() esto em um estado de baixa impedncia. Isto significa
que eles podem fornecer grandes quantidades de corrente para
outros circuitos. Os pinos do Atmega podem fornecer corrente
positiva ou drenar corrente negativa at 40 mA (milliamperes)
21

de/para outros dispositivos ou circuitos. Isto faz com que eles sejam
teis para energizar um LED mas disfuncionais para a leitura de
sensores. Pinos configurados como OUTPUT tambm podem ser
danificados ou destrudos por curto-circuitos com o terra ou com
outros pontos de 5 Volts. A quantidade de corrente fornecida por um
pino do Atmega tambm no suficiente para ativar muitos rels e
motores e, neste caso, algum circuito de interface ser necessrio.

7.4 Funes
7.4.1 Funes de Entrada e Sada Digital
pinMode( ) Configura o pino especificado para que se comporte ou como uma
entrada ou uma sada. Deve-se informar o nmero do pino que se deseja
configurar e em seguida, se o pino ser determinado como uma
entrada(INPUT) ou uma sada(OUTPUT).
Sintaxe:
pinMode(pino, modo);
digitalWrite( ) Escreve um valor HIGH ou LOW em um pino digital. Se o pino
foi configurado como uma sada, sua voltagem ser determinada ao valor
correspondente: 5V para HIGH e 0V para LOW. Se o pino est configurado
como uma entrada, HIGH levantar o resistor interno de 20KOhms e LOW
rebaixar o resistor.
Sintaxe:
digitalWrite(pino, valor);
digitalRead( ) L o valor de um pino digital especificado e retorna um valor
HIGH ou LOW.
Sintaxe:
Int digitalRead(pino);
/* Exemplo de funo sobre de Entrada e Sada Digital */
int ledPin = 13; // LED conectado ao pino digital 13
int bot = 7; // boto conectado ao pino digital 7
int val = 0; // varivel para armazenar o valor lido
void setup()
{
pinMode(ledPin, OUTPUT); // seta o pino digital 13 como uma sada
pinMode(bot, INPUT); // seta o pino digital 7 como uma entrada
}
void loop()
{
val = digitalRead(bot); // l o pino de entrada
digitalWrite(ledPin, val); // acende o LED de acordo com o boto
22

Essa funo transfere para o pino 13, o valor lido no pino 7 que uma entrada.
7.4.2 Funes de Entrada e Sada Analgica
analogWrite( ) - PWM Pulse Width Modulation ou Modulao por Largura de
Pulso (MLP) um mtodo para obter resultados analgicos com meios digitais.
Essa funo basicamente escreve um sinal analgico. Ela pode ser usada para
acender um LED variando o seu brilho, ou girar um motor com velocidade
varivel. Depois de realizar um analogWrite( ), o pino gera uma onda quadrada
estvel com o ciclo de rendimento especificado at que um analogWrite( ), um
digitalRead( ) ou um digitalWrite( ) seja usado no mesmo pino. Em kits Arduino
com o chip ATmega168, esta funo est disponvel nos pinos 3,5,6,9,10 e 11.
Kits Arduino mais antigos com um ATmega8 suportam o analogWrite( ) apenas
nos pinos 9,10 e 11. As sadas PWM geradas pelos pinos 5 e 6 tero
rendimento de ciclo acima do esperado. Isto se deve s interaes com as
funes millis( ) e delay( ), que compartilham o mesmo temporizador interno
usado para gerar as sadas PWM. Para usar esta funo deve-se informar o
pino ao qual deseja escrever e em seguida informar um valor entre 0 (pino
sempre desligado) e 255 (pino sempre ligado).
Sintaxe:
analogWrite(pino, valor);
analogRead( ) L o valor de um pino analgico especificado. O kit 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:
int analogRead(pino);
/* Exemplo de funo sobre Entrada e Sada Analgica */
int ledPin = 9; // LED conectado ao pino digital 9
int analogPin = 3; // potencimetro conectado ao pino analgico 3
int val = 0; // varivel para armazenar o valor lido
void setup()
{
pinMode(ledPin, OUTPUT); // pr-determina o pino como sada
}
void loop()
{
val = analogRead(analogPin); // l o pino de entrada
analogWrite(ledPin, val/4); //
}

Torna o brilho de um LED proporcional ao valor lido em um potencimetro.

23

7.4.3 Tempo
millis( ) Retorna o nmero de milisegundos desde que o kit Arduino comeou a
executar o programa. Este nmero extrapolar (voltar a zero) depois de
aproximadamente 50 dias.
Sintaxe:
unsigned long tempo;
void loop
{
.
:
tempo = millis()
}
delay( ) Suspende a execuo do programa pelo tempo (em milisegundos)
especificado. Em um segundo h 1.000 milisegundos.
Sintaxe:
delay(tempo);

7.4.4 Comunicao serial


Serial.begin( ) Ajusta o taxa de transferncia em bits por segundo para uma
transmisso de dados pelo padro serial. Para comunicao com um
computador use uma destas taxas: 300, 1200, 2400, 4800, 9600, 14400,
19200, 28800, 57600, 115200. Pode-se, entretanto, especificar outras
velocidades por exemplo, para comunicao atravs dos pinos 0 e 1 com um
componente que requer uma taxa especfica.
Sintaxe:
Serial.begin(taxa);
/* Este programa mostra uma aplicao das funes millis( ) e delay( ) e
Comunicao Serial */
unsigned long time;
void setup()
{
Int Time = 0;
// varivel
Serial.begin(9600); // ajusta a taxa de transferncia
}
void loop()
{
Serial.print("O tempo eh: "); //imprime O tempo eh: na tela
Time = millis(); // varivel Time guarda o valor retornado por millis()
Serial.println(time); //imprime o tempo desde que o programa
comeou
delay(1000); // espera 1 segundo
}
24

REFERNCIAS BIBLIOGRFICAS
Ambiente de Desenvolvimento Arduino
Descrio do Funcionamento de uma Protoboard
Programando para o Arduino: Conceitos e Sintaxe da Linguagem de
Programao

http://lscad.facom.ufms.br/wiki/index.php/Downloads
http://arduino.cc/
http://en.wikipedia.org/wiki/Breadboard

Responsveis: Riccieli Minakawa, Luiz Eduardo Tiosso, Wellington Oliveira


dos Santos, Lucas Tsutsui da Silva
Introduo
Modelos de Arduino
Resistores
http://www.sabereletronica.com.br/secoes/leitura/1307
http://arduino.cc/en/Guide/Environment
http://www.garotascpbr.com.br/2011/10/04/introducao-ao-arduinoprimeira-parte/
http://projeto39.wordpress.com/o-arduino/
http://www.arduino.cc/
http://pt.wikipedia.org/wiki/Arduino
http://www.labdegaragem.com.br/wiki/index.php?title=Qual_Arduino_%C3
%A9_o_certo_para_mim%3F
http://4.bp.blogspot.com/_pGsJFsc5Buc/TNePByaIHGI/AAAAAAAAA1w/q2Dt
WB-DynU/s1600/Arduino+Uno+Unboxing.JPG
https://sites.google.com/site/marceloboeirajr/tutoriais/eletronicasenai/arduino/hardware/1-3-tipos-de-arduino
http://www.electronica-pt.com/
http://leandrocodorna.vilabol.uol.com.br/segunda.html
http://pt.wikipedia.org/wiki/Resistor
http://www.feiradeciencias.com.br/
http://www.sabereletronica.com.br/
http://brasilrobotics.blogspot.com.br/2011/02/pisca-led-o-primeiroexemplo-para.html

Responsveis: Jefferson Rios, Rodrigo Santiago, Angelo Maggioni e Paulo


Tiene
Arduino Mega

http://lscad.facom.ufms.br/wiki/index.php/Downloads
Responsveis: Lucas Rodrigues, Eliseu Sartori, Bruno Gouveia

25

Você também pode gostar