Sunteți pe pagina 1din 16

Universidade Federal Fluminense

Escola de Engenharia
Curso de Engenharia de Telecomunicaes

Tpicos Especiais em Eletrnica II


Introduo ao microcontrolador Arduino

Roteiros de aula
(Verso: A2013M11D14)

Autores: Roberto Brauer Di Renna

Thiago Elias Bittencourt Cunha

Professor: Alexandre Santos de la Vega

Niteri-RJ
Fevereiro / 2013
1 Introduo, apresentao do kit e microcontrolador

1 Introduo, apresentao
do kit e microcontrolador
Data: .................................
Grupo: .................................
Aluno: .................................
Aluno: .................................

1. Desenhe na Figura 1 a ligao das trilhas


do protoboard.
2. Complete a tabela referente a cada com-
ponente presente na placa do Arduino
UNO, representado na Figura 2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Figura 2: Arduino UNO.

Figura 1: Protoboard.

Universidade Federal Fluminense 1


2 Funes, Blink, Acender LED

2 Funes, Blink, Acender


LED
Data: .................................
Grupo: .................................
Aluno: .................................
Aluno: .................................
1. Na aula de hoje, foram apresentadas
funes importantes que usaremos nas
prximas prticas. Dentre elas, temos a
digitalWrite(), que atribui valores de
e para um pino digital.

Se um pino foi congurado como OUT-


PUT, sua tenso ser tipada como os
seguintes valores correspondentes:
V (ou 3.3V nas placas de 3.3V) para Figura 3: Circuito acender LED.
, V (terra) para .

Se um pino foi congurado como INPUT,


colocando um valor do tipo usando
digitalWrite() habilitar um resistor in-
terno pullup de 20K. Escrevendo
ir desabilitar o pullup. O resistor pullup
suciente para acender um vaga-
mente, por isso, se os LEDs funcionarem,
mas de forma fraca, esta uma causa
provvel. O remdio para denir o pino
para uma sada com a funo pinMode
().
2. A Figura 3 abaixo ilustra o circuito da
prtica de hoje. Esse circuito funcionar
ou no? Justique.

3. A Figura 4 mostra um LED em detalhe.


Complete a gura mostrando sua polar-
Figura 4: Polarizao do LED.
izao.

Universidade Federal Fluminense 2


3 Botes que acendem LEDs RGB

3 Botes que acendem 4. Escreva um trecho de cdigo cujo somente


um LED RGB acenda primeiro da cor
LEDs RGB amarela, depois da cor magenta variando
Data: ................................. sua intensidade luminosa da mais alta
Grupo: ................................. para a mais baixa.
Aluno: .................................
Aluno: .................................
1. Na aula de hoje, alm de usarmos a
funo digitalWrite(), tambm usamos
a funo analogWrite() para variar
a intensidade luminosa dos LEDs .
Essa funo s funciona quando usamos
as sadas . O mecanismo contido
nessas sadas permite controlar o perodo
cclico da frequncia da alimentao. A
funo escreve um valor de
para o pino digital que pode variar de
a , quanto mais alto o valor
escrito, maior a intensidade luminosa do
LED.
2. A gura 5 abaixo mostra um LED RGB
em detalhe. Complete sua pinagem.

Figura 5: LED RGB.

3. No nicio da programao da funo


void loop () aparece este pequeno tre-
cho:

estadoBotao_1 = digitalRead(boto_1);
estadoBotao_2 = digitalRead(boto_2);
estadoBotao_3 = digitalRead(boto_3);

Descreva o funcionmento da funo


digitalRead() usando de exemplo esse
trecho.

Universidade Federal Fluminense 3


4 Interao teclado microcontrolador.

4 Interao teclado micro- 2. A funo Serial Monitor muito usada


