100% acharam este documento útil (1 voto)
997 visualizações123 páginas

Introdução ao Arduino para Iniciantes

O documento apresenta a agenda de uma oficina sobre Arduino 101 para iniciantes. A agenda inclui introduções ao que pode ser feito com Arduinos, um primeiro circuito simples chamado "Blink", um exercício de programação em grupo, os fundamentos da eletrônica e um circuito de semáforo. A oficina também discute logística, apresentações do instrutor e uma atividade de censo para identificar o nível de conhecimento dos participantes em eletrônica e programação.

Enviado por

christian souza
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
100% acharam este documento útil (1 voto)
997 visualizações123 páginas

Introdução ao Arduino para Iniciantes

O documento apresenta a agenda de uma oficina sobre Arduino 101 para iniciantes. A agenda inclui introduções ao que pode ser feito com Arduinos, um primeiro circuito simples chamado "Blink", um exercício de programação em grupo, os fundamentos da eletrônica e um circuito de semáforo. A oficina também discute logística, apresentações do instrutor e uma atividade de censo para identificar o nível de conhecimento dos participantes em eletrônica e programação.

Enviado por

christian souza
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Arduino 101

O!cina para principiantes

1.3
Agenda
• O que dá para fazer com Arduinos?
• Primeiro circuito: Blink ☈
• Coding Dojo com Arduino ☈
• ABCdE: ABC da Eletrônica
• Circuito semáforo ☈
• Fechamento

2
Logística

• Tags: #arduino101 @ramalhoorg


• Workshop: 14 a 18h
• Localização dos banheiros
• Café, água etc.
• Intervalo ≃ 16h

3
Apresentações

4
Luciano Ramalho
• Instrutor e palestrante internacional
especializado na linguagem Python

5
Luciano Ramalho

• Programador auto-didata desde 1978


• BASIC, ASM Z-80, Pascal, C, C++,
Smalltalk, Perl, Java, Python, Ruby...
• Formado em Biblioteconomia na ECA/USP
• O!cina de Programação e Arte (PSI-2615)
na Poli/USP com Etienne Delacroix

6
Luciano Ramalho
• Dono e professor • Sócio-fundador
nas Oficinas Turing, do Garoa
escola virtual de Hacker Clube
computação

oficinas
[Link]

7
Apresentem-se 5
minutos

• Descubra o nome, pro!ssão e hobbies


de cada pessoa perto de você
• Pergunte e conte para seus vizinhos:
• porque se interessou pelo Arduino?
• já tem algum projeto em mente?

8
Censo

• Quem entende • Quem entende


bem de bem de
eletrônica? programação?
• Quem sabe um • Quem sabe um
pouco de pouco de
eletrônica? programação?

9
Censo
Programação

nada pouco muito

nada
3 2 2
Eletrônica

pouco

0 2 3
LR
muito

0 1 0

10
O que dá para
fazer com
Arduinos?

11
RepRap 3D printer

Open hardware Self-replicating!


Open hardware

• Open hardware:
esquemas e software livres,
componentes “de prateleira”
ou fabricáveis em casa
• Arduino é open hardware:
copiar é legal
• Uso da marca Arduino:
sob licença
Pisca-pisca biker

Lilypad
Arduino
Projetos simples • Microfone-bafômetro
[Link]/id/Breathalyzer-Microphone/

• Pedal de guitarra
[Link]/id/Lo-!-Arduino-Guitar-Pedal/

• Robô equilibrista (inspirado no Segway)


[Link]/hack/make-a-mini-segway-using-the-arduino/

• Fotogra!a de alta velocidade


[Link]/hack/high-speed-photography-how-to-trigger-
using-arduino/

• Automação residencial
[Link]/tag/how-to-build-home-automation-system-
raspberry-pi-and-arduino/

15
Não por acaso, o logo é
∞ 16
Componentes

17
Um kit para começar
Controlador Componentes de entrada
1! Placa compatível com Arduino UNO R3 10! Push-button 6x6 mm
1! Cabo USB AB 2! Potenciômetro 100kΩ
2! Sensores ópticos reflexivos
1! Sensor de luminosidade LDR 3mm
1! Sensor de temperatura LM35

Componentes básicos Componentes de saída


