Anda di halaman 1dari 35

Alexandre Barbosa de Oliveira

https://sites.google.com/site/ectifam/
Aula de hoje:
Arduino e seus Pinos
Conhecendo o hardware
Um pouco de histria do arduino
Microcontroladores e arduino
Noes de converso A/D
Pinos e suas funes
Sinal PWM, a mmica analgica
Limitaes

Conhecendo os softwares
Compilador do fabricante e opcionais
Processing, leitor da USB

Protocolos e comunicaes que no sero abordados

Prticas


10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 2
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 3
Workshops dos desenvolvedores e seus conceitos:
https://dl.dropbox.com/u/5360454/IFAM/Arduino_Massimo.pdf
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 4
http://arduino.cc/en/Main/Products
Microcontroladores so computadores e possuem suas centrais de processamento (CPUs)
que executam tarefas especficas e limitadas quando comparadas aos PCs

Microcontrolador microprocessador

Possuem diversas famlias (8051, AVR, PIC, etc.) que se diferenciam por diversas
caractersticas, velocidade de processamento, arquitetura, limite de memria, existncia
de sinais PWM, interfaces disponveis, etc.

H diversos textos na internet sobre microcontroladores, desde sua histria at seu
funcionamento detalhado como clocks e arquiteturas

O objetivo deste curso no abordar os detalhes do funcionamento de
microcontroladores, mas fazer uso de suas funes na instrumentao cientfica

Caractersticas bsicas dos microcontroladores que devemos levar em considerao so
nmero de bits usado no processamento pela CPU (8bits p/ arduino), clock da CPU (8MHz
ou 16MHz p/ arduino), memria flash (16 KB, 32 KB, 256 KB) e tipo e resoluo do conversor
A/D (aproximao sucessiva e 10-bit p/ arduino)
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 5
Os microcontroladores usados nas placas do arduino
so do fabricante Atmel, tipo AVR:
http://www.atmel.com/products/microcontrollers/av
r/megaavr.aspx

Trabalham em 8 MHz ou 16 MHz. Podem possuir 16
KB, 32 KB ou 256 KB de memria para armazenar o
cdigo

O arduino uno no constitudo apenas do
microcontrolador central (ATmega328). Ele tambm
possui circuitos de proteo (alguns),
microcontrolador ATmega8u2 (controlador da usb) e
circuito para alimentao externa


10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 6
As principais caractersticas de um conversor AD so: tcnica de
converso (determina a taxa de amostragem) e resoluo do conversor
(tambm influencia a taxa de amostragem)

Existem vrias tcnicas de converso AD: codificao paralela (flash AD),
comparador de rampa, aproximao sucessivas, Wilkinson, etc.

Ilustrao da converso analgica-digital:
http://educypedia.karadimov.info/library/analo-num-synth-2.swf

analogRead(), from http://arduino.cc/en/Reference/analogRead
Description
Reads the value from the specified analog pin. The Arduino board contains a 6 channel (8
channels on the Mini and Nano, 16 on the Mega), 10-bit analog to digital converter. This
means that it will map input voltages between 0 and 5 volts into integer values between 0
and 1023. This yields a resolution between readings of: 5 volts / 1024 units or, .0049 volts (4.9
mV) per unit. The input range and resolution can be changed using analogReference().

It takes about 100 microseconds (0.0001 s) to read an analog input, so the maximum reading
rate is about 10,000 times a second.
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 7
Considerando o tempo mnimo entre duas medidas analgicas de 100 s, estime a
maior frequncia de um sinal AC harmnico que o arduino capaz de medir
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 8
0 20 40 60 80 100 120 140 160 180 200
-1.2
-1.0
-0.8
-0.6
-0.4
-0.2
0.0
0.2
0.4
0.6
0.8
1.0
1.2
V
o
l
t
a
g
e
m

(
V
)
Tempo (s)
100 s
100 s
100 s
-1.2
-1.0
-0.8
-0.6
-0.4
-0.2
0.0
0.2
0.4
0.6
0.8
1.0
1.2
V
o
l
t
a
g
e
m

(
V
)
Tempo
kHz
T
f
s T s
T
mn
mx
mn
mn
25 , 1
1
800 100
8