para (escolha uma opo):
controlador.
Data: ................................. a) Mostrar valores lidos.
Grupo: ................................. b) Mostrar no monitor o circuito mon-
Aluno: ................................. tado.
Aluno: ................................. c) Interpretar sinais.
1. Na prtica de hoje, acendemos um LED d) Mostrar valores automaticamente
com uma tecla do teclado. Faa agora com nas escalas do Sistema Internacional.
uma tecla para apagar e uma para acen- 3. Como enviamos sinal de tenso para acen-
der. Escreva abaixo o cdigo criado. der e apagar um LED, escolhemos um pino
digital ao invs de um analgico porque
(escolha uma opo):
a) O pino digital mantm a tenso con-
stante em 5v.
b) O pino digital envia sinais de HIGH
e LOW quando for desejado.
c) H mais pinos digitais do que analg-
icas.
d) No fazia diferena optar por um
pino analgico.
4. As funes Serial.begin(), Se-
rial.ush,Serial.read() e Se-
rial.print() servem para (escolha
uma opo):
a) Inicia o programa, esvazia o buer,
l o valor da porta serial, mostra os
dados na tela.
b) Determina a taxa de bits por se-
gundo, esvazia o buer, l o valor da
varivel serial, escreve na tela.
c) Inicia o programa, controla a trans-
misso de todos os dados do tipo se-
rial e esvazia o buer da porta de
entrada, l o valor da varivel serial,
mostra os dados na tela.
d) Determina a taxa de bits por se-
gundo, controla a transmisso de to-
dos os dados do tipo serial e esvazia o
buer da porta de entrada, l o valor
da porta serial, mostra os dados na
tela.

Universidade Federal Fluminense 4


5 Funes de temporizao , delay(),millis()e micros(). Comeando a comunicao serial

5 Funes de temporizao 3. Utilizando as funes apresentadas


propomos a montagem de um semforo
, delay(),millis()e mi- que que com a luz verde ligada por
cros(). Comeando a co- 3 segundos, a luz vermelha por 2 e a
amarela por 1 segundo.
municao serial
Data: ................................. Propomos tambm que ao nal de cada
Grupo: ................................. sinal fechado uma varivel temporal seja
Aluno: ................................. printada na Serial Monitor com o valor
Aluno: ................................. em milissegundos em que o programa es-
teve em execuo.
1. Apresentamos na aula de hoje funes
de temporizao que foram a funo 4. Desenhe na caixa abaixo o diagrama de
, a funo e a ligao dos componentes utilizados no
funo . item anterior.

Vimos que a funo delay() responvel


por pausar o programa por um tempo
determinado em . J as
funes e micros() retornam
em milissegundos e , respec-
tivamente, o tempo que o programa est
em execuo.

2. Na aula de hoje aprendemos a funo


Serial.print(). Escreva na caixa abaixo
um pequeno trecho de cdigo utilizando-a
para escrever na Serial Monitor o valor
admitido por uma varivel qualquer que
tenha nela armazenado o tempo, em
microssegundos ,que o programa est em
execuo.

Universidade Federal Fluminense 5


6 Funes sonoras

6 Funes sonoras 2. Complete a tabela abaixo:


Data: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nota Frequncia (Hz) Tecla usada
Grupo: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D
Aluno: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R
Aluno: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MI
F
1. Complete a descrio da funo usada na SOL
aula de hoje: L
SI
tone()
3. Escreva abaixo o cdigo da msica progra-
Gera uma onda quadrada de frequncia mada:
especicada (e 50 % ciclo de trabalho) em
um pino. A durao pode ser especicada,
caso contrrio, a onda continua at que
uma chamada para . O pino
pode ser ligado a um buzzer piezoeltrico,
ou outro alto-falante para reproduzir sons.

Apenas um tom pode ser gerado de cada


vez. Se um tom j est tocando em um
pino diferente, a chamada para a tone()
no ter nenhum efeito. Se o tom est
jogando no mesmo pino, a chamada ir
denir a sua frequncia.

Utilizao da tone() ir interferir na sada


nos pinos 3 e 11 (todas as pla-
cas exceto Arduino MEGA).
No possvel gerar tons inferiores a 31Hz.

NOTA: se voc quiser jogar alturas difer-


entes em vrios pinos, voc precisa chamar
noTone () em um pino antes de chamar
a tone() no prximo pino.
Sintaxe

tone( , )
ou
tone( , , )

Universidade Federal Fluminense 6


7 Leitura de sensores analgicos , analog.Read(), Sensor de luminosidade LDR

7 Leitura de sensores 3. Utilizamos nesta aula o sensor de lumi-


nosidade LDR.
analgicos , ana-
log.Read(), Sensor de
luminosidade LDR
Data: .................................
Grupo: .................................
Aluno: .................................
Aluno: ................................. Figura 6: LDR.

