Você está na página 1de 50

Introduo Computao Fsica com Arduino de Thalis Antunes de Souza licenciado sob

uma Licena Creative Commons Atribuio-Uso no-comercial-Compartilhamento pela mesma


licena 3.0 Unported.

Sumrio
1 Computao .......................................................................................................................... 8
1.2 Computao Fsica ........................................................................................................... 8
2 Open Source ......................................................................................................................... 9
3 Open Hardware..................................................................................................................... 9
4 Arduino ................................................................................................................................. 10
4.1 Hardware .......................................................................................................................... 11
4.2 IDE ..................................................................................................................................... 12
5 Arduino UNO ....................................................................................................................... 12
5.1 Caractersticas..................................................................................................................... 13
5.2 Alimentao ........................................................................................................................ 14
5.3 Memria ............................................................................................................................. 15
5.4 Entrada e Sada ................................................................................................................... 15
5. 5 Comunicao ..................................................................................................................... 16
5.6 Programao....................................................................................................................... 16
5.7 Reset automatico por software .......................................................................................... 17
5.8 Proteo contra sobre-corrente na USB ............................................................................ 18
5.9 Caractersticas fsicas .......................................................................................................... 18
5.10 Shields ........................................................................................................................... 19
6 Starter Kit ............................................................................................................................. 19
6.1 Laboratrio de Garagem ................................................................................................ 20
6.2 Itens ................................................................................................................................... 20
6.2.1 Cabo USB ..................................................................................................................... 21
6.2.2 Protoboard .................................................................................................................... 22
6.2.3 Jumpers ......................................................................................................................... 22
6.2.4 Display LCD .................................................................................................................. 22

6.2.5 Arduino UNO ................................................................................................................ 23


6.2.6 Resistores ..................................................................................................................... 28
6.2.6.1 Resistor 10 K ............................................................................................................. 28
6.2.6.2 Resistor 330 R .......................................................................................................... 28
6.2.7 LEDs ............................................................................................................................. 29
6.2.7.1 LED Verde ................................................................................................................. 29
6.2.7.2 LED Amarelo ............................................................................................................. 29
6.2.7.3 LED Vermelho ........................................................................................................... 30
6.2.8 Potenciometro Linear 10K .......................................................................................... 30
6.2.9 Sensor de Temperatura LM35 ................................................................................... 31
6.2.10 Buzzer Contnuo ........................................................................................................ 32
6.2.11 Push Button ................................................................................................................ 32
7 Electronic design automation (ECAD)............................................................................. 33
7.1 Fritzing .............................................................................................................................. 33
8 Prticas ................................................................................................................................ 33
8.1 Analog ............................................................................................................................... 33
8.1.1 Input ............................................................................................................................... 33
8.1.1.1 Potentiometer ............................................................................................................ 33
8.2 Digital ................................................................................................................................ 35
8.2.1 Input ............................................................................................................................... 35
8.2.1.1 Button ......................................................................................................................... 35
8.2.2 Output ............................................................................................................................ 37
8.2.2.1 Blink ............................................................................................................................ 37
8.2.2.2 Loop ............................................................................................................................ 38
8.2.2.3 Traffic Light ................................................................................................................ 40
8.3 Light ................................................................................................................................... 41

8.3.1 Display ........................................................................................................................... 41


8.3.1.1 PrintData .................................................................................................................... 41
8.3.2 Led ................................................................................................................................. 43
8.3.2.1 Analog In / Out (Pot and LED) ................................................................................ 43
8.3.2.2 Color Fader (RGB LED) .......................................................................................... 44
8.4 Sensors ............................................................................................................................. 46
8.4.1 Temperature ................................................................................................................. 46
8.4.1.1 Temperature Sensors .............................................................................................. 46
8.5 Sound ................................................................................................................................ 48
8.5.1 Melody ........................................................................................................................... 48

Figura 1 - Arduino Uno .............................................................................................. 19


Figura 2 - Shield Relay .............................................................................................. 19
Figura 3 - Kit Starter da loja Laboratrio de Garagem............................................... 20
Figura 4 - Itens do kit dentro da caixa ....................................................................... 21
Figura 5 - Itens do kit starter...................................................................................... 21
Figura 6 - Cabo USB A-B .......................................................................................... 22
Figura 7 - Protoboard ................................................................................................ 22
Figura 8 - Jumpers para protoboard .......................................................................... 22
Figura 9 - LCD 2x16 com backlight ........................................................................... 23
Figura 10 - Fundo do LCD 2x16 ................................................................................ 23
Figura 11 - Datasheet dos pinos ............................................................................... 23
Figura 12 - Arduino Uno ............................................................................................ 24
Figura 13 - Arduino Uno ............................................................................................ 25
Figura 14 - Pinout do Arduino Uno ............................................................................ 25
Figura 15 - Detalhe do pinout do Arduino Uno .......................................................... 26
Figura 16 - Conector USB e de Alimentao............................................................. 26
Figura 17 - Detalhe do boto de reset ....................................................................... 27
Figura 18 - Detalhe do led ON e conector ICSP........................................................ 27
Figura 19 - Detalhe para o conversor USB/Serial e Leds de TX e RX ..................... 28
Figura 20 - Resistores de 10K ................................................................................... 28
Figura 21 - Resistores de 330R................................................................................. 29
Figura 22 - Led Verde ............................................................................................... 29
Figura 23 - Led Amarelo ............................................................................................ 30
Figura 24 - Led Vermelho .......................................................................................... 30
Figura 25 - Potencimetro 10K.................................................................................. 31
Figura 26 - Sensor de Temperatura LM35 ................................................................ 31
Figura 27 - Push Button ............................................................................................ 32
Figura 28 - Terminais do Push Button ....................................................................... 33
Figura 29 - Detalhe do Push Button .......................................................................... 33
Figura 30 - Protoboard .............................................................................................. 34
Figura 31- Esquemtico ............................................................................................ 34
Figura 32 - PCB......................................................................................................... 35
Figura 33 - Protoboard .............................................................................................. 36
Figura 34 - PCB......................................................................................................... 36

