Você está na página 1de 67

Apresentando o Arduino

A PLATAFORMA
ABERTA DE
HARDWARE

ARDUINO 1
Professor
Paulo Alexandre S. C. da
Fonseca

Tecnólogo em Eletrônica
Apresentando o Arduino

Mestre em Ciência da
Computação

ARDUINO 2
Sumário
• Computação Física
• Sistemas Embarcados
• Microcontroladores
• Plataforma de prototipação Arduino
– História do Arduino
– Porque usar o Arduino
– O que eu consigo fazer?
– O que é um Arduino?
Apresentando o Arduino

– Arduino Shields
– Software do Arduino
– KIT Arduino
– Projetos simples
• Referências
ARDUINO 3
Computação Física
 O que é Computação Física ?
“Physical computing is about creating a conversation
between the physical world and the virtual world of
the computer.” – Igoe
 Utilização de sensores, atuadores e
microcontroladores;
 Interligar o mundo físico com o mundo
virtual.
 Perceber e responder a eventos no mundo
Apresentando o Arduino

físico através de sensores;


 Comportamento implementado por software;
 Objetivo de alterar a forma de interação
entre humanos e computadores.

ARDUINO 4
Computação Física
Como os computadores nos veem ?
Saída: interação
com teclado e
mouse;

Entrada: interação
com o monitor;

Entrada: interação
Apresentando o Arduino

com caixas de
som.

“To change how the computer reacts to us,


we have to change how it sees us.” - Igoe
ARDUINO 5
Sistemas embarcados
• Definição do termo Sistemas Embarcados
não é universal;
• “Hardware programável, com poder de
processamento, para realizar uma tarefa
específica.” - Vahid;
• Executam repetidamente apenas um
programa.
• Mais limitados em funcionalidades de
hardware e/ou software do que os PCs;
Apresentando o Arduino

• “Some devices that are called embedded


systems, such as PDAs or web pads, are
not really embedded systems.”-
Noergaard.

ARDUINO 6
Sistemas embarcados
Apresentando o Arduino

ARDUINO 7
Sistemas embarcados
Apresentando o Arduino

ARDUINO 8
Microcontroladores
• Componentes que formam um
microcomputador agrupados em um
único chip de silício.
• Dos 9 bilhões de processadores
fabricados em 2005, menos de 2%
foram para PCs. Os outros 8,8 bilhões
foram para sistemas embarcados;
Apresentando o Arduino

• “Microcontroladores são o coração e a


alma de muitos eletrodomésticos do
dia a dia.” - Grade;

ARDUINO 9
Microcontroladores
• Formam a ponte entre hardware e
software;
• Dispositivos discretos que podem
interagir com os diversos componentes
de um circuito;
• Podem variar em 8-bit, 16-bit ou 32-
bit, o que se refere ao tamanho dos
Apresentando o Arduino

registradores internos e do
acumulador.

ARDUINO 10
Microcontroladores
Apresentando o Arduino

ARDUINO 11
Microcontroladores
Apresentando o Arduino

ARDUINO 12
Plataforma Arduino
● O que é o Arduino : “Projeto opensource que consiste em
hardware e software.” - Schimidt;
● Inicialmente criado para designers e artistas como
plataforma de prototipação para os cursos de design de
interação.
● Atualmente utilizada como plataforma de prototipação por
amadores e especialistas em todo o mundo.
Concebida para ser fácil de usar por iniciantes que possuem
pouca experiência com software e eletrônica;
● A combinação do hardware e do software permite
Apresentando o Arduino

desenvolver projetos que podem ser utilizados para controlar


o mundo físico;
● Hardware de baixo custo se comparado com outras
soluções podendo ser desenvolvido, projetos de hardware
também são opensource.

ARDUINO 13
História do Arduino
O Arduino surgiu em 2005, na Itália, com o
Professor Massimo Banzi, que queria ensinar
eletrônica e programação de computadores a
alunos de design. Porém, ensinar eletrônica e
programação para pessoas que não são da área
não era uma tarefa simples.
Foi pensando nisso que Massimo e David
Cuartielles decidiram criar sua placa própria, com a
ajuda do aluno David Mellis, que criou a linguagem
Apresentando o Arduino

de programação do Arduino. Várias pessoas


conseguiram utilizar o Arduino e fazer coisas
incríveis, surgindo uma febre mundial da
Eletrônica.

ARDUINO 14
Por que usar Arduino?
• Baixo custo;
• Software para várias plataformas;
• Linguagem simples fácil de usar para iniciantes
e flexível o bastante para usuários avançados;
• Software livre;
• Web site oficial do Arduino;
• Código e exemplos são compartilhados
livremente;
Apresentando o Arduino

• Existe uma comunidade ativa para usuários;


• Quantidade enorme pessoas que podem te
ajudar.