1. Na aula de hoje compreendemos melhor Este sensor nada mais do que uma re-
o uso da funo analog.Read(). Vimos sistncia que varia de acordo com
que esta funo utilidada para a luminosidade incidida. Observamos que
de um dos pinos especco. quanto maior a luminosidade incidente
era a tenso lida pelo Arduino e
Estudamos tambm o conceito de quan- quanto menor a luminosidade era
tizao e descobrimos como funciona a tenso lida.
o conversor A/D do Arduino. Sendo
este conversor, um conversor com uma 4. Desenhe abaixo o diagrama utilizado para
resoluo de , teremos uma escala a leitura do sensor LDR :
com 1024 valores quantizados variando
de a . Tendo assim uma
resoluo de leitura de para cada
unidade de medida em uma escala entre
de 0 e 5 volts.

2. Descreva com suas palavras o funciona-


mento do processo de quantizao e a
leitura analgico-digital feita pelo Ar-
duino.

. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................

Universidade Federal Fluminense 7


8 Leitura do Sensor de temperatura LM335A, analog.Read(), Funes matemticas bsicas

8 Leitura do Sensor de Utilizamos esta mesma funo para de-


terminar a temperatura lida pelo sensor.
temperatura LM335A, Para isso, vimos em aula, que para cada
analog.Read(), Funes lidos pelo arduino tinhamos uma
elevao de 1 k.
matemticas bsicas
Assim para sabermos a temperatura em
Data: ................................. graus Celsius basta diminuir a temper-
Grupo: ................................. atura lida em kelvin por .
Aluno: .................................
Aluno: ................................. 3. Elabore um script que leia a temperatura
do sensor LM335A e que a partir de uma
1. Na aula de hoje utilizamos o sensor de temperatura escolhida toque um som de
temperatura LM335A e a funo ana- alarme no buzzer.
log.Read() para lermos o valor de
e identicarmos a temperatura correspon-
dente.
Abaixo apresentamos o sensor. Identique
sua pinagem.

Figura 7: LM335A.

1- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. No relatrio anterior estudamos a funo
analog.Read() e vimos como funciona o
conversor A/D do Arduino. Vimos que o
conversor possui uma resoluo de ,
que calculada dividindo por
, que a quantidade de valores
quantizados.

Universidade Federal Fluminense 8


9 Comunicao RF, VirtualWire.h, Transmissor e Receptor RF

9 Comunicao RF, Virtu- 3. Elabore um script que envie o valor de


tenso lida em um potencimetro pelo ar-
alWire.h, Transmissor e duino transmissor e ao receber uma tenso
Receptor RF superior a 3,0V o arduino receptor acenda
um led vermelho.
Data: .................................
Grupo: .................................
Aluno: .................................
Aluno: .................................

1. Identique a pinagem do Receptor RF


abaixo:

Figura 8: Receptor RF.

1- .................................
2- .................................
3- .................................
4- .................................
5- .................................
6- .................................
7- .................................
8- .................................
2. Identique a pinagem do Transmissor RF
abaixo:

Figura 9: Transmissor RF.

1- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Universidade Federal Fluminense 9


10 Comunicao IR, NECIRrcv.h, Controle Remoto IR

10 Comunicao IR, 2. Com as teclas identicadas na questo an-


terior crie um script que acione o arduino
NECIRrcv.h, Controle com o controle remoto de forma que ele al-
Remoto IR terne entre 6 efeitos luminosos com 5 leds.
Data: ................................. 3. Elabore um script que some duas teclas
Grupo: ................................. numricas pressionadas, mostre-as e es-
Aluno: ................................. creva resultado na Serial Monitor.
Aluno: .................................

1. Na pratica de hoje utilizamos o controle


Remoto Infravermelho com interao
Python e Linux. Para realizarmos o
procedimento utilizamos um script para
identicarmos o cdigo de cada tecla do
teclado.

Copie este cdigo no espao abaixo e iden-


tique o cdigo de 6 teclas do teclado.

1- .................................
2- .................................
3- .................................
4- .................................
5- .................................
6- .................................

Universidade Federal Fluminense 10


11 Sensor infravermelho, analog.Read(), Alarme

11 Sensor infravermelho,
analog.Read(), Alarme
Data: .................................
Grupo: .................................
Aluno: .................................
Aluno: .................................

1. Comeamos a aula de hoje explicando o


funcionamento do sensor infravermelho.
No caso tnhamos um circuito com um
LED infravermelho e outro
. O circuito tinha um fun-
cionamento simples. Explique com suas
palavras o funcionamento do circuito:
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................

2. O conjunto emissor e receptor infraver-


melho pode nos ser til em diversas apli-
caes. Entre elas, podemos fazer um
alarme sonoro. Um led emissor pode ser
instalado em um canto da porta e o recep-
tor no canto oposto. Quando uma pessoa
atravessar a mesma ela cortar o uxo de
luz acionando um alarme. Desenvolva o
script deste pequeno projeto que acione
um buzzer quando uma pessoa atravessar
a porta.