1! Breadboard 830 pontos 12! LEDs 5mm, 2 de cada cor
1! Placa wire-wrap 5x7 cm ! (verde, vermelho, amarelo,
65! Jumpers macho/macho ! laranja, azul e branco)
3! Cabos 3 vias Dupont 2! Relés 5v
20! Resistores 1kΩ 1! Display 7 segmentos 3 dígitos
6! Diodos 1N4006 1! Micro-servo 9g SG90 TowerPro
1! Buzzer contínuo

18
Arduino Uno R3

• Placa com
microcontrolador
ATmega328 e
circuitos auxiliares
• interface USB (cliente)
• regulador de voltagem
aceita 7-12V (recomendação)

19
Arduino: alimentação
5V via
USB • Externas:
• USB: 5V
• adaptador DC
de 7 a 12V (não
incluído)
• Vin e GND :
7 a 12V DC

7 a 12V DC GND, Vin


20
Arduino: alimentação
• Internas:
• 3.3 V e 5 V (+)
• GND: terra (-)
• Vin: direto da
fonte externa
7 a 12 V (+)

Pinos21de alimentação
Pinos de entrada ou saída
14 pinos de entrada e
saída digital: 0 a 13

6 deles com
Pulse Width
Modulation:
PWM ∼

6 pinos de entrada
analógica: A0 a A5

22
Entradas × saídas
Componentes de entrada

• Entradas: 10!
2!
Push-button 6x6 mm
Potenciômetro 100kΩ
chaves, sensores 2!
1!
Sensores ópticos reflexivos
Sensor de luminosidade LDR 3mm
etc. 1! Sensor de temperatura LM35

Componentes de saída
• Saídas: 12! LEDs 5mm, 2 de cada cor
luzes, motores, !
!
(verde, vermelho, amarelo,
laranja, azul e branco)
mostradores, etc. 2!
1!
Relés 5v
Display 7 segmentos 3 dígitos
1! Micro-servo 9g SG90 TowerPro
1! Buzzer contínuo

23
Breadboard

• Conhecido no Brasil
como “protoboard”
• No kit: breadboard
de 830 furos

na foto: 400 furos

24
Esquema elétrico de um
breadboard comum
colunas numeradas

linhas de alimentação

25
26
Note: cada componente
se liga a duas ou mais
colunas diferentes

...ou conecta uma


coluna a uma linha
de alimentação
Teste: posso ligar assim?

exemplos ao vivo...

28
LED: light-emitting diode

• Diodo emissor de luz

• Componente polarizado:
tem direção certa para
conectar

29
LED: light-emitting diode
chanfro

• Pino + (mais longo)


ligado na fonte

• Pino - ligado no terra

• Ligar com resistor em


série para proteção

30
LED: circuito básico

Resistor para
limitar a
corrente
conforme
especificação
do LED

31
LED RGB

• 3 LEDs (vermelho, verde, azul)


em um único componente

não incluído
no kit

32
Resistores

• Kit: 20 × 1K Ω

33
O que é um resistor

• Reduz a corrente
• Sem polaridade:
pode ser montado
em qualquer direção
• Valor em Ohms (Ω)
• Símbolos em esquemas:

34
Pequeno desvio
para entender o
resistor...

35
Tensão, corrente
& resistência

36
Sentindo na pele

Cap. 1, p. 5
37
Tensão

• Medida: Volt (V)


• Símbolo em
fórmulas: V

9V

38
Resistência

• Medida: Ohm (Ω)


• Símbolo em
fórmulas: R

7mm de língua ≈ 330 Ω

39
Corrente

• Medida: Ampère (A)


• Símbolo em
fórmulas: I
• 6.241 × 1018 elétrons
por segundo

9 V ÷ 330 Ω ≈ 0.027 A
27 mA
40
Exemplos de corrente
Aparelho auditivo 0.7 mA 0.0007 A

Carregador celular simples 500 mA 0.5 A

Carregador tablet 2.1 A 2.1 A

Torradeira (120V) 16 A 16 A

Motor de arranque 120 A 120 A

41
Lei de Ohm

V = I × R
V
I = V / R
I R R = V / I

42
Voltando ao
resistor...

43
Resistor: código de cores

33 x 101 = 330 Ω

44
Resistor: código de cores

330Ω 5% de tolerância: de 313Ω a 346Ω

45
Resistor: valores padrão
Série E12 da Norma IEC 60063
(para tolerância 10%)

46
Resistor: exemplos

330 Ω
1 kΩ
10 kΩ
1 MΩ

47
Escolher resistor para LED
• Na prática: para proteger um LED
comum, em uma instalação provisória,
um resistor de 500Ω costuma ser mais
que su!ciente
• Para calcular o resistor ideal, use a lei
de Ohm. Especi!camente:

(tensao_fonte − tensao_led)
R =
corrente_led
Termos da fórmula
• Tensão fonte: tensão no circuito, 5V no caso
de porta digitais no Arduino UNO
• Tensão LED: tensão típica entre os pinos do
LED, especi!cada como “forward voltage”,
“voltage drop” ou “forward supply”
• Corrente LED: “forward current”, 20mA é
um valor comum (20/1000 ou .02 na fórmula)

(tensao_fonte − tensao_led)
R =
corrente_led
Exemplo
LED (green):
f wd. voltage = 2.2V
current = 20mA

(3 − 2.2)
R = = 40
20/1000
50
LED RGB 5mm RadioShack
• Tensão fonte Arduino UNO = 5V
• Tensão LED vermelho: 2V
• Corrente LED vermelho: 50mA
• Resistor ideal: 60Ω
• Resistor real: 68Ω

(5 − 2)
R = = 60
50/1000
51
Primeiro circuito

52
Primeiro
circuito:
blink
53
Pino mais
longo (+)

Pino 13

Pino GND

Primeiro “terra” (-)

circuito:
blink
54
Primeiro
circuito:
blink
56
Programação

57
Arduino IDE

• Editor fácil,
baseado no
Processing, feito
para artistas

[Link]/en/Main/Software

58
Linguagem

• C++, com
simpli!cações

59
Estrutura
comentários

60
Estrutura
comentários

declaração
de variável

61
Estrutura
comentários

declaração
de variável

definições
de funções

62
Estrutura
comentários

declaração
de variável

definições
de funções

chamada
de função

63
Sintaxe

blocos de
instruções
delimitadas
por {...}

64
Sintaxe

editor
assinala pares
de chaves {...}

65
Sintaxe

editor marca
código com
cores para
ajudar na
leitura e
revisão

66
Dicas de sintaxe para C++

• Cada vírgula conta, mas espaços não


• Maiúscula ≠ minúscula
• ex. Alfa ≠ alfa ≠ ALFA
• Todo comando termina com ;
• O editor assinala os pares de (), {} e []

67
Lógica
Arduino
executa a
função
setup() uma
vez após
resetar

68
Lógica

aqui o pino
do led é
configurado
para saída

69
Lógica

Arduino
executa a
função loop()
repetidamente

70
Lógica

digitalWrite
serve para
mudar o
estado de um
pino digital

71
Lógica

Onde você
mudaria o
código para
acionar um
LED ligado ao
pino 8?

72
Lógica

Onde você
mudaria o
código para
mudar a
frequência
das piscadas?

73
Coding Dojo
com Arduino
Slides do Garoa Hacker Clube

74
Arduino & cia.

75
Família Arduino
Uno Mega

etc...
Nano
Lilypad76
Microcontrolador do UNO:
Atmel ATmega328
• família “AVR”
• clock: 16 MHz
• SRAM: 2 KB
• EEPROM: 1 KB
• Flash: 32 KB

77
Entradas e saídas no
ATmega328

• 28 pinos
• 23 pinos
multi-funcionais

diagrama do datasheet
78
Entradas e saídas no
Arduino UNO

• Função dos pinos:


padronizadas e
simpli!cadas
• Mais fácil de aprender
• Mais fácil de expandir

79
Shields

• Placas de
expansão
• Alguns exemplos:
• Ethernet, Wi-Fi,
controle de motores,
acelerômetro, GPS,
tela LCD touch... Arduino com dois
shields empilhados

80
Shields

• Mais exemplos:
• GPRS, NFC/RFID,
MIDI sequencer,
MP3 decoder,
controle de câmera
fotográ!ca, XBee radio... 5
shields
• Imperdível: [Link] empilhados!

81
Clones e derivados
• Alguns exemplos:
• Severino
• Garagino
• Sanguino
• Program-ME

Severino
Clone de Arduino em breadboard

83
Clone de Arduino em breadboard

Vídeo: [Link]
84
Mais
componentes

85
Potenciômetro

• Resistor ajustável
• Kit: 2 × 100 kΩ

• Símbolo em esquemas:

86
Potenciômetro:
como usar
Vout
• Ligar pinos laterais
na alimentação

• Ligar pino central


Vout em um pino
de entrada
analógico

87
LDR ou fotoresistor

• Light Dependent Resistor


• Kit: 1 × 3mm Ø
• Usar com resistor para
fazer um divisor de tensão