ARDUINO 15
O que eu consigo fazer ?
• Ler valores provenientes de
sensores:
Digitais, Analógicos, Acelerômetros,
Potenciômetros, Ultra-sons, LDR,
etc.
Apresentando o Arduino

• Atuar no mundo exterior:


Leds, Motores, Displays, Lâmpadas,
relés, etc...
ARDUINO 16
O que é um Arduino?
• Arduino é uma placa de controle de I/O, com
cristal oscilador de 16 Mhz, regulador de tensão
de 5 V, botão de reset, plug de alimentação,
pinos conectores, e alguns LEDs para facilitar a
verificação do funcionamento.
• A porta USB já fornece alimentação enquanto
estiver conectado ao computador, e a tensão de
alimentação quando desconectado pode variar de
7 a 12 V.
Apresentando o Arduino

• As informações são transmitidas de um


computador para a placa através de Bluetooth,
wireless, USB, infravermelho, etc. Essas
informações devem ser traduzidas utilizando a
linguagem Wiring baseada em C/C++.
ARDUINO 17
Comparando...
Apresentando o Arduino

ARDUINO 18
Apresentando o Arduino

ARDUINO
168 / 328

19
Apresentando o Arduino

ARDUINO
20
Diagrama em Blocos Uno
Apresentando o Arduino

ARDUINO 21
Apresentando o Arduino

ARDUINO
22
Apresentando o Arduino

ARDUINO
23
Digital Input/Output Pins
Pins with ~ are PWM
[Analog Output] Transmitter/Receiver
GND Serial Connection

USB Microcontroller ATmega328