Universidade Federal Fluminense 11


12 Acionamento via pgina Web, ethernet.h(), WEB Server

12 Acionamento via pgina 3. Imagine que voc possua uma casa de


praia. S que nela voc s possua gua de
Web, ethernet.h(), um poo. Recentemente voc esteve l e
WEB Server deixou a caixa d'gua vazia. Agora voc
est em sua moradia mas pretende voltar
Data: ................................. l em breve.
Grupo: .................................
Aluno: .................................
Aluno: ................................. Para no faltar gua logo que chegar, voc
resolve ligar a bomba da sua casa de praia
1. Na aula que tivemos hoje aprendemos pelo seu projeto com o Arduino. Elabore
como funciona um projeto utilizando o um script de uma pgina que acione a
arduino e o shield ethernet. Vimos que bomba e que ao identicar a caixa cheia
para acionarmos diferentes cargas possu- desligue-a e avise-o.
mos diferentes circuitos para cada nali-
dade. Imagine que voc possua uma sirene
12v DC. Qual circuito voc utilizaria para
acion-la com o Arduino? Desenhe o
mesmo abaixo:

2. Imagine agora que voc possua um venti-


lador 110v AC. Faa o mesmo pedido no
item anterior:

Universidade Federal Fluminense 12


13 LCD 16X2, LiquidCrystal.h

13 LCD 16X2, LiquidCrys-


tal.h
Data: .................................
Grupo: .................................
Aluno: .................................
Aluno: .................................

1. Hoje aprendemos como trabalhar com o


LCD 16x2. Abaixo temos a imagem do
LCD usado em aula. Identique a funo
de cada pino.

Figura 10: LCD 16X2. 3. Utilizando o LDR elavore um script que


escreva "Aceso"no LCD quando o valor
lido passe de um valor "x"pr determinado
1- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . por voc e "apagado"se o valor for menor
2- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . que "x".
3- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. Em aulas anteriores vimos o funciona-


mento do sensor de temperatura LM335A.
Utilizando o LCD 16X2 crie um script que
printe o valor de temperatura lido pelo ar-
duino.

Universidade Federal Fluminense 13


14 Jogo Genius

14 Jogo Genius 1. Aps montar a prtica mostrada hoje,


agora adapte para que tenha um con-
Data: ................................. tador de pontos. Seu programa deve a
Grupo: ................................. cada rodada mostrar na serial monitor
Aluno: ................................. quantos acertos o jogador possui, e zerar
Aluno: ................................. a contagem quando acontecer um erro.

Um jogo muito famoso na dcada de 1980, Escreva o programa feito abaixo:


que buscava estimular a memria do jogador . ........................................
atravs de cores e sons, o Genius. . ........................................
. ........................................
A prtica de hoje trata de uma adaptao . ........................................
desse jogo para o Arduino. Precisaremos de . ........................................
4 botes, 8 resistores de 330 e 4 LEDs (de . ........................................
preferncia de cores diferentes). Alm de um . ........................................
autofalante. . ........................................
. ........................................
A montagem do circuito bem simples, . ........................................
porm como temos uma quantidade maior de . ........................................
componentes que das prticas anteriores, . ........................................
necessria maior ateno na montagem. . ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
. ........................................
Figura 11: Circuito jogo genius. . ........................................
. ........................................
. ........................................
. ........................................
. ........................................

Universidade Federal Fluminense 14


15 Shield LCD 7 segmentos

15 Shield LCD 7 segmentos 1. Encontre cada cdigo binrio que acenda


no seu LCD de 7 segmentos os algarismos
Data: ................................. de 0 a 9.
Grupo: .................................
1-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aluno: .................................
2-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aluno: .................................
3-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Neste projeto utilizamos o circuito integrado 5-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PCF8574 para expandirmos o nmero de por- 6-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
tas do arduino atravs do protocolo I2C. Assim 7-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
viabilizamos a conexo de LCDs de 7 segmen- 8-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
tos 9-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. Elabore um contador que conte de 0 a


9 crescentemente e posteriormente decres-
centemente com o display de 7 segmentos.
3. Elabore um circuito com 3 botes e que ao
pressionar um dos trs botes o nmero
correspondente, deste, aparea no display.

Figura 12: CI PCF8574

Figura 13: Display 7 segmentos

Universidade Federal Fluminense 15

S-ar putea să vă placă și