Figura 35 - Esquemtico ........................................................................................... 36


Figura 36 - Protoboard .............................................................................................. 37
Figura 37 - Esquemtico ........................................................................................... 37
Figura 38 - PCB......................................................................................................... 38
Figura 39 - Protoboard .............................................................................................. 38
Figura 40 - Esquemtico ........................................................................................... 39
Figura 41 - PCB......................................................................................................... 39
Figura 42 - Protoboard .............................................................................................. 40
Figura 43 - Esquemtico ........................................................................................... 40
Figura 44 - PCB......................................................................................................... 40
Figura 45 - Protoboard .............................................................................................. 42
Figura 46 - Esquemtico ........................................................................................... 42
Figura 47 - PCB......................................................................................................... 42
Figura 48 - Protoboard .............................................................................................. 43
Figura 49 - Esquemtico ........................................................................................... 43
Figura 50 - PCB......................................................................................................... 44
Figura 51 - Protoboard .............................................................................................. 44
Figura 52 - Esquemtico ........................................................................................... 45
Figura 53 - PCB......................................................................................................... 45
Figura 54 - Protoboard .............................................................................................. 46
Figura 55 - Esquemtico ........................................................................................... 47
Figura 56 - PCB......................................................................................................... 47
Figura 57 - Protoboard .............................................................................................. 48
Figura 58 - Esquemtico ........................................................................................... 49
Figura 59 - PCB......................................................................................................... 49

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

1 Computao

A computao pode ser definida como a busca de uma soluo para um problema a
partir de entradas (inputs) e tem seus resultados (outputs) depois de trabalhada
atravs de um algoritmo. com isto que lida a teoria da computao, subcampo da
cincia da computao e da matemtica. Durante milhares de anos, a computao
foi executada com caneta e papel, ou com giz e ardsia, ou mentalmente, por vezes
com o auxlio de tabelas ou utenslios artesanais.
A partir da segunda metade do sculo XX, com o advento dos computadores
eletrnicos, a Computao passou a ter uma presena cada vez mais marcante na
sociedade, influenciando a vida diria de parte da populao mundial. A partir da
dcada de 1950, a Computao ganhou o status de Cincia surgindo ento o termo
cincia da computao, uma rea do conhecimento humano hoje fortemente ligado
produo de software.

1.2 Computao Fsica

O campo da computao fsica engloba todas as disciplinas que permitem construir


equipamentos digitais de computao que interagem com, e respondem , realidade
fsica analgica que os rodeia, usando software e hardware para este fim.
Em sentido mais lato, a disciplina que estuda e concebe sistemas digitais,
incluindo computadores, controladores e respectivo software que, ligados a sensores
e atuadores, permitem construir sistemas e aparelhos autmatos, que percebem a
realidade e respondem com aes fsicas a esta realidade.
Em sentido mais estrito, o termo aplica-se a projetos que envolvem computadores,
sensores e atuadores, capazes de produzir sistemas que de um modo simples, sob
o ponto de vista dos meios, cumpram aquelas premissas de resposta/interao fsica
ao mundo fsico, envolvendo meios especficos da computao e normalmente em
Thalis Antunes www.thalisantunes.com.br | 8

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

ambientes no especificamente tecnolgicos, como sejam os campos da arte,


design, multimdia, vida quotidiana, e mesmo em automatismos mais elaborados
(museus, centros de interpretao, demonstrao, marketing, maquetagem, jogos,
multimedia, domtica, etc) envolvendo interao com utilizadores ou com o meio que
o rodeia.

2 Open Source

O termo cdigo aberto, ou open source em ingls, foi criado pela OSI (Open Source
Initiative)

refere-se

software

tambm

conhecido

por

software

livre.

Genericamente trata-se de software que respeita as quatro liberdades definidas pela


Free

Software

Foundation,

compartilhadas

tambm

pelo

projeto

Debian,

nomeadamente em "Debian Free Software Guidelines (DFSG)". Qualquer licena de


software livre tambm uma licena de cdigo aberto (Open Source), a diferena
entre as duas nomenclaturas reside essencialmente na sua apresentao. Enquanto
a FSF usa o termo "Software Livre" envolta de um discurso baseado em questes
ticas, direitos e liberdade, a OSI usa o termo "Cdigo Aberto" sob um ponto de vista
puramente tcnico, evitando (propositadamente) questes ticas. Esta nomenclatura
e discurso foram cunhados por Eric Raymond e outros fundadores da OSI com o
objetivo de apresentar o software livre a empresas de uma forma mais comercial
evitando o discurso tico.