Operating Voltage 5V
Input Voltage (recommended)
7-12V
Input Voltage (limits)6-20V
Digital I/O Pins 14
(of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Apresentando o Arduino

7-12 v 3v 5v
Analog Input Pins
ARDUINO 24
Arduino UNO
Entradas e saídas digitais (I/O) 14 (6 com saída PWM)
Entradas analógicas 6
Clock de operação 16MHz
Processador Atmega328 – Atmel
Microcontrolador de 8bits
RISC com 131 instruções
2 timers de 8 bits
4 timers de 16 bits

Portas de comunicação Gravação via USB;


1 porta RS-232
Alimentação recomendada 7-12V (pode ser alimentado pela
Apresentando o Arduino

USB)
Corrente DC máxima por pino de 40mA
I/O
Memória Flash 32kB (armazenar código)
Memória SRAM 2kB (rodar programa)
Memória EEPROM 1 kB (gravar dados)
ARDUINO 25
Apresentando o Arduino

ARDUINO
Arduino Mega

26
Arduino MEGA
Entradas e saídas digitais (I/O) 54 (15 com saída PWM)
Entradas analógicas 16
Clock de operação 16MHz
Processador Atmega2560 – Atmel
Microcontrolador de 8bits
RISC com 131 instruções
2 timers de 8 bits
1 timer de 16 bits
Portas de comunicação Gravação via USB;
4 portas RS-232
Alimentação recomendada 7-12V (pode ser alimentado pela
Apresentando o Arduino

USB)
Corrente DC máxima por pino de 40mA
I/O
Memória Flash 256kB (armazenar código)
Memória SRAM 8kB (rodar programa)
Memória EEPROM 4kB (gravar dados)
ARDUINO 27
Apresentando o Arduino

ARDUINO
Arduino Mini

28
Arduino MINI
Entradas e saídas digitais (I/O) 14 (6 com saída PWM)
Entradas analógicas 8
Clock de operação 16MHz
Processador Atmega168 – Atmel
Microcontrolador de 8bits
RISC com 131 instruções
2 timers de 8 bits
1 timer de 16 bits
Portas de comunicação Gravação via RS-232
Alimentação recomendada 7-9V (pode ser alimentado pela
USB)
Apresentando o Arduino

Corrente DC máxima por pino de 40mA


I/O
Memória Flash 32kB
Memória SRAM 2kB
Memória EEPROM 1 kB

ARDUINO 29
Apresentando o Arduino

ARDUINO
Arduino Nano

30
Arduino NANO

Entradas e saídas digitais (I/O) 14 (6 com saída PWM)


Entradas analógicas 8
Clock de operação 16MHz
Processador Atmega328 – Atmel
Microcontrolador de 8bits
RISC com 131 instruções
2 timers de 8 bits
1 timer de 16 bits
Portas de comunicação USB e RS-232
Alimentação recomendada 7-12V (pode ser alimentado pela
USB)
Apresentando o Arduino

Corrente DC máxima por pino de 40mA


I/O
Memória Flash 16kB
Memória SRAM 1kB
Memória EEPROM 512 B
Dimensão
ARDUINO 31
Arduino LilyPad
Apresentando o Arduino

ARDUINO 32
Arduino Lilypad
Entradas e saídas digitais (I/O) 14 (6 com saída PWM)
Entradas analógicas 6
Clock de operação 16MHz
Processador Atmega328 – Atmel
Microcontrolador de 8bits
RISC com 131 instruções
2 timers de 8 bits
1 timer de 16 bits
Portas de comunicação USB e RS-232
Alimentação recomendada 7-12V (pode ser alimentado pela
USB)
Apresentando o Arduino

Corrente DC máxima por pino de 40mA


I/O
Memória Flash 32kB
Memória SRAM 2kB
Memória EEPROM 1 kB

ARDUINO 33
Memória Flash
• Memória do tipo EEPROM, re-
gravável que, ao contrário de uma
memória RAM convencional,
preserva o seu conteúdo sem a
necessidade de fonte de
alimentação.
• Armazena o código do programa
que gravamos no Arduino, assim ao
Apresentando o Arduino

retirar a alimentação da placa o


código continua gravado e não é
perdido!
ARDUINO 34
Memória SRAM
• Static Random Access Memory:
memória estática de acesso aleatório,
mantém dados armazenados enquanto
alimentação é mantida mas ao
contrário da DRAM, não requer refresh.

• Utilizada para executar o programa que


Apresentando o Arduino

gravamos no Arduino, assim ao retirar


a alimentação da placa qualquer status
de variáveis de execução do código é
perdido!
ARDUINO 35
Memória EEPROM
• Electrically Erasable Programmable
Read-Only Memory: memória não
volátil, que ao contrário de
uma EPROM, uma EEPROM pode ser
programada e apagada eletricamente
várias vezes.

• Utilizada para que seu programa grave


Apresentando o Arduino

dados que deseje recuperar


posteriormente caso a alimentação seja
perdida a exemplo de status de
variáveis de execução do código.
ARDUINO 36
Arduino Shields
Apresentando o Arduino

ARDUINO 37
Arduino Shields
• O conceito de shields permite
empilhar placas com diferentes
funcionalidades.
• Dá flexibilidade ao Arduino para se
adequar a diferentes projetos de
forma rápida, basta comprar o
shield desejado e empilhar.
• Não encontrou um shield?! Você
Apresentando o Arduino

pode construir o seu e pessoas do


mundo todo poderão comprar e será
sempre compatível.
ARDUINO 38
Arduino Shields
Apresentando o Arduino

Controle de Motor
Ponte H – 1A

Controle de Motor
Ponte H – 2A

ARDUINO 39
Arduino Shields

Display de 7 segmentos
Apresentando o Arduino

Display colorido

Display 16x2
ARDUINO 40
Arduino Shields
Apresentando o Arduino

GameDuino
Saida VGA
Audio Stereo

joystick

ARDUINO 41
Arduino Shields
Apresentando o Arduino

Ethernet

Wi-Fi

ARDUINO 42
Arduino Shields
Apresentando o Arduino

microSD

SDCard

ARDUINO 43
Arduino Shields
Apresentando o Arduino

Saídas com Relé

ARDUINO 44
Apresentando o Arduino

ARDUINO
Software

45
Software
• O microcontrolador pode ser
programado utilizando a
linguagem de programação C
para Arduino.
•O desenvolvimento dos
aplicativos é feito no ambiente de
Apresentando o Arduino

programação do próprio do
Arduino.
ARDUINO 46
Estrutura
void setup()
{
Código aqui dentro executa uma vez
}

void loop()
{
Apresentando o Arduino

Código aqui dentro executa sem


parar
}
ARDUINO 47
Primeiro Sketch
void setup()
{
pinMode(13, OUTPUT); // define I/O 13 como
saída
}

void loop()
{
digitalWrite(13, HIGH); // coloca saída 13 em
Apresentando o Arduino

nível alto
delay(1000); // aguarda 1 segundo
digitalWrite(13, LOW);
delay(1000);
}

ARDUINO 48
Comentários
// comentários começam com 2
barras por linha

/* as vezes comentários
podem aparecer assim, com
Apresentando o Arduino

Uma barra e asterisco no início


e no final */

ARDUINO 49
Outras regras
Sensível à Caixa : LETRAS MAIÚSCULAS são
diferentes de minúsculas

Linhas de Código : Sempre tem ponto e


vírgula no final (;)

Parâmetros : (estão sempre entre


parênteses)
Apresentando o Arduino

Blocos de Código : {estão sempre entre


chaves}

ARDUINO 50
Funções básicas
• pinMode (10, INPUT); // define 10 como entrada
• pinMode (13, OUTPUT); // define 13 como saída
• pinMode (2, INPUT_PULLUP); /* define pino 2
entrada e habilita resistor interno */

• digitalWrite (13, 0); // saída 13 em nível baixo


(desliga)
Apresentando o Arduino

• digitalWrite (13, 1); // saída 13 em nível alto (liga)


• digitalRead (8); // executa a leitura I/O 8, obtendo
0 ou 1
• delay (1000); // aguarda 1segundo

ARDUINO 51
Variáveis
• Tipo – Caixa do tamanho certo é como uma
variável do tipo certo
• Escopo – Depende de onde a variável foi
declarada, variável não Existe fora do
escopo.

• int i = 0 ; // sempre ponto e vírgula


no final
Apresentando o Arduino

• int – tipo da variável


• i – nome da variável
• 0 – valor da variável
ARDUINO 52
Tipos de Variáveis

• char ‘A’
• byte 0 ~ 255
• int -32.768 ~ 32.768
• string “ vários caracteres “
Apresentando o Arduino

ARDUINO 53
String e laços(loops)
Strings – São utilizados na comunicação
serial, Display LCD, etc.

Laços – Utilizados para conter a


execução em algum ponto.

Ex: void loop()


{
Apresentando o Arduino

String var1 = “ALOU” ;


Serial.println (var1);
While (1);
}
ARDUINO 54
Comando if

se ( condição verdadeira ) // if
{ faça isso }
senão // else
{faça aquilo}
Apresentando o Arduino

ARDUINO 55
Comando while, for
while( ) { } – Utilizado para fazer o
Arduino esperar algum evento.
enquanto (condição) {faça isso}

do { } while ( ); - Igual ao while(), mas


executa sempre uma vez antes de
validar.
Apresentando o Arduino

execute {faça isso} enquanto (condição);

for ( int i = 0 ; i < x ; i ++) { }


ARDUINO 56
Portas Analógicas (A0...A5)
• analogRead(A0)
• // executa leitura da entrada
analógica A0

• analogWrite(9)
Apresentando o Arduino

• // executa escrita na saída


PWM 9
ARDUINO 57
Apresentando o Arduino

ARDUINO
IDE

58
Arduino-Digital Output-LED

void setup(){
pinMode(13, OUTPUT);
}
void loop(){
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
Apresentando o Arduino

delay(1000);
}

ARDUINO 59
Arduino-Analog Output-LED_Flash
Apresentando o Arduino

ARDUINO 60
Arduino-Analog Output-LED_Dimming Using
Loop Structure
Apresentando o Arduino

ARDUINO 61
KITS Arduino
Normalmente constituído por:
•Placa Arduino
•Cabo USB - Para conectar o Arduino ao seu computador.
•Protoboard - Para testar seus primeiros circuitos conectando
os outros componentes do kit sem soldas
•Display LCD 2x16 com conector soldado e backlight (preto
sobre verde ou branco sobre azul)
•Motor CC 6V com jumpers soldados
•Sensor de temperatura
•Sensor de luminosidade
•potenciômetro
•chaves momentâneas (botão)
Apresentando o Arduino

•LEDs diversos
•Resistores de diversos valores
•Sensor/atuador piezoelétrico
•Jumpers
•Relê de uso geral
•Caixa organizadora

ARDUINO 62
Apresentando o Arduino

ARDUINO
KITS Arduino

63
Projetos simples
1. Básico:
 Piscar (blink): acender e apagar um LED ou ligar e desligar o relê do kit.
 Fading: usar uma saída analógica (pino PWM) para apagar um LED em fade.
 Laço (loop): controlar múltiplos LEDs com loop e com um array.
2. Digital:
 Piscar sem delay (blink without delay): acender e apagar um LED ou ligar e
desligar o relê do kit sem usar a função delay.
 Botão (button): usar um botão para controlar um LED ou o relê do kit.
 Filtrar o ruído (Debounce): ler um botão filtrando o ruído.
 Melodia (Melody): tocar melodias com um atuador Piezo.
3. Analógico:
 Entrada Analógica (Analog Input): usar um potenciômetro para controlar o piscar
Apresentando o Arduino

de um LED ou o ligar e desligar o relê do kit.


 Calibração (Calibration): para leituras de sensores analógicos.
 Regulando (Smoothing): regular múltiplas leituras de uma entrada analógica.
4. Sensores:
 Golpe (Knock): detectar um golpe com um elemento Piezo elétrico.

ARDUINO 64
Referências
• Arduino; www.arduino.cc
• Hackaday; www.hackaday.com
• Makezine; blog.makezine.com
• Physical Computing: Sensing and Controlling the
Physical World with Computers.
• Igoe; Thomson; (2004).
• Embedded System Design: A Unified
Hardware/Software Approach. Vahid; (1999).
• Embedded Systems Architecture: A
Apresentando o Arduino

Comprehensive Guide for Engineers and


• Programmers. Noergaard; (2005).
• tinyAVR Microcontroller Projects for the Evil
Genius. Gadre; (2011).

ARDUINO 65
Apresentando o Arduino

ARDUINO
66
Apresentando o Arduino

ARDUINO
67

Você também pode gostar