Você está na página 1de 67

Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
ABERTA DE
HARDWARE
A PLATAFORMA

1
Professor
Palestra sobre a plataforma Arduino para a Uninorte

Paulo Alexandre S. C. da
Fonseca

Tecnólogo em Eletrônica
Mestre em Ciência da
Computação

ARDUINO 2
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
ARDUINO
OFICINA DE

3
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Sumário

4
Computação Física
Como os computadores nos veem ?
Palestra sobre a plataforma Arduino para a Uninorte

Saída: interação
com teclado e
mouse;

Entrada: interação
com o monitor;

Entrada: interação
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
Palestra sobre a plataforma Arduino para a Uninorte

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;
• “Some devices that are called embedded
systems, such as PDAs or web pads, are
not really embedded systems.”-
Noergaard.

ARDUINO 6
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Sistemas embarcados

7
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Sistemas embarcados

8
Microcontroladores
• Componentes que formam um
Palestra sobre a plataforma Arduino para a Uninorte

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;
• “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
Palestra sobre a plataforma Arduino para a Uninorte

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
registradores internos e do
acumulador.

ARDUINO 10
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Microcontroladores

11
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Microcontroladores

12
Plataforma Arduino
● O que é o Arduino : “Projeto opensource que consiste em
Palestra sobre a plataforma Arduino para a Uninorte

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
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
Palestra sobre a plataforma Arduino para a Uninorte

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
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;
Palestra sobre a plataforma Arduino para a Uninorte

• 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;
• 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
Palestra sobre a plataforma Arduino para a Uninorte

sensores:
Digitais, Analógicos, Acelerômetros,
Potenciômetros, Ultra-sons, LDR,
etc.

• 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
Palestra sobre a plataforma Arduino para a Uninorte

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.
• 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
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Comparando...

18
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
168 / 328

19
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
20
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Diagrama em Blocos Uno

21
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
22
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
23
Digital Input/Output Pins
Pins with ~ are PWM
[Analog Output] Transmitter/Receiver
GND Serial Connection
Palestra sobre a plataforma Arduino para a Uninorte

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

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
Palestra sobre a plataforma Arduino para a Uninorte

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
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
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Arduino Mega

26
Arduino MEGA
Entradas e saídas digitais (I/O) 54 (15 com saída PWM)
Entradas analógicas 16
Palestra sobre a plataforma Arduino para a Uninorte

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
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
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Arduino Mini

28
Arduino MINI
Entradas e saídas digitais (I/O) 14 (6 com saída PWM)
Entradas analógicas 8
Palestra sobre a plataforma Arduino para a Uninorte

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)
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
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Arduino Nano

30
Arduino NANO

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


Entradas analógicas 8
Palestra sobre a plataforma Arduino para a Uninorte

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)
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
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Arduino LilyPad

32
Arduino Lilypad
Entradas e saídas digitais (I/O) 14 (6 com saída PWM)
Entradas analógicas 6
Palestra sobre a plataforma Arduino para a Uninorte

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)
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-
Palestra sobre a plataforma Arduino para a Uninorte

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
retirar a alimentação da placa o
código continua gravado e não é
perdido!
ARDUINO 34
Memória SRAM
• Static Random Access Memory:
Palestra sobre a plataforma Arduino para a Uninorte

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


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
Palestra sobre a plataforma Arduino para a Uninorte

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


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
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Arduino Shields

37
Arduino Shields
• O conceito de shields permite
Palestra sobre a plataforma Arduino para a Uninorte

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ê
pode construir o seu e pessoas do
mundo todo poderão comprar e será
sempre compatível.
ARDUINO 38
Arduino Shields
Palestra sobre a plataforma Arduino para a Uninorte

Controle de Motor
Ponte H – 1A

Controle de Motor
Ponte H – 2A

ARDUINO 39
Arduino Shields
Palestra sobre a plataforma Arduino para a Uninorte

Display de 7 segmentos

Display colorido