3 Open Hardware

Hardware livre um hardware projetado e oferecido da mesma maneira que um


software de cdigo livre, o termo foi primeiramente empregado para refletir o
lanamento irrestrito de informao sobre o projeto de hardware, tal como um
diagrama, estrutura de produtos e dados de layout de uma placa de circuito
impresso.[1]

Thalis Antunes www.thalisantunes.com.br | 9

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Com o crescimento dos dispositivos lgicos reprogramveis, o compartilhamento dos


esquemas lgicos de forma aberta tambm se espalhou. Ao invs de compartilhar
as esquemticas, o cdigo da linguagem de descrio de hardware que
normalmente se divide. Suas descries popularmente so usadas para configurar
um system-on-a-chip ou atravs de FPGA ou diretamente via ASIC. Estes mdulos,
quando distribudos, so chamados de ncleos semicondutores de propriedade
intelectual (Em ingls, Semiconductor intellectual property core - IP cores) ou
Ncleos IP.

4 Arduino

Arduino, palavra por vezes traduzida ao portugus como Arduno,[3][5] uma


plataforma de prototipagem eletrnica de hardware livre, projetada com um
microcontrolador Atmel AVR de placa nica, com suporte de entrada/sada
embutido, uma linguagem de programao padro,[6] na qual tem origem em Wiring,
e essencialmente C/C++.[7] O objetivo do projeto criar ferramentas que so
acessveis, com baixo custo, flexveis e fceis de se usar por artistas e amadores.
Principalmente para aqueles que no teriam alcance aos controladores mais
sofisticados e de ferramentas mais complicadas.[8]
Pode ser usado para o desenvolvimento de objetos interativos independentes, ou
ainda para ser conectado a um computador hospedeiro. Uma tpica placa Arduino
composta por um controlador, algumas linhas de E/S digital e analgica, alm de
uma interface serial ou USB, para interligar-se ao hospedeiro, que usado para
program-la e interagi-la em tempo real. Ela em si no possui qualquer recurso de
rede, porm comum combinar um ou mais Arduinos deste modo, usando
extenses apropriadas chamadas de shields. A interface do hospedeiro simples,
podendo ser escrita em vrias linguagens. A mais popular a Processing, mas
outras que podem comunicar-se com a conexo serial so: Max/MSP,[9] Pure
Data,[10] SuperCollider,[11] ActionScript[12] e Java.[13] Em 2010 foi realizado um
documentrio sobre a plataforma chamado Arduino: The Documentary.

Thalis Antunes www.thalisantunes.com.br | 10

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

4.1 Hardware

Sua placa consiste em um microcontrolador Atmel AVR de 8 bits, com componentes


complementares para facilitar a programao e incorporao para outros circuitos.
Um importante aspecto a maneira padro que os conectores so expostos,
permitindo o CPU ser interligado a outros mdulos expansivos, conhecidos como
shields. Os Arduinos originais utilizam a srie de chips megaAVR, especialmente os
ATmega8, ATmega168, ATmega328 e a ATmega1280; porm muitos outros
processadores foram utilizados por clones deles.[18]
A grande maioria de placas inclui um regulador linear de 5 volts e um oscilador de
cristal de 16 MHz (podendo haver variantes com um ressonador cermico), embora
alguns esquemas como o LilyPad usam at 8 MHz e dispensam um regulador de
tenso embutido, por ter uma forma especfica de restries de fator. Alm de ser
microcontrolador, o componente tambm pr-programado com um bootloader que
simplifica o carregamento de programas para o chip de memria flash embutido,
comparado com outros aparelhos que usualmente necessitam de um chip
programador externo.[18]
Conceitualmente, quando seu software utilizado, ele monta todas as placas sobre
uma programao de conexo serial RS-232, mas a maneira que implementado
no hardware varia em cada verso. Suas placas serial contm um simples circuito
inversor para converter entre os sinais dos nveis RS-232 e TTL. Atualmente,
existem alguns mtodos diferentes para realizar a transmisso dos dados, como por
placas programveis via USB, adicionadas atravs de um chip adaptador USB-paraSerial como o FTDI FT232. Algumas variantes, como o Arduino Mini e o no oficial
Boarduino, usam um mdulo, cabo adaptador USB, bluetooth ou outros mtodos.
Nestes casos, so usados com ferramentas microcontroladoras ao invs do Arduino
IDE, utilizando assim a programao padro AVR ISP.[19][20]
A maioria dos pinos de E/S dos microcontroladores so para uso de outros circuitos.
A verso Diecimila, que substituiu a Duemilanove, por exemplo, disponibiliza 14
pinos digitais, 6 das quais podem produzir sinais MLP, alm de 6 entradas
Thalis Antunes www.thalisantunes.com.br | 11

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

analgicas. Estes esto disponveis em cima da placa, atravs de conectores


