Sunteți pe pagina 1din 16

1.1.

Arduino
1.1.1. Introduo
O uso de microcontroladores programveis Arduino oferece um nmero
considervel de benefcios para a utilizao na indstria. Os controladores
ocupam um menor espao fsico em relao a outros dispositivos, requerem
menor potncia eltrica, podem ser reutilizados e reprogramados em caso de
alterao nos requisitos, so mais confiveis e tm manuteno mais fcil,
alm de maior flexibilidade, podendo ser usado em mais aplicaes e ser de
baixo custo. Tambm permitem interface para rede de comunicao com
outros controladores e com computadores e so mais rpidos de serem
projetados, por causa, principalmente, pela facilidade de aprendizado.
O Arduino baseia-se em software e hardware flexveis. Por isso, devemos
sempre ter em mente que a palavra Arduino se refere no somente a um
microcontrolador, mas tambm ao software que permite a comunicao com a
placa, toda a documentao sobre a mesma, os tutoriais que explicam/ensinam
como us-la e a comunidade que colabora com o desenvolvimento tanto da
plataforma quanto dos usurios.
Para fins didticos, iremos separar o conceito Arduino nos 6 (seis)
conceitos abordados nesse documento:
Arduino: todos os conceitos abaixo listados, alm da documentao
e dos tutoriais citados acima;
Linguagem Arduino: linguagem utilizada no software;
Microcontrolador Arduino: placa que contm o microprocessador.
Podendo ser referenciado tambm como Arduino UNO ou Arduino
MEGA, indicando a configurao do microcontrolador;
Arduino IDE: software que fornece a interface com o usurio e
permite a comunicao com a placa Arduino;
Plataforma Arduino: Envolve tando a placa quanto a IDE Arduino;
Comunidade Arduino: conjunto de pessoas envolvidas no
desenvolvimento, suporte e distribuio do Arduino.
Os projetos em Arduino podem ser independentes ou ainda podem se
comunicar com algum software que esteja em andamento no computador,
feitos manualmente ou comprados na loja Arduino e o software pode ser
baixado gratuitamente do site www.arduino.cc.
Sua poltica de uso baseada no conceito de comunidade e na ajuda
mtua. de interesse da comunidade Arduino que o nome da plataforma seja
usado por qualquer pessoa que tenha interesse. Inclusive, placas
desenvolvidas por usurios podem ser manufaturadas e distribudas pela
central ou ainda vendidas pelos prprios usurios, desde que a central esteja
ciente.
Esse microcontrolador programado com uma linguagem de
programao conhecida como Arduino (muito parecida com a linguagem C),
baseada na linguagem Processing. E o ambiente de desenvolvimento Arduino
baseado no ambiente Wiring.
[http://www.arduino.cc/]
1.1.2. Histria
A ideia teve origem em projetos que Massimo Banzi havia trabalhado
anteriormente, no Interection Desing Institute localizado em Ivrea, na Itlia, com
o objetivo de construir uma ferramenta para uso dos estudantes, com menor
valor monetrio do que a ferramenta usada por eles na poca, e maior
facilidade de aprendizado. Ele estava trabalhando com a linguagem de
programao Processing dentro do instituto, e surgiu a ideia de usar uma
linguagem como a Processing para programar um hardware. Trabalharou com
um estudante colombiano, chamado Hernando Barragn, que estava
escrevendo uma tese sobre o tema e juntos desenvolveram uma plataforma
que chamaram de Wiring. Depois disso, tentaram produzir a plataforma ainda
mais simples, menos custosa e ainda mais fcil de usar, e por isso,
praticamente recomearam todo o projeto como um open-source, para que
todos pudessem ajudar e contribuir para o projeto.
Massinmo Banzi conheceu David Cuartielles quando estava trabalhando
no Wiring. Cuarlielles se tornou um estudante do instituto, e teve uma grande
contribuio no projeto, e assim comearam a desenvolver a plataforma
Arduino. Depois da construo do primeiro hardware, David Mellis juntou-se ao
time para escrever o software com a ideia de capas de compatibilidade, o que
possibilitou a migrao de antigos programadores.
Em Junho de 2005, Tom Igoe foi convidado para palestrar em um
workshop em Ivrea e a conheceu a equipe e o microprocessador Arduino. Igoe
achou o projeto genial, e incentivou a equipe a mostrar a ideia para o mundo,
porque, segundo ele, mais pessoas iriam querer usar essa ferramenta. E
assim, depois de Igoe voltar aos Estados Unidos, recebeu um email dizendo
que eles iriam seguir a ideia de levar o projeto para o mundo e perguntaram se
ele queria fazer parte da equipe como conselheiro.
O ltimo a entrar no time foi Ileg Gianluca, com a capacidade de produzir
as placas de forma mais profissional e mais comercial. E assim, a equipe foi
formada, adicionando pessoas cujas habilidades eram requeridas.
David Mellis introduziu a ideia de escrever capas de compatibilidade
para que todos os antigos programadores pudessem migrar para a nova
plataforma sem maiores dificuldades.
Alguns meses depois de ter conhecido Nate Seidle, from SparkFun, Igoe
o pediu para vender o novo microprocessador chamado Arduino. A primeira
reao de Seidle foi positiva, mas no achou que seria a classe de produtos
que ele vendia no site. Algum tempo depois, eles desenvolveram a verso USB
totalmente montada e pronta para funcionar. Novamente props a venda ao
Seidle, que aceitou fazer um teste com apenas 20 dos mais de 40.000
exemplares que foram vendidos.
[https://www.youtube.com/watch?v=8YzLWJ9GBvE]
1.1.3. A Linguagem Arduino
O microcontrolador Arduino programado usando a linguagem Arduino,
baseada na linguagem Processing.
1.1.3.1. Processing
Bem Fry e Casey Reas iniciaram o projeto em 2001 e continuaram trabalhando
at que em 2012 fundaram a Processing Foundation juntamente com Dan
Shiffman, que se juntou como terceiro lder do projeto.
[http://www.processing.org/people/]
O principal objetivo da fundao promover o aprendizado do software,
tanto da parte grfica, quanto da tecnologia utilizada. Sua principal funo a
distribuio e desenvolvimento do processing software, tanto a interface
(Application Programming Interface ou API), quanto o ambiente de
desenvolvimento (Processing Development Environment ou PDE).
Para arrecadar o dinheiro necessrio para apoiar as futuras verses do
software Processing, um pequeno grupo de voluntrios lanou mais de 200
verses do software desde 2001, o que levou verso 2.0, em 2013. O
software foi escrito de maneira bem lenta devido falta de recurso financeiro
para o pagamento dos lderes em desenvolvimento. E hoje a fundao pede
doaes de pessoas fsicas que utilizam a verso 2.0 do software, alm de
buscar apoio tambm de empresas e organizaes sem fins lucrativos.
Apesar de suas metas de arrecadao, a Processing Foundation
movida por um pequeno grupo de voluntrios. No incio da fundao, a ideia
era contratar um desenvolvedor que trabalhasse em tempo integral para
manter e desenvolver o cdigo base da Processing, enquanto o grupo de
voluntrios continuaria dedicando seu tempo livre no projeto.
[http://www.processing.org/foundation/]
1.1.3.2. Descrio da Linguagem Arduino
[SubProjeto DesTaCom Despertando Novos Talentos em Computao
no MS Atividade Arduino] e http://arduino.cc/en/Reference/HomePage
A linguagem Arduino bem parecida com as linguagens C/C++. A
mesma sintaxe na declarao de variveis, na utilizao de operadores, na
manipulao de vetores, na conservao de estruturas, e tem a caracterstica
de ser case sensitive. A funo principal main(), porm, substituda por duas
funes elementares: setup() e loop().
Podemos dividir a linguagem em trs partes principais: estrutura, valores
(variveis e constantes) e funes.
1.1.3.2.1. Estrutura
Elementos de Sintaxe
; (ponto e vrgula): Indica o fim de uma instruo;
{} (Chaves): Delimitam um bloco de instrues, ou um lao ou ainda um
condicional;
// (Barras duplas): Iniciam um comentrio de trmino de linha que so
finalizados no trmino da linha;
/* */ (Barra asterisco): Delimitam blocos de comentrios;
#define: Atribuem um valor a uma constante antes que o programa seja
compilado. No se deve usar ponto e vrgula aps a declarao #define;
#include: Usado para incluir bibliotecas padro da linguagem C no
programa. O nome da biblioteca a ser includa deve estar entre aspas
duplas ou entre os caracteres menor (<) e maior (>). Semelhantemente,
no se deve usar ponto e vrgula aps a declarao #include.
Operadores Aritmticos: Os operadores aritmticos so os mesmos da
linguagem C: atribuio (=), soma (+), subtrao (-), multiplicao (*),
diviso (/) e mdulo (%).
Operadores de comparao: Os operadores de comparao tambm
so os mesmos: igual (==), diferente (!=), menor que (<), maior que (>),
menor ou igual a (<=) e maior ou igual a (>=).
Operadores booleanos: Os operadores booleanos so geralmente
usados dentro de uma condio. Sempre retornam um valor lgico true
(1) ou false (0): && (AND), || (OR) e ! (NO).
Setup e Loop
Todo programa Arduino deve, obrigatoriamente, as funes setup() e
loop(), declaradas como tipo void.
Setup: A funo setup() usada para inicializar variveis, configurar os
pinos como entrada ou sada e comear a usar as bibliotecas. Essa
funo executada apenas uma vez, na inicializao do arduino.
Loop(): Depois de executar a funo setup(), a funo loop()
executada repetitivamente, permitindo que a resposta do programa seja
alterada conforme as mudanas nos sinais de entrada.
Estruturas de Controle
As estruturas de controle da linguagem Arduino so as mesmas da
linguagem C, assim como suas funcionalidades. So elas:
if: Permite que um bloco de comandos seja executado somente em uma
condio especfica. Em caso afirmativo, o bloco cdigo executado,
caso contrrio, no.
if...else: Permite a possibilidade de haver dois caminhos de fluxo. Em
caso afirmativo, um bloco de comandos executado, caso contrrio,
outro bloco de comandos executado.
for: Executa um bloco de instrues at que a condio de parada no
seja mais satisfeita. A inicializao da varivel de lao, assim como a
implementao da mesma, pode ser realizada na chamada da estrutura.
switch case: Permite vrias possibilidades de fluxo. Cada caso
verificado com a varivel de teste, e somente de caso afirmativo, esse
bloco executado. O trmino de cada bloco indicado com o comando
break. Quando nenhuma condio for satisfeita, o bloco default
(opcional) executado.
while: Executa um bloco de instrues enquanto a condio de parada
for verdadeira. A verificao da condio feita antes de iniciar o bloco.
do...while: Como o comando while, um bloco de instrues executado
enquanto a condio de parada for verdadeira. A diferena que
verificao da condio feita ao final do bloco, ou seja, o bloco sempre
ser executado ao menos uma vez.
break: Indica o trmino do bloco onde est inserido.
continue: Usado para saltar partes do cdigo em comandos como for,
while, do..while. Ele fora a parada da execuo do bloco, e volta ao
teste.
return: Usado para finalizar uma funo e retornar um valor, varivel ou
constante, quando necessrio.
goto: Transfere o fluxo do programa para um ponto rotulado dentro do
mesmo programa.
1.1.3.3. Variveis e Constantes
Variveis
So reas de memria que armazenam valores possveis de alterados,
como leitura de um sensor qualquer conectado a uma entrada digital ou
analgica, ou uma varivel interna.
As variveis podem ser locais ou globais. Variveis locais podem ser
acessadas somente nas funes onde foram declaradas, enquanto que
variveis globais podem ser acessadas em quaisquer funes.
Tem-se ainda a opo de declarar as variveis dos tipos static, volatile e
const. Variveis estticas (static) so variveis cujos valores so armazenados
e a cada nova chamada da funo so atualizado, ou seja, variveis estticas
so criadas na primeira chamada da funo e no so deslocadas da memria
at o trmino da execuo do programa.
Variveis volteis (volatile) so usadas em partes do cdigo associadas
a interrupes, por se tratarem de variveis temporrias.
Variveis declaradas como constantes (const) so apenas para leitura, e
no podem ser alteradas. O comando #define define apenas constantes
globais, enquanto que a palavra chave const definem tanto variveis globais
quanto locais.
As variveis podem ser dos tipos:
boolean: Possuem apenas os valores true (verdadeiro) ou false (falso)
byte: Armazenam um nmero de 8 bits sem sinal.
char: Armazenam um caractere do cdigo ASCII. Caractere simples
representado com aspas simples () e cadeia de caracteres
representada com aspas duplas ()
int: Armazenam nmeros inteiros de 2 bytes de memria, o que abrange
uma faixa de -32.768 a 32.767. So representados usando uma tcnica
chamada complemento de 2.
unsigned int: Armazenam inteiros sem sinal de at 2 bytes, abrangendo
uma faixa de 0 a 65.535. So representados em nmeros binrios.
long: Armazenam inteiros de at 4 bytes, o que abrange uma faixa de -
2.147.483.648 a 2.147.648.647. Assim como o tipo int, so
representados por complemento de 2.
unsigned int: Armazenam inteiros sem sinal de at 4 bytes, abrangendo
uma faixa de 0 a 4.294.967.295. Tambm representados em nmeros
binrios.
float: Armazenam nmeros de ponto flutuante de at 4 bytes, que
representam os nmeros reais. Abrangem a faixa de -3,48235E+38 a
3,48235E+38.
double: Teoricamente, armazenam nmeros de ponto flutuante de dupla
preciso. No entanto, atualmente, o double ainda implementado da
mesma forma do float, ocupando os mesmos 4 bytes.
array: Armazenam uma coleo de variveis do mesmo tipo, que podem
ser acessadas com um ndice numrico. a implementao de um vetor
ou uma matriz, se for considerado um vetor de vetores. possvel
declarar um array sem especificar seu tamanho.
string: Armazenam um vetor de caracteres e so terminadas com null
(nulo), que ocupa um espao de memria a mais do que o texto contido
na string. Esse caractere permite que as funes que as manipulam
saibam em que endereo de memria as strings terminam.
void: Representam um tipo que no armazenam nenhum valor. So
usados em retorno de funes para indicar que no retornam a nenhum
valor.
Constantes
So nomes cujos valores so pr-definidos que no podem ser alterados
na execuo do programa e que tornam o programa mais legvel.
As constantes podem ser dos tipos:
booleanas: Possuem os valores true (verdadeiro), frequentemente
definida como 1 (um), mas pode ser qualquer valor no nulo, e false
(falso), definido como 0 (zero).
HIGH e LOW: A leitura (digitalRead) dos pinos digitais definidos como
entrada (INPUT) resulta em apenas estes dois valores lgicos, que
significam tenso alta (a partir de 3V) ou tenso baixa (menor ou igual a
2V). A escrita (digitalWrite) nos pinos definidos como sada (OUTPUT)
resulta em uma tenso de 5V no pino quando se escreve HIGH e de 0V
quando se escreve LOW.
Obs.: possvel escrever nos pinos definidos como entrada. Neste
caso, escrever HIGH significa gerar uma corrente no resistor interno do
pino, causando uma tenso considerada alta. E escrever LOW significa
forar a drenagem da corrente em algum resistor em srie ao 5V do
pino.
INPUT, OUTPUT, e INPUT_PULLUP: Configuram os pinos como
entrada, sada e entrada/sada, respectivamente. Pinos definidos como
INPUT ficam em um estado de alta impedncia, e so usados para ler
algum sensor. Pinos definidos como OUTPUT ficam em um estado de
baixa impedncia e podem fornecer altas correntes (at 40mA) para
circuitos adjacentes. Para ativar rels e motores, necessrio algum
circuito de interface. Pinos definidos como INPUT_PULLUP tm
resistores que se conectam fonte de energia interna do
microcontrolador Arduino. Essa configurao inverte o comportamento
de HIGH (desligado) e LOW (ligado).
Converses entre tipos
A converso entre os diferentes tipos de dados pode ser feita de maneira
rpida e fcil. Funes para converso entre tipos j esto implementadas e
prontas para usar. Para converter uma varivel para um caractere, por
exemplo, basta usar o comando
caractere = char(var),
onde o argumento var pode ser de qualquer tipo. Da mesma forma, possvel
converter tipos de variveis usando os comandos byte(var), int(var), word(var),
long(var) e float(var).
1.1.3.4. Funes
A criao de funes permite que o programador module o cdigo de
maneira que uma manipulao de dados seja feita antes de continuar o fluxo
natural da execuo. O principal objetivo de se criar uma funo usar o
mesmo bloco de instrues mais de uma vez. Alm de auxiliar na organizao
do cdigo, criao de funes reduz as chances de erros de modificao, se o
cdigo precisar ser alterado, e ainda faz-se possvel a reutilizao do cdigo
em outros programas e tambm mais legvel.
As funes criadas por programadores devem ser declaradas e definidas
aps a declarao de definio das funes padres setup e loop. A anatomia
da criao de uma funo como segue:

Figura ... : Anatomia de criao de funo na linguagem Arduino
exatamente igual criao de funes na linguagem C.

Segue abaixo, alguns exemplos de funes tpicas e suas especificaes:
pinMode(pin, mode)
Configura o pino especificado para se comportar como entrada ou sada.
O argumento pin representa o nmero do pino, e mode especifica o
comportamento do pino, que pode ser INPUT ou OUTPUT.
digitalWrite(pin, value)
Escreve os valores HIGH ou LOW em um pino digital. Se o pino estiver
configurado como OUTPUT, HIGH e LOW representam os valores de tenso
5V e 0V, respectivamente. Se o pino estiver configurado como INPUT, a funo
ir habilitar (HIGH) ou desabilitar (LOW) um resistor para aumentar a corrente
no pino. recomendado configurar o pino com INPUT_PULLUP. Os
argumentos pin e mode representam, respectivamente, o nmero do pino
digital, e o valor a ser escrito.
digitalRead(pin)
L o valor de um pino de sinal digital especificado no argumento pin,
podendo retornar os valores HIGH, quando o valor de tenso for maior ou igual
a 3V, e LOW, quando o valor de tenso for menor ou igual a 2V.
analogReference(type)
Configura o valor da tenso de referncia usada para as entradas
analgicas. Quando a funo no chamada, esse valor configurado no
valor padro. O argumento type pode ser: DEFAULT, que configura a
referncia para 5V (ou 3,3V, dependendo da placa), INTERNAL, que define a
referncia para 1,1V no ATmega168 ou ATmega328, e 2,56V no ATmega8
(no disponvel no Arduino Mega), INTERNAL1V1, que define a referncia para
1,1V no Arduino Mega, INTERNAL2V56, que define a referncia para 2,56V
somente no Arduino Mega e EXTERNAL, que permite que a tenso de
referncia seja definida atravs do pino AREF, podendo ser apenas entre 0V e
5V.
analogRead(pin)
L o valor de um pino de sinal analgico. O Arduino UNO contm 6 canais
analgicos e o Arduino Mega contm 16. O microcontrolador Arduino conta
com um conversor analgico digital (ADC) de 10 bits, o que significa que o sinal
de entrada analgica de at 5V ser mapeada entre 0 e 1023 degraus, gerando
uma resoluo (5V/1024) de 4,9mV por degrau. A resoluo pode ser alterada
usando a funo analogReference. O retorno da funo um valor inteiro entre
0 e 1023.
analogWrite(pin, value)
usado um mtodo chamado PWM (Pulse Width Modulation ou
Modulao por largura de banda) para obter sinais analgicos com sinais
digitais. A funo permite que no pino pin especificado no argumento seja
gerada uma onda quadrada estvel com o ciclo de rendimento especificado no
argumento value, que deve estar entre os valores 0 (sempre em 0V) e 255
(sempre em 5V). A funo no tem semelhana alguma com pinos analgicos
ou com a funo analogRead.
tone(pin, frequency) ou tone(pin, frequency, duration)
A funo gera uma onda com a frequncia especfica no pino definido no
argumento pin. A durao da onda pode ser informada no argumento duration,
que opcional. Quando a durao no informada, a onda continua at a
funo noTone ser chamada. No pino deve estar conectado um buzzer ou um
speaker para a onda ser ouvida. No possvel gerar duas ondas sonoras de
uma s vez. Para usar mltiplos pinos, deve-se usar a funo noTone em um
pino antes de ser chamada em outro pino. O argumento frequency deve ser
informado em hertz e o argumento duration deve ser informado em
milissegundos.
noTone(pin)
Essa funo interrompe o sinal gerado pela funo tone. No tem efeito
se no houver sinal algum.
millis()
Retorna o tempo em milissegundos decorridos desde que o programa
iniciou a ser executado. A contagem zera aps aproximadamente 50 dias.
micros()
Assim como a funo millis, a funo micros retorna o tempo decorrido
desde que o programa iniciou a ser executado, porm em microssegundos. A
contagem recomea depois de aproximadamente 70 minutos.
delay(ms)
Interrompe a execuo do programa durante o tempo (em milissegundos)
indicado no argumento ms.
delayMicroseconds(ms)
Tambm tem a funo de parar a execuo do programa. Entretanto o
tempo ms indicado em microssegundos.
min(x, y) e max(x, y)
Calcula o mnimo e o mximo entre os dois nmeros x e y. Retorna o
menor valor entre eles.
abs(x)
Retorna o mdulo de um nmero.
constrain(x,a,b)
Restringe o nmero x para estar dentro do intervalo delimitado por a e b
. Se x j estiver dentro do intervalo, a funo retorna x. Se x for menor
que a, a funo retorna a. E se x for maior que b, a funo retorna b.
map(value, fromLow, fromHigh, toLow, toHigh)
O argumento value mapeado do intervalo delimitado pelos valores
fromLow e fromHigh para o intervalo delimitado pelos valores toLow e o toHigh.
pow(base, exponent)
A funo calcula o valor de um nmero elevado a sua potncia. Os
argumentos base e expoent so nmeros do tipo float. O retorno um nmero
do tipo double.
sqrt(x) ou sq(x)
Calcula e retorna a raiz quadrada do argumento x.
sin(rad) ou cos(rad) ou tan(rad)
As funes sin, cos e tan calculam, respectivamente, o seno, o cosseno e
a tangente do argumento do tipo float rad. O retorno um nmero do tipo
double.
1.2. O Hardware Arduino
1.2.1. Definio
O microcontrolador Arduino percebe o ambiente no qual est inserido
atravs dos sinais recebidos de sensores (como sensores de umidade de solo,
de temperatura, de luminosidade, sensores ultrassnicos, botes e outros) e
pode interagir com elementos como luzes, motores, telas de LCD, entre outros.
Sua essncia baseada no hardware Wiring (APNDICE B)

1.2.2. Wiring
O Wiring um prottipo de plataforma que inclui tanto uma IDE amigvel
quanto uma placa de circuito conhecida como ready-to-use, ou pronta para ser
usada. Desenvolvida pelo estudante Hernando Barragan, a plataforma Wiring
foi o primeiro passo para o desenvolvimento da plataforma Arduino. A
plataforma continua sendo um projeto promissor at a presente data,
entretanto, Banzi e sua equipe tinham sonhos maiores e queriam desenvolver
uma plataforma ainda mais simples, fcil de usar e de menor custo monetrio.
[http://www.circuitstoday.com/story-and-history-of-development-of-arduino]
Possui uma estrutura de programao de cdigo aberto para
microprocessadores que permite o desenvolvimento de softwares multi-
plataformas que controlem dispositivos conectados a vrias placas de
microprocessadores. Essa estrutura permite tambm a existncia de uma
comunidade onde iniciante e especialista de todo o mundo compartilhem
ideias, conhecimento e experincia a fim de todos serem beneficiados
mutuamente.
Milhares de estudantes, artistas, designers, pesquisadores e amadores
usam Wiring para aprendizado, prototipagem e trmino de algum produto de
trabalho profissional.
1.2.3. O Arduino na Atualidade
O

1.2.4. Arquitetura do Arduino
Arduino Mega
O Arduino MEGA um microcontrolador baseado no ATmega2560.
Possui 54 pinos digitais que podem ser usados como entrada ou sada de
dados, dentre os quais, 15 podem ser usados tambm como sadas PWM de 8
bits. Alm disso, possui tambm 16 entradas analgicas, 4 UARTs (Universal
Asynchrounous Receiver/Transmiter ou Receptor/Transmissor Universal
Assncrono), um cristal oscilador de 16 MHz, uma conexo USB, um conector
de alimentao, um cabealho ICSP, e um boto de reset.
[http://arduino.cc/en/Main/ArduinoBoardMega]

Semelhante ao mega 2560 e Uno, possui uma ATmega8U2 programado
como um conversor USB para serial.
Reviso 2 da placa ADK mega tem um resistor de puxar a linha 8U2
HWB ao solo, tornando-o mais fcil de colocar em modo DFU.
Reviso 3 da placa tem os seguintes novos recursos:
1.0 pinagem: adicionado SDA e SCL pinos que esto perto do pino
AREF e outros dois novos pinos colocados perto do pino RESET, o IOREF que
permitem que os escudos para se adaptar tenso fornecida a partir da placa.
No futuro, os escudos ser compatvel tanto com a placa que usar o AVR, que
operam com 5V e com o Arduino Devido que operam com 3.3V. O segundo
um pino no conectado, que est reservada para efeitos futuros.
Circuito de RESET Stronger.

Interfaces de entrada e sada ou I/O
D
Elementos Lgicos
A
Memrias Embutidas
C
http://playground.arduino.cc/Portugues/HomePage
http://wiring.org.co/