10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 9
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 10
From http://en.wikipedia.org/wiki/Analog-to-digital_converter: A successive-approximation
ADC uses a comparator to successively narrow a range that contains the input voltage. At each
successive step, the converter compares the input voltage to the output of an internal digital to
analog converter which might represent the midpoint of a selected voltage range. At each step in
this process, the approximation is stored in a successive approximation register (SAR). For
example, consider an input voltage of 6.3 V and the initial range is 0 to 16 V. For the first step,
the input 6.3 V is compared to 8 V (the midpoint of the 016 V range). The comparator reports
that the input voltage is less than 8 V, so the SAR is updated to narrow the range to 08 V.
For the second step, the input voltage is compared to 4 V (midpoint of 08). The comparator
reports the input voltage is above 4 V, so the SAR is updated to reflect the input voltage is in
the range 48 V. For the third step, the input voltage is compared with 6 V (halfway between
4 V and 8 V); the comparator reports the input voltage is greater than 6 volts, and search
range becomes 68 V. The steps are continued until the desired resolution is reached.
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 11
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 12
Conhecendo o hardware
Um pouco de histria do arduino
Microcontroladores e arduino
Noes de converso A/D
Pinos e suas funes
Sinal PWM, a mmica analgica
Limitaes

Conhecendo os softwares
Compilador do fabricante e opcionais
Processing, leitor da USB

Protocolos e comunicaes que no sero abordados

Prticas
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 13
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 14
http://arduino.cc/en/Main/ArduinoBoardUno
Pinos de alimentao (Power pins):
VIN: Alimentao complementar ao jack e aos 5V da
USB. Por segurana alimentar o arduino
externamente 7 at 12V (verificar polaridade
correta)

5V: Sada 5V do regulador de tenso interno.
Mesmo alimentando externamente (7 a 12 volts), a
voltagem neste pino fica em 5V (limite de 50 mA).
No fornecer alimentao externa pelos pinos de 5V
e 3.3V pois isto ignora o regular e pode danificar a
placa permanentemente

3V3: Voltagem de 3,3V fornecida pelo regulador de
voltagem interno. Muito usada em alguns sensores
(acelermetros e giroscpios). Corrente mxima de
50mA

GND: Pino terra
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 15
Todos os 14 pinos digitais podem ser configurados como entrada e sada,
usando as funes pinMode(), digitalWrite(), e digitalRead(). Eles operam
em 5 V (nvel alto). O valor mximo de corrente que cada pino pode
receber ou fornecer 40 mA. Eles tambm possuem um resistor pull-
up interno de 20-50 k (desconectado por default)

PWM: 3, 5, 6, 9, 10, and 11. Esses pinos so a sada analgica do
arduino. Fornecem voltagem tipo PWM de 8-bit atravs da funo
analogWrite()

A placa Uno possui 6 entradas analgicas (A0 at A5). Seu conversor /D
possui 10-bit de resoluo. Ele usado para digitalizar valores de 0 5V
(no possvel digitilizar sinais abixo do terra, negativo). possvel
modificar o nvel superior (5V) atravs do pino AREF e com o uso da
funo analogReference(). Com isso possvel aumentar a resoluo ao
custo da diminuio do intervalo de voltagem medido
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 16
O arduino no capaz de gerar sinal analgico puro. Ele usa
recursos de eletrnica digital para gerar voltagem que, para
alguns dispositivos, parecem analgicas

Considere um sinal digital como ilustrado abaixo. Do ponto de
vista matemtico, qual o valor mdio deste sinal?
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 17
0 50 100 150 200 250 300 350 400 450 500 550 600
0
1
2
3
4
5
6
V
o
l
t
a
g
e
m

(
v
o
l
t
s
)
Tempo (ms)
Para alguns dispositivos, por exemplo
LEDs, este tipo de sinal visto como
analgico, pois sua resposta temporal no
percebe o tempo em que a voltagem fica
nula

Qual ser a frequncia do sinal PWM
gerado pelo arduino? importante saber
este valor para decidir a compatibilidade
desta voltagem analgica com o
dispositivo usado
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 18
Conhecendo o hardware
Um pouco de histria do arduino
Microcontroladores e arduino
Noes de converso A/D
Pinos e suas funes
Sinal PWM, a mmica analgica
Limitaes

Conhecendo os softwares
Compilador do fabricante e opcionais
Processing, leitor da USB

Protocolos e comunicaes que no sero abordados

Prticas


10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 19
Instalando e testando o compilador do
fabricante: http://arduino.cc/en/Guide/Windows

Java e arduino:
http://arduino.cc/playground/Interfacing/Java
http://www.cafecomjava.com.br/tag/arduino/

Python e arduino:
http://arduino.cc/playground/Interfacing/Python
http://blog.justen.eng.br/

10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 20
Existem diversas formas de ler a porta USB do
arduino, java, python, C, ou qualquer linguagem que
possua bibliotecas para comunicao via USB

Neste curso recomendarei o processing:
http://processing.org/download/

Vantagens: livre, vrios exemplos dos
desenvolvedores do arduino so para o processing, e
diversas ferramentas grficas

Desvantagem: linha de comando e no possui
orientao a objeto
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 21
Conhecendo o hardware
Um pouco de histria do arduino
Microcontroladores e arduino
Noes de converso A/D
Pinos e suas funes
Sinal PWM, a mmica analgica
Limitaes