fmeas de 0,1 polegadas (ou 0,25 centmetros).[21]
O modelo Nano, Boarduino e placas compatveis com estas, fornecem conectores
machos na parte de baixo da placa, para serem plugados em protoboards.[18]

4.2 IDE
O Arduino IDE uma aplicao multiplataforma escrita em Java na qual derivada
dos projetos Processing e Wiring.[18][22] esquematizado para introduzir a
programao a artistas e a pessoas no familiarizadas com o desenvolvimento de
software. Inclui um editor de cdigo com recursos de realce de sintaxe, parnteses
correspondentes e identao automtica, sendo capaz de compilar e carregar
programas para a placa com um nico clique. Com isso no h a necessidade de
editar Makefiles ou rodar programas em ambientes de linha de comando.[8][23]
Tendo uma biblioteca chamada "Wiring", ele possui a capacidade de programar em
C/C++. Isto permite criar com facilidade muitas operaes de entrada e sada, tendo
que definir apenas duas funes no pedido para fazer um programa funcional:[18]
setup() Inserida no inicio, na qual pode ser usada para inicializar configurao, e
loop() Chamada para repetir um bloco de comandos ou esperar at que seja
desligada.
Habitualmente, o primeiro programa que executado tem a simples funo de piscar
um LED.

5 Arduino UNO
O Arduino Uno uma placa de microcontrolador baseado no ATmega328
(datasheet). Ele tem 14 pinos de entrada/sada digital (dos quais 6 podem ser
usados como sadas PWM), 6 entradas analgicas, um cristal oscilador de 16MHz,
uma conexo USB, uma entrada de alimentao uma conexo ICSP e um boto de
reset.

Ele

contm

todos

os

componentes

necessrios

para

suportar

microcontrolador, simplesmente conecte a um computador pela porta USB ou


alimentar com uma fonte ou com uma bateria e tudo pronto para comear.
Thalis Antunes www.thalisantunes.com.br | 12

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

O Uno difere de todas as placas antecessoras no sentido de no utilizar o chip FTDI


cara converso do sinal serial. Utiliza no seu lugar um Atmega8U2 programado
como conversor de USB para serial.
Reviso 3 da placa com as novas caractersticas:

Pinos SDA e SCL adicionados prximos ao AREF.

Dois outros pinos adicionados prximos ao RESET, o IOREF que permite aos
shields se adaptarem voltagem fornecida pela placa. No futuro os shields
sero compatveis tanto com as placas que utilizam o AVR e operam a 5V,
como com o ARduino Due que operar a 3,3V. O segundo pino no est
conectado e resrvado para propsitos futuros.

Circuto de RESET mais robusto.

Atmega 16U2 em substituio ao 8U2.

"Uno" quer dizer um em italiano e utilizado para marcar o lanamento do Arduino


1.0. O Uno e a verso 1.0 sero as verses de referncia do Arduino, daqui para
diante. O UNO o mais recente de uma srie de placas Arduino, e o modelo de
referncia para a plataforma Arduino. Para uma comparao com as verses prvias
veja o ndice de palcas Arduino.

5.1 Caractersticas

Microcontrolador

ATmega328

Voltagem Operacional

5V

Voltagem de entrada (recomendada)

7-12V

Voltagem de entrada (limites)

6-20V

Pinos E/S digitais

14 (dos quais 6 podems ser sadas PWM)

Pinos de entrada analgica

Corrente CC por pino E/S

40 mA

Corrente CC para o pino 3,3V

50 mA

Flash Memory