Display 16x2
ARDUINO 40
Arduino Shields
Palestra sobre a plataforma Arduino para a Uninorte

GameDuino
Saida VGA
Audio Stereo

joystick

ARDUINO 41
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Ethernet

Wi-Fi
Arduino Shields

42
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
microSD

SDCard
Arduino Shields

43
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Saídas com Relé
Arduino Shields

44
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Software

45
Software
• O microcontrolador pode ser
Palestra sobre a plataforma Arduino para a Uninorte

programado utilizando a
linguagem de programação C
para Arduino.
•O desenvolvimento dos
aplicativos é feito no ambiente de
programação do próprio do
Arduino.
ARDUINO 46
Estrutura
void setup()
Palestra sobre a plataforma Arduino para a Uninorte

{
Código aqui dentro executa uma vez
}

void loop()
{
Código aqui dentro executa sem
parar
}
ARDUINO 47
Primeiro Sketch
void setup()
Palestra sobre a plataforma Arduino para a Uninorte

{
pinMode(13, OUTPUT); // define I/O 13 como
saída
}

void loop()
{
digitalWrite(13, HIGH); // coloca saída 13 em
nível alto
delay(1000); // aguarda 1 segundo
digitalWrite(13, LOW);
delay(1000);
}

ARDUINO 48
Comentários
// comentários começam com 2
Palestra sobre a plataforma Arduino para a Uninorte

barras por linha

/* as vezes comentários
podem aparecer assim, com
Uma barra e asterisco no início
e no final */

ARDUINO 49
Outras regras
Sensível à Caixa : LETRAS MAIÚSCULAS são
Palestra sobre a plataforma Arduino para a Uninorte

diferentes de minúsculas

Linhas de Código : Sempre tem ponto e


vírgula no final (;)

Parâmetros : (estão sempre entre


parênteses)

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


chaves}

ARDUINO 50
Funções básicas
• pinMode (10, INPUT); // define 10 como entrada
Palestra sobre a plataforma Arduino para a Uninorte

• 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)
• 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
Palestra sobre a plataforma Arduino para a Uninorte

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

• int – tipo da variável


• i – nome da variável
• 0 – valor da variável
ARDUINO 52
Tipos de Variáveis
Palestra sobre a plataforma Arduino para a Uninorte

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

ARDUINO 53
String e laços(loops)
Strings – São utilizados na comunicação
Palestra sobre a plataforma Arduino para a Uninorte

serial, Display LCD, etc.

Laços – Utilizados para conter a


execução em algum ponto.

Ex: void loop()


{
String var1 = “ALOU” ;
Serial.println (var1);
While (1);
}
ARDUINO 54
Comando if
Palestra sobre a plataforma Arduino para a Uninorte

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

ARDUINO 55
Comando while, for
while( ) { } – Utilizado para fazer o
Palestra sobre a plataforma Arduino para a Uninorte

Arduino esperar algum evento.


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

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


executa sempre uma vez antes de
validar.
execute {faça isso} enquanto (condição);

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


ARDUINO 56
Portas Analógicas (A0...A5)
• analogRead(A0)
Palestra sobre a plataforma Arduino para a Uninorte

• // executa leitura da entrada


analógica A0

• analogWrite(9)
• // executa escrita na saída
PWM 9
ARDUINO 57
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
IDE

58
Arduino-Digital Output-LED
Palestra sobre a plataforma Arduino para a Uninorte

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

ARDUINO 59
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
Arduino-Analog Output-LED_Flash

60
Arduino-Analog Output-LED_Dimming Using
Loop Structure
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO 61
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
62
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
63
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
64
Referências
• Arduino; www.arduino.cc
Palestra sobre a plataforma Arduino para a Uninorte

• 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
Comprehensive Guide for Engineers and
• Programmers. Noergaard; (2005).
• tinyAVR Microcontroller Projects for the Evil
Genius. Gadre; (2011).

ARDUINO 65
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
66
Palestra sobre a plataforma Arduino para a Uninorte

ARDUINO
67

Você também pode gostar