Conhecendo os softwares
Compilador do fabricante e opcionais
Processing, leitor da USB

Protocolos e comunicaes que no sero abordados

Prticas


10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 22
Ethernet Library: possibilidade de tranformar
o arduino num servidor para armazenar
arquivos em rede

EEPROM Library: acesso a memria no
voltil do arduino (512 bytes)

SPI Library: comunicao com dispositivos
(sensores e atuadores) com interface SPI
(Serial Peripheral Interface)


10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 23
Conhecendo o hardware
Um pouco de histria do arduino
Microcontroladores e arduino
Noes de converso A/D
Pinos e suas funes
Sinal PWM, a mmica analgica
Limitaes

Conhecendo os softwares
Compilador do fabricante e opcionais
Processing, leitor da USB

Protocolos e comunicaes que no sero abordados

Prticas


10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 24
Existem 6 sadas tipo PWM. Use 5 dessas sadas
em valores de voltagem diferentes (1V, 2V, 3V,
4V e 5V)

Com o auxlio do osciloscpio, observe e
descreva a voltagem de sada (tipo de onda,
perodo, frequncia, tempo em nvel alto e
tempo em nvel baixo)

Em cada sada PWM, mea o valor da voltagem
com o voltmetro no modo DC. Quais os valores
obtidos?
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 25
Na prtica anterior vocs devem ter verificado que a frequncia do sinal
PWM no modificada

possvel modificar a frequncia do sinal PWM modificando o valor de
registros internos do microcontrolador. Isto til quando a frequncia do
sinal PWM provoca efeitos indesejados como zumbidos em motores

No arduino uno existem trs registros que controlam a frequncia do
sinal PWM: TCCR0B, TCCR1B e TCCR2B. Para escrever o valor nestes
registros, basta usar o cdigo abaixo:
TCCRnB = (TCCRnB & B11111000) | valor //so duas operaes lgicas realizadas bit a bit

Maiores detalhes em http://arduino.cc/en/Reference/BitwiseAnd

O valor de valor deve ser entre 1 e 7. No alterar o valor do registro de
TCCR0B, pois ir afetar as funes de contagem de tempo disponveis no
arduino

Verifique a funcionalidade dos pinos digitais com o multmetro e
osciloscpio
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 26
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 27
O LED (light emitting diode), ou diodo emissor de luz, um
dispositivo semicondutor. A emisso de fton (luz) no
visvel decorre de um processo de recombinao de
eltrons e buracos na juno p-n de semicondutores de gap
direto. O processo de recombinao de eltrons e buracos
ocorre quando polarizamos o LED de forma direta com uma
voltagem externa

O comprimento de onda do fton depende da natureza
qumica da juno semicondutora

Usando a sada PWM, faa um algoritmo para variar a
intensidade do LED

Use o LED RGB para produzir luz de diferentes cores e
intensidades




10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 28


10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 29
O potencimetro um resistor cuja resistncia pode ser
controlada atravs do posicionamento de um cursor

Use o potencimetro como um divisor de tenso (GND e 5V do
arduino) e faa um algoritmo para ler a voltagem sobre o terminal
W do potencimetro

O valor da voltagem deve ser enviado para a porta USB. Use o
processing para fazer um grfico e salvar o arquivo
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 30
O potencimetro da prtica anterior pode
funcionar como um sensor para regular a
intensidade do LED

Faa um algoritmo e as conexes necessrias
para controlar a intensidade do LED com o
potencimetro


10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 31
Resistores nas configuraes pull-up e pull-
down so importantes na comunicao digital

Para entender a importncia dessas
configuraes, mea com um voltmetro e com
o comando readDigital() o valor de qualquer
porta digital quando no h nada conectado a
mesma

Habilite o resistor pull-up interno do arduino e
refaa as medidas anteriores

Execute os exemplos ao lado e verifique a
inverso de lgica liga-desliga existente.
Cuidado com os valores dos resistores para no
ultrapassar 40 mA nas portas digitais
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 32
Use o circuito abaixo, onde a voltagem de 5V do arduino, para levantar
a curva IV de cada cor do LED RGB e do diodo de silcio

Pense cuidadosamente no valor de R a ser usado. No queima o arduino,
nem o diodo!

Mea a voltagem sobre R e sobre o LED, fazendo o grfico I x V

A partir disso determine o comprimento de onda da luz emitida pelo LED

Faa os grficos para LEDs de diferentes cores
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 33
Mea, com o osciloscpio, o sinal gerado pelo teclado ao
pressionar as teclas

Pense numa maneira de identificar a tecla pressionada. Use as
portas digitais do arduino para medir o sinal gerado pelo teclado e
descobrir a tecla pressionada
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 34
http://www.computer-engineering.org/ps2protocol/


FIM
10/02/2014 Instrumentao em Fsica Aplicada com Microcontroladores - IFAM 35