32 KB (ATmega328

SRAM

2 KB (ATmega328)

EEPROM

1 KB (ATmega328)

Velocidade de Clock

16 MHz
Thalis Antunes www.thalisantunes.com.br | 13

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

5.2 Alimentao
O arduino Uno pode ser alimentado pela conexo USB ou com uma fonte de
alimentao externa. A alimentao selecionada automaticamente.
Alimentao externa (no USB) pode ser tanto de um adaptador CA para CC ou
bateria. H um conector para alimentao de 2,1mm com o positivo no centro.
Cabos vindos de uma bateria podem ser inseridos diretamente nos pinos Gnd e Vin
do conector de alimentao.
Esta placa pode funcionar com uma fonte de alimentao externa de 6 a 20 volts. No
entanto se a alimentao for inferior a 7V, o pino 5V pode fornecer menos de cinco
volts e a placa pode se mostrar instvel. E se a aliemtao for maior do que 12V o
regulador de voltagem pode superaquecer e danificar a placa. A faixa recomendada
de 7 a 12 volts.
Os pinos de alimentao so os seguintes:
VIN. A entrada de alimentao para a placa Arduino quando se est utilizando uma
fonte de alimentao externa. (em oposio conexo USB ou outra fonte de
aliemteo regulada). Voc pode fornecer alimentao atravs deste pino, ou se
estiver utilizando o conector de alimentao acessar esta voltagem aqui.
5V. A fonte de alimentao regulada usada para o microcontrolador e para outros
componentes na placa. Pode vir tanto do VIN atravs do regulador embarcado ou da
conexo USB ou outra fonte regulada em 5V.
3V3. Uma fonte de 3,3V gerada pelo regulador embarcado. A corrente mxima
suportada de 50mA.
GND. Pinos terra.

Thalis Antunes www.thalisantunes.com.br | 14

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

5.3 Memria
O ATmega328 tm 32KB (dos quais 0,5 so utilizados pelo bootloader). Tambm
tem 2KB de SRAM e 1KB de EEPROM (que pode ser lido ou gravado com a
biblioteca EEPROM).

5.4 Entrada e Sada


Cada um dos 14 pinos digitais do Uno podem ser utilizados como uma entrada ou
uma sada utilizando-se as funes pinMode(), digitalWrite(), e digitalRead(). Eles
operam a 5V. Cada pino pode fornecer ou receber um mximo de 40mA e tem um
resistor pull-up interno (desconectado por padro) de 20-50k. Alm disso alguns
pinos tem funes especializadas:

Serial: 0 (RX) e 1 (TX). Usados para receber (RX) e transmitir (TX) dados
seriais TTL. Estes pinos so conectados aos pinos correspondentes do chip
serial USB-para-TL ATmega8U2.

Interruptores Externos: 2 e 3. Estes pinos podem ser configurados para


disparar uma interrupo de acordo com alguma variao sensvel pelo
circuto. Veja a funo attachInterrupt() para mais detalhes.

SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estes pinos do suporte


comunicao SPI utilizando a biblioteca SPI.

LED: 13. H um LED integrado ao pino digital 13. Quando este pino est no
valor HIGH este LED est aceso, quando o pino est em LOW o LED est
apagado.

I2C: 4 (SDA) and 5 (SCL). Fornecem suporte a comunicao I2C (TWI)


utilizando a biblioteca Wire.

AREF. Voltagem de referncia para as entradas analgicas. Utilizado com a


funo analogReference().

Reset. Envio o valor LOW para esta linha para resetar o microcontrolador.
Tipicamente usado para adcionar um boto de de reset para shileds
montados sobre a placa original.

Thalis Antunes www.thalisantunes.com.br | 15

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

O Uno tem 6 entradas analgicas, etiquetadas de A0 a A5, cada uma tem 10 bits de
resoluo (i.e. 1024 valores diferentes). Por padro elas medem de 0 a 5V, embora
seja possvel alterar o limite superior utilizando o pino AREF e a funo
analogReference().

5. 5 Comunicao
O Arduino Uno possui uma srie de facilidades para se comunicar com um
computador, outro Arduino, ou outros microcontroladores. O ATmega328 fornece
comunicao serial UART TTL (5V) que est disponvel nos pinos digitais 0 (RX) e 1
(TX). Um ATmega8U2 na placa canaliza esta comunicao para a USB e aparece
como uma porta virtual para o software no computador. O firmware do '8U2 utiliza os
drivers padro USB COM e nenhum driver externo necessrio. Entretanto, no
Windows, um arquivo .inf necessrio. Ainda faltam as instrues especficas mas
em breve estaro disponveis. O software do Arduino inclui um monitor serial que
permite dados textuais ser enviados e recebidos da placa. LEDs conectados ao RX
e TX piscaro enquanto dados estiverem sido transmitidos pelo chip USB-para-serial
e pela conexo USB (mas no para comunicao serial nos pinos 0 e 1).
Uma biblioteca de SoftwareSerial permite comunicao serial em qualquer dos pinos
digitais do Uno.
O ATmega328 tambm suporta comunicao I2C (TWI) e SPI. O software do
Arduino inclui uma biblioteca Wire para simplificar o uso do bus I2C, veja a
documentao para mais detalhes. Para comunicao SPI utilize a biblioteca SPI.

5.6 Programao
O Arduino Uno pode ser programado com o software Arduino (download).
Simplismente selecione "Arduino Uno" no menu Tools > Board.
O ATmega328 no Arduino Uno vem pr-gravado com um bootloader que permite a
voc enviar cdigo novo para ele sem a utilizao de um programador de hardware
externo. Ele se comunica utilizando o protocolo original STK500 (referencia, arquivos
C header).
Thalis Antunes www.thalisantunes.com.br | 16

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Voc tambm pode saltar o bootloader e programar o microcontroaldor atravs do


conector ICSP (In-Circuit Serial Programming); veja estas instrues para mais
detalhes.
O cdigo fonte do firmware do ATmega8U2 tambm est disponvel. Este chip
carregado com um bootloader DFU, que pode ser ativado conectando o jumper de
solda na parte posterior da placa (prximo ao mapa da Itlia) e depois resetando o
8U2. Voc pode utilizar o software FLIP da Atmel (Windows) ou o programador DFU
(Mac OS X e Linux) para carregar um novo firmware. Ou ainda utilizar um
programador externo (sobrescrevendo o bootloader DFU).

5.7 Reset automatico por software


Ao invs de necessitar do pressionamento fsico de um boto antes de um upload, o
Arduino Uno desenvolvido que permita esta operao ser feita por meio do
software rodando em um computador. Uma das linhas de controle de fluxo do
hardware (DTR) do ATmega8U2 conectado linha de reset do ATmega328
atravs de um capacitor de 100nF. Quando esta linha declarada (rebaixada) a
linha de reset cai o suficiente para resetar o chip. O software do Arduino utiliza esta
capacidade para permitir o envio de cdigo novo simplismente pressionando o boto
de upload na IDE. Isto significa que o bootloader pode ter um intervalo mais curto,
uma vez que o rebaixamento do DTR pode ser melhor coordenado com o incio do
upload.
Esta configurao tem outras implicaes. Quando o Uno conectado a um
computador rodando Mac OS X ou Linux, ele resetado cada vez que uma conexo
estabelecida com o software (via USB). Durante o prximo meio segundo o
bootloader estar rodando no Uno. Uma vez que ele est programado para ignorar
dados malformados (i.e. qualquer coisa diferente do upload de um novo cdigo), ele
ir interceptar os primeiros bytes de informao aps a abertura da conexo. Se um
programa rodando na placa recebe alguma configurao ou outra informao
quando comea a rodar esteja seguro de que o software com o qual ela se comunica
espere por um segundo antes de comear a enviar dados.
Thalis Antunes www.thalisantunes.com.br | 17

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

O Uno contem uma trilha que pode ser interrompida (cortada fisicamente) para
desabilitar o auto-reset. Os conectores de cada lado da trilha podem ser soldados
para reabilitar esta funo. Ela est identificada como "RESET-EN". Voc tambm
pode desabilitar o auto-reset conectando um resistor de 110 do 5V linha de reset,
veja este tpico do frum para mais detalhes.

5.8 Proteo contra sobre-corrente na USB


O Arduino Uno possui um polyfuse resetvel que protege a porta USB do seu
computador contra sobre-corrente e curots circutos. Embora muitos computadores
tenham sua prpria proteo interna, o fuso fornece uma camada a mais de
proteo. Se mais de 500mA forem aplicados a porta USB ele automaticamente ir
interromper a conexo at que o curto ou a sobrecarga seja removido.

5.9 Caractersticas fsicas


A largura e o comprimento mximos do PCB do Uno so 68,58 e 53,34mm
respectivamente (2,7" x 2,1"), com os conectores USB e de alimentao
extendendo-se alm destas dimenses. Quatro orifcios para parafusos permitem
que a placa seja fixada a uma superfcie ou encapsulamento. Verifique que a
distncia entre os pinos digitais 7 e 8 de 160mil (milsimos de polegada ou 0,16"),
no nem mesmo um mltiplo dos 100mil que separam os outros pinos.

Thalis Antunes www.thalisantunes.com.br | 18

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 1 - Arduino Uno

5.10 Shields

Figura 2 - Shield Relay

6 Starter Kit

Thalis Antunes www.thalisantunes.com.br | 19

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

6.1 Laboratrio de Garagem


O Laboratrio de Garagem uma iniciativa voltada para a integrao, colaborao e
apoio aos desenvolvedores independentes de cincia e tecnologia, ou como
gostamos de ser chamados: garagistas.
Uma rede social, um laboratrio comunitrio localizado em So Paulo, uma
incubadora, uma loja virtual e um grupo de pessoas que acreditam que a prxima
revoluo pode (e vai) sair de uma garagem, ainda mais se ela estiver conectada a
muitas outras garagens.
O kit utilizado no mini curso foi adquirido na loja Laboratrio de Garagem e entregue
em uma caixa personalizada.

Figura 3 - Kit Starter da loja Laboratrio de Garagem

6.2 Itens

Thalis Antunes www.thalisantunes.com.br | 20

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 4 - Itens do kit dentro da caixa

Figura 5 - Itens do kit starter

6.2.1 Cabo USB

Thalis Antunes www.thalisantunes.com.br | 21

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 6 - Cabo USB A-B

6.2.2 Protoboard

Figura 7 - Protoboard

6.2.3 Jumpers

Figura 8 - Jumpers para protoboard

6.2.4 Display LCD

Thalis Antunes www.thalisantunes.com.br | 22

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 9 - LCD 2x16 com backlight

Figura 10 - Fundo do LCD 2x16

Figura 11 - Datasheet dos pinos

6.2.5 Arduino UNO

Thalis Antunes www.thalisantunes.com.br | 23

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 12 - Arduino Uno

Thalis Antunes www.thalisantunes.com.br | 24

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 13 - Arduino Uno

Figura 14 - Pinout do Arduino Uno

Thalis Antunes www.thalisantunes.com.br | 25

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 15 - Detalhe do pinout do Arduino Uno

Figura 16 - Conector USB e de Alimentao

Thalis Antunes www.thalisantunes.com.br | 26

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 17 - Detalhe do boto de reset

Figura 18 - Detalhe do led ON e conector ICSP

Thalis Antunes www.thalisantunes.com.br | 27

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 19 - Detalhe para o conversor USB/Serial e Leds de TX e RX

6.2.6 Resistores

6.2.6.1 Resistor 10 K

Figura 20 - Resistores de 10K

6.2.6.2 Resistor 330 R

Thalis Antunes www.thalisantunes.com.br | 28

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 21 - Resistores de 330R

6.2.7 LEDs

6.2.7.1 LED Verde

Figura 22 - Led Verde

6.2.7.2 LED Amarelo

Thalis Antunes www.thalisantunes.com.br | 29

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 23 - Led Amarelo

6.2.7.3 LED Vermelho

Figura 24 - Led Vermelho

6.2.8 Potenciometro Linear 10K

Thalis Antunes www.thalisantunes.com.br | 30

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 25 - Potencimetro 10K

6.2.9 Sensor de Temperatura LM35

Figura 26 - Sensor de Temperatura LM35

Thalis Antunes www.thalisantunes.com.br | 31

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

6.2.10 Buzzer Contnuo

6.2.11 Push Button

Figura 27 - Push Button

Thalis Antunes www.thalisantunes.com.br | 32

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 28 - Terminais do Push Button

Figura 29 - Detalhe do Push Button

7 Electronic design automation (ECAD)


7.1 Fritzing

8 Prticas
8.1 Analog
8.1.1 Input

8.1.1.1 Potentiometer

Thalis Antunes www.thalisantunes.com.br | 33

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 30 - Protoboard

Figura 31- Esquemtico

Thalis Antunes www.thalisantunes.com.br | 34

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 32 - PCB

Cdigo Fonte:
int sensorPin = A0; // select the input pin for the potentiometer
int ledPin = 13;
// select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor
void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
// turn the ledPin on
digitalWrite(ledPin, HIGH);
// stop the program for <sensorValue> milliseconds:
delay(sensorValue);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
// stop the program for for <sensorValue> milliseconds:
delay(sensorValue);
}

8.2 Digital
8.2.1 Input

8.2.1.1 Button

Thalis Antunes www.thalisantunes.com.br | 35

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 33 - Protoboard

Figura 34 - PCB

Figura 35 - Esquemtico

Cdigo Fonte:
int ledPin = 13;
int inputPin = 2;
int val = 0;

// choose the pin for the LED


// choose the input pin (for a pushbutton)
// variable for reading the pin status

void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(inputPin, INPUT);
}