88
Circuito divisor de tensão
Vout

89
Ler LDR no Arduino

• 5V no LDR
• resistor 10k Ω em
série
• entre eles:
Vout ligado a uma
entrada analógica
(ex. A0)

90
Circuito
Semáforo 1

91
Circuito semáforo 1
• Componentes:
• LEDs: verde, amarelo, vermelho
• 4 resistores de 1k Ω
• 1 potenciômetro de 100k Ω
• Código:
[Link]/ramalho/6202074

92
Circuito
semáforo 1

93
Circuito
semáforo 1

código: [Link]/ramalho/6202074
[Link]/ramalho/6202074
[Link]/ramalho/6202074
Circuito
Semáforo 2

97
Circuito semáforo 2
• Usar um LDR (sensor de
luminosidade) em vez do
potenciômetro
• Para fazer funcionar, o
potenciômetro tem que ser
trocado por um divisor de
tensão com LDR e resistor de
1k Ω
LDR

98
Circuito semáforo 2
• Componentes:
• LEDs: verde, amarelo, vermelho
• 4 resistores de 1k Ω
• 1 potenciômetro de 100k Ω
• 1 LDR
• 1 resistor de 1k Ω
LDR

99
Circuito
semáforo 2

código: [Link]/ramalho/6202074
Ainda mais
componentes
do kit

101
Sensor óptico re&exivo
• Detecta objetos até 25mm
de distância
• Emissor: LED
chanfro infravermelho
• Receptor: fototransistor
protegido contra luz
visível
• Use divisor de tensão

102
Sensor óptico re&exivo
divisor de tensão

103
sensor
óptico
reflexivo

divisor de tensão

104
Display 7 segmentos

• 3 dígitos
• modelo: CPS03631AB foto: CPS3631AR

• tipo: anodo comum


• part number: CPS03631BR-11

105
Display 7 segmentos
anodo anodo anodo

Esquema no datasheet CPS03631AB

107
Display 7 segmentos

• anodo comum: todos os segmentos de


cada dígito ligados ao mesmo anodo
• para selecionar um dígito: 5V no anodo
correspondente
• para acender um segmento: GND no
catodo correspondente

108
Display 7 segmentos

• anodos: pinos 8, 9, 12
do display selecionam
o dígito
• demais pinos acionam
os segmentos A...G e o
ponto decimal (dp)

109
Display 7
segmentos

código: [Link]/ramalho/6566651
Servomotor

• Movimentos
controlados num
arco de 180°
• Programação fácil
via biblioteca Servo
no Arduino
• exemplos incluídos na IDE

111
Servomotor
fonte externa
deve se ligar ao 5V
GND do Arduino DC
• Alguns servos
só funcionam
alimentados
por fonte
externa

112
fonte DC Arduino
externa alimentado
5V, 1A via USB

terra comum

Ser vo TowerPro
SG90 (9g) 113
Fechamento

114
Referências
• Site o!cial:
[Link]
• Arduino Experimentation Kit:
[Link]/a/products/ardx
• Laboratório de garagem
[Link]
• Web: blogs, vídeos, wikis, diagramas...

115
[Link]

• Seções do site

116
[Link]
• Site com software para download e
repositório de projetos

117
Alguns
Livros

• Arduino Básico, Novatec


• Arduino Cookbook, O’Reilly
• Make: Electronics, O’Reilly

118
Lojas físicas em Sampa

• Multcomercial, R. dos Timbiras, 257


• Lojas nas travessas da Santa E!gênia,
inclusive as lojas de sucata
• Laboratório de Garagem, Rua Berta, 60
(metrô Vila Mariana)
• Lojas de bairro, ex: Rua Butantã, 133

119
Lojas online
• Laboratório de Garagem: [Link]
• Farnell Newark: [Link]
• Adafruit: [Link]
seeedstudio
• Sparkfun: [Link] com 3 “e”!
• Seeedstudio: [Link]
• Vários: [Link], [Link] (muitos fornecedores)

120
Seeedstudio Shield Bot

• Robô seguidor
de linha
• Vem montado
• Basta encaixar
o Arduino Uno
US $ 69.90

121
Visite um hackerspace!

[Link]

122
Créditos

• Conteúdo compilado, oficinas


[Link]
organizado e parcialmente
criado por Luciano Ramalho
(O!cinas Turing)
• Licença de uso e reprodução:
Creative Commons BY-SA

123

Você também pode gostar