// declare LED as output


// declare pushbutton as input

Thalis Antunes www.thalisantunes.com.br | 36

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

void loop(){
val = digitalRead(inputPin); // read input value
Serial.println(val);
if (val == HIGH) {
// check if the input is HIGH
digitalWrite(ledPin, LOW); // turn LED OFF
} else {
digitalWrite(ledPin, HIGH); // turn LED ON
}
}

8.2.2 Output

8.2.2.1 Blink

Figura 36 - Protoboard

Figura 37 - Esquemtico

Thalis Antunes www.thalisantunes.com.br | 37

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 38 - PCB

Cdigo Fonte:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000);
// wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000);
// wait for a second
}

8.2.2.2 Loop

Figura 39 - Protoboard

Thalis Antunes www.thalisantunes.com.br | 38

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 40 - Esquemtico

Figura 41 - PCB

Cdigo Fonte
int timer = 100;
// The higher the number, the slower the timing.
int pins[] = { 2, 3, 4, 5, 6, 7 }; // an array of pin numbers
int num_pins = 6;
// the number of pins (i.e. the length of the array)
void setup()
{
int i;
for (i = 0; i < num_pins; i++) // the array elements are numbered from 0 to num_pins - 1
pinMode(pins[i], OUTPUT);
// set each pin as an output
}
void loop()
{
int i;
for (i = 0; i < num_pins; i++) { // loop through each pin...
digitalWrite(pins[i], HIGH); // turning it on,
delay(timer);
// pausing,
digitalWrite(pins[i], LOW); // and turning it off.
}
for (i = num_pins - 1; i >= 0; i--) {
digitalWrite(pins[i], HIGH);
delay(timer);
digitalWrite(pins[i], LOW);
}

Thalis Antunes www.thalisantunes.com.br | 39

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO
}

8.2.2.3 Traffic Light

Figura 42 - Protoboard

Figura 43 - Esquemtico

Figura 44 - PCB

Cdigo Fonte:
int carRed = 12;
int carYellow = 11;
int carGreen = 10;
int pedRed = 9;
int pedGreen = 8;

Thalis Antunes www.thalisantunes.com.br | 40

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO
int pedBtn = 2;
int val = 0;
void setup() {
pinMode(pedRed, OUTPUT);
pinMode(pedGreen, OUTPUT);
pinMode(carRed, OUTPUT);
pinMode(carYellow, OUTPUT);
pinMode(carGreen, OUTPUT);
pinMode(pedBtn, INPUT);
}
void loop(){
digitalWrite (pedRed, HIGH);
digitalWrite (carGreen, HIGH);
val = digitalRead(pedBtn);
if (val == HIGH) {
delay(2000);
digitalWrite(carGreen, LOW);
digitalWrite(carYellow, HIGH);
delay(3000);
digitalWrite(carYellow, LOW);
digitalWrite(carRed, HIGH);
delay(3000);
digitalWrite(pedGreen, HIGH);
digitalWrite(pedRed, LOW);
delay(10000);
digitalWrite(pedGreen, LOW);
digitalWrite(pedRed, HIGH);
delay(3000);
digitalWrite(carYellow, HIGH);
delay(3000);
digitalWrite(carYellow, LOW);
digitalWrite(carRed, LOW);
}
}

8.3 Light
8.3.1 Display

8.3.1.1 PrintData

Thalis Antunes www.thalisantunes.com.br | 41

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 45 - Protoboard

Figura 46 - Esquemtico

Figura 47 - PCB

Cdigo Fonte:
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");

Thalis Antunes www.thalisantunes.com.br | 42

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}

8.3.2 Led

8.3.2.1 Analog In / Out (Pot and LED)

Figura 48 - Protoboard

Figura 49 - Esquemtico

Thalis Antunes www.thalisantunes.com.br | 43

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 50 - PCB

Cdigo Fonte
int sensorPin = A3; // select the input pin for the potentiometer
int ledPin = 3;
// select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor
void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
// turn the ledPin on
digitalWrite(ledPin, HIGH);
// stop the program for <sensorValue> milliseconds:
delay(sensorValue);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
// stop the program for for <sensorValue> milliseconds:
delay(sensorValue);
}

8.3.2.2 Color Fader (RGB LED)

Figura 51 - Protoboard

Thalis Antunes www.thalisantunes.com.br | 44

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 52 - Esquemtico

Figura 53 - PCB

Cdigo Fonte:
int LEDGreen=9;
int LEDBlue=10;
int LEDRed=11;

int sensorPin=0;
int val;
void setup(){
Serial.begin(9600);
pinMode(LEDRed,OUTPUT);
pinMode(LEDGreen,OUTPUT);
pinMode(LEDBlue,OUTPUT);
}
void loop(){
val=map(analogRead(sensorPin),0,1024,0,900);
Serial.println(val);
if (val<150) {
analogWrite(LEDRed,0);
analogWrite(LEDBlue,255);
analogWrite(LEDGreen,255);
} else if (val<300) {

Thalis Antunes www.thalisantunes.com.br | 45

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO
analogWrite(LEDRed,map(val,150,300,0,255));
analogWrite(LEDBlue,map(val,150,300,255,0));
analogWrite(LEDGreen,255);
} else if (val<450) {
analogWrite(LEDRed,255);
analogWrite(LEDBlue,0);
analogWrite(LEDGreen,255);
} else if (val<600) {
analogWrite(LEDRed,255);
analogWrite(LEDBlue,map(val,450,600,0,255));
analogWrite(LEDGreen,map(val,450,600,255,0));
} else if (val<750) {
analogWrite(LEDRed,255);
analogWrite(LEDBlue,255);
analogWrite(LEDGreen,0);
} else if (val<900) {
analogWrite(LEDRed,map(val,750,900,255,0));
analogWrite(LEDBlue,255);
analogWrite(LEDGreen,map(val,750,900,0,255));
}
delay(10);
}

8.4 Sensors
8.4.1 Temperature

8.4.1.1 Temperature Sensors

Figura 54 - Protoboard

Thalis Antunes www.thalisantunes.com.br | 46

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 55 - Esquemtico

Figura 56 - PCB

Cdigo Fonte:
float temperature;
int sensorPin = 0;
int startTemp=20;
void setup()
{
Serial.begin(9600);
for (int i=2;i<8; i++){
pinMode(i,OUTPUT);
}
}

// stores the temperature


// pin where the sensor is connected to
// the start temperature > at this temperature, no LED will light up

// initialisation of the serial connection


// output channels from 2 to 7
// pin is a output

void loop()
{
temperature = analogRead(sensorPin); // reading analog sensor value
temperature = temperature*0.488;
// correcting to C

Thalis Antunes www.thalisantunes.com.br | 47

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

for (int i=0;i<8; i++){


if (temperature>((i*2)+startTemp)){
// switch LED on, if temperature is higher than starttemp +
(LED number*2)
digitalWrite(i,HIGH);
}
else {
digitalWrite(i,LOW);
// else, switch it off
}
}
Serial.print(temperature);Serial.println(" C"); // send the temperarue to the serial monitor
delay(500);
// just wait a little
}

8.5 Sound
8.5.1 Melody

Figura 57 - Protoboard

Thalis Antunes www.thalisantunes.com.br | 48

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO

Figura 58 - Esquemtico

Figura 59 - PCB

Cdigo Fonte:
int speakerPin = 11;
int length = 15; // the number of notes
char notes[] = "ccggaagffeeddc "; // a space represents a rest
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;
void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
digitalWrite(speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin, LOW);
delayMicroseconds(tone);
}
}

Thalis Antunes www.thalisantunes.com.br | 49

FUNDAO EDUCACIONAL MONTES CLAROS FEMC


FACULDADE DE CINCIA E TECNOLOGIA DE MONTES CLAROS FACIT
ENGENHARIA DE COMPUTAO
LABORATRIO DE SISTEMAS COMPUTACIONAIS
INTRODUO COMPUTAO FSICA COM ARDUINO
void playNote(char note, int duration) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
// play the tone corresponding to the note name
for (int i = 0; i < 8; i++) {
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}
void setup() {
pinMode(speakerPin, OUTPUT);
}
void loop() {
for (int i = 0; i < length; i++) {
if (notes[i] == ' ') {
delay(beats[i] * tempo); // rest
} else {
playNote(notes[i], beats[i] * tempo);
}
// pause between notes
delay(tempo / 2);
}
}

Thalis Antunes www.thalisantunes.com.br | 50

Você também pode gostar