eBook Arduino
eBook Arduino
Iniciantes
ÍNDICE
História 04
Aplicações de Arduino 05
Hardware 06
Grandezas analógicas e digitais 10
PWM 12
Instalação da IDE 13
Driver 15
Arduino IDE 18
Componentes Eletrônicos 21
Servo motor 28
Programação 36
História
Segundo o site oficial da Arduino, o Arduino é uma
plataforma open-source de prototipagem eletrônica com
hardware e softwares flexíveis e fáceis de usar, destinado a
artistas, designers, hobbistas e qualquer pessoa interessada
em criar objetos ou ambientes interativos. Um projeto dito
open-source (código aberto) é um modelo de
desenvolvimento que o licenciamento é livre, isto é, é
possível examinar e modificar o produto sem a necessidade
de pagar uma licença comercial sendo a única exigência que
o produto modificado também seja opensource. A placa
Arduino foi originalmente desenvolvida pelos pesquisadores
Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca
Martino e David Mellis no Instituto de Desing de Interação de
Ivrea em meados dos anos 2000. O Arduino se baseia no
projeto Processing, linguagem destinada ao
desenvolvimento de artes visuais bem como interfaces
gráficas. A primeira placa surgiu em 2005 tendo em vista a
necessidade de ajudar estudantes de design, que não
possuíam conhecimentos em eletrônica e programação de
microcontroladores, a desenvolver protótipos de trabalho.
Desde então o uso destas placas cresceu substancialmente
se tornando extremamente populares no ambiente de
engenharia, design, educacional, etc. É possível encontrar na
internet inúmeros projetos e fóruns envolvendo a extensa
família de plataformas Arduino.
4
Aplicações de Arduino
O Arduino pode enviar ou receber informações a partir de
qualquer sistema eletrônico mesmo não tendo conexão de
rede, ele pode ser combinado com outras placas formando o
que chamamos de shields, que fazem papel semelhante,
devido a essas facilidades ele possui diversas aplicações,
para diversas áreas e objetivos. Sistemas de automação são
os mais comuns quando o assunto é Arduino, devido aos
shields como bluetooth e ethernet, as pessoas conseguem
automatizar ações rotineiras para que sejam feitas apenas
com o celular ou algum tipo de hardware que pode se
conectar, como por exemplo acender e apagar uma
lâmpada, abrir um portão, ligar e controlar a velocidade de
um ventilador, sensores de presença, de incêndio, de
luminosidade e etc. Outros projetos que estão cada vez mais
sendo feitos com Arduinos são os que envolvem robótica,
pelo fato de a placa ser barata e de fácil uso. As pessoas que
não possuem muito conhecimento na área acabam por
começar suas pesquisas com o Arduino pela facilidade. O
Arduino hoje em dia é a porta de entrada para muitas
pessoas na área de programação e montagem de projeto
eletroeletrônicos, devido ao seu custo baixo e facilidade de
manuseio. Por isso é de grande valia aprender sobre esse
tipo de hardware para o futuro na área acadêmica e de
trabalho. Para facilitar ainda mais a utilização foi criada uma
família de Arduinos diferentes para diferentes tipos de
aplicações, onde cada um tem sua particularidade.
5
Hardware
Vamos agora conhecer um pouco do nosso hardware, que
nesse minicurso será o Arduino Uno. Para falarmos onde fica
cada parte e para o que ela serve seguiremos a imagem
abaixo.
3.1 Microcontrolador: Atmel ATMEGA328P
Um microcontrolador é um pequeno computador em um
único circuito integrado, que contém processador, memória
e periféricos de entrada e saída. Eles são feitos para
aplicações de propósito específico, como aplicações
embarcadas, em contraste com os microprocessadores
usados em computadores pessoais, que são para aplicações
de propósito geral. Esse microcontrolador funciona como
“CPU” do Arduino e tem o desempenho de 20 mil instruções
por segundo com uma frequência de 20MHz. Ele também
protege a placa de curtoscircuitos, a maioria dos defeitos
que podem aparecer com o tempo de uso podem ser
sanados com a troca do mesmo.
3.4 Conector P4
Outra forma de alimentar a placa, utilizando uma fonte com
conector do tipo P4 que forneça qualquer fonte de corrente
continua entre 7V e 12V.
7
AREF: Configura a tensão de referência para a entrada
analógica (o valor máximo do intervalo de entrada), se não
tiver conectado ao Arduino, o mesmo está com referência de
0-5V para 0 -1023. TX e RX: Portas de comunicação serial,
usadas para comunicar a placa com algum módulo ou shield
externo. Pino 13: De todos os pinos digitais o pino 13
particularmente possui o seu próprio Led, que é muito útil
para pequenos projetos ou testes quando não se quer usar
uma protoboard por exemplo.
8
Pinos digitais: Todos os pinos digitais podem ser
configurados tanto como entradas quanto como saídas. Em
geral, podem fornecer no máximo 40mA para outro circuito,
e possuem 8 bits. São de fácil entendimento pois possuem
apenas dois estados: HIGH (ou ON) – representa o valor de
5V. LOW (ou OFF) – representa o valor de 0V. Dentre os 14
pinos digitais que o Arduino UNO possui, 6 deles (3, 5, 6, 9,
10 e 11) são PWM. AREF: Configura a tensão de referência
para a entrada analógica (o valor máximo do intervalo de
entrada), se não tiver conectado ao Arduino, o mesmo está
com referência de 0-5V para 0 -1023. TX e RX: Portas de
comunicação serial, usadas para comunicar a placa com
algum módulo ou shield externo. Pino 13: De todos os pinos
digitais o pino 13 particularmente possui o seu próprio Led,
que é muito útil para pequenos projetos ou testes quando
não se quer usar uma protoboard por exemplo.
9
Grandezas analógicas e digitais
O que são Bits?
O termo Bit vem de Binário e é a menor unidade de
transmissão de dados usada na computação. Um bit pode
possuir apenas um único valor, zero ou um. Por uma
convenção de uso, grande parte dos códigos utilizados pelos
computadores era em pacotes de oito bits, e por isso foi
convencionado o nome de Byte, também conhecido como
octeto. Devido ao crescimento da quantidade de dados
transportada e utilizada, surgiuse a necessidade de se criar
espaços maiores e para chama-los utilizamos os mesmos
prefixos do SI da física, química e matemática, mesmo
resultando em valores diferentes eles possuem valores
próximos.
12
Instalação da IDE
O software de código aberto do Arduino (IDE) torna simples
escrever códigos, compilar e os enviar diretamente para a
placa. Ele funciona nos sistemas operacionais Windows, Mac
OS X e Linux. O ambiente é escrito em Java e baseado em
Processing e outros softwares de código aberto. O software
pode ser utilizado com qualquer placa Arduino.
A instalação do ambiente de desenvolvimento (IDE) do
Arduino deve ser feita de forma diferente para cada sistema
operacional.
Para tal, devemos acessar o site oficial do Arduino:
https://www.arduino.cc
13
Na parte “Download the Arduino IDE”, clicar em “Windows
Installer, for Windows XP and up” para fazer download do
software para Windows. Também possível fazer o download
para outros sistemas operacionais como Linux ou Mac OS X.
14
Em seguida, clicar em “Next” e depois em “Install” para dar
início a instalação do software em seu computador
Driver
O Arduino possui um dispositivo Plug & Play (PnP), ou seja,
quando conectado a uma porta USB de um computador ele
é automaticamente reconhecido e instalado. Logo após a
instalação ele aparece como uma porta COM. As portas
seriais, também chamadas de portas de comunicação
(COM), são consideradas uma das conexões externas mais
básicas para um computador e permitem que cada
dispositivo conectado a elas receba e envie dados
simultaneamente. Conectando o cabo USB AB no Arduino e
depois no computador, seu computador reconhecerá o
Arduino automaticamente e uma nova porta COM será
criada para o sistema operacional Windows. Para configurar
essa porta COM siga os passos como mostrados abaixo.
15
Clique em Gerenciamento do Computador > Gerenciador
de Dispositivos > Portas (COM e LTP) > Arduino UNO
(COMX). Pelo que for encontrado, podemos confirmar se o
Arduino foi realmente reconhecido pelo computador e
qual o número da porta COM associada a ele. *Obs.: Nesse
caso a porta genérica COMX foi encontrada como COM3,
mas ela pode variar o valor de “X” de acordo com a
configuração de cada computador.
16
Para que seus códigos sejam transferidos corretamente,
devemos selecionar o modelo da placa Arduino que será
utilizada na opção Placa do menu. Clique em Ferramentas
> Placa > Arduino/Genuino Uno (Modelo da Placa).
17
Arduino IDE
O software Arduino IDE (Integrated Development
Enviroment) é um ambiente que permite a criação de
sketches para a placa Arduino, assim como compilar e
fazer upload do código para a placa. A linguagem de
programação é modelada a partir da linguagem
Processing. O ciclo de programação do Arduino é o
seguinte:
Conectar a placa a uma porta USB do computador;
Desenvolver um sketch com comandos para a
placa;
Upload do sketch para a placa utilizando a
comunicação USB;
Aguardar a reinicialização da placa. Após a
reinicialização, o sketch passa a ser executado pela
placa. É importante ressaltar que a partir do momento
que o sketch é gravado na placa Arduino, não há
necessidade de conexão com o computador.
Dessa forma, é possível utilizar o Arduino apenas
alimentando a placa através da porta P4.
18
A IDE pode ser dividida em três partes: Toolbar,
Sketch Window e Janela de Mensagens.
19
A Sketch Window é onde os códigos são escritos. A
Janela de Mensagens serve para informar mensagens
de sucesso ou erros durante a verificação ou a
compilação do código. A Toolbar é composta por três
elementos:
Um menu que contém opções de arquivo (novo,
salvar, abrir, sketches exemplos do Arduino, etc),
editar, sketch, ferramentas e ajuda;
Botões que servem de atalho para as funções dos
menus acima que são mais utilizadas pelos
usuários: Verificar, Carregar, Novo, Abrir, Salvar e
Monitor Serial;
Guias que permitem transitar entre os diferentes
sketches presentes em um projeto.
Os botões da IDE e sua função são identificados
abaixo:
Verificar (Verify): Verifica se existe erro no código
digitado antes de enviar para a placa;
Carregar (Upload): Compila o código e grava na
placa Arduino;
Novo (New): Abre uma janela com um sketch em
branco;
Abrir (Open): Abre um sketch; • Salvar (Save): Salva
o sketch presente naquela janela;
Monitor Serial (Serial Monitor): Abre o monitor
serial.
As demais funções podem ser consultadas no menu
Ajuda do Arduino.
20
Componentes Eletrônicos
O software Arduino IDE (Integrated Development
Enviroment) é um ambiente que permite a criação de
sketches para a placa Arduino, assim como compilar e
fazer upload do código para a placa. A linguagem de
programação é modelada a partir da linguagem
Processing. O ciclo de programação do Arduino é o
seguinte:
Conectar a placa a uma porta USB do computador;
Desenvolver um sketch com comandos para a
placa;
Upload do sketch para a placa utilizando a
comunicação USB;
Aguardar a reinicialização da placa. Após a
reinicialização, o sketch passa a ser executado pela
placa. É importante ressaltar que a partir do momento
que o sketch é gravado na placa Arduino, não há
necessidade de conexão com o computador.
Dessa forma, é possível utilizar o Arduino apenas
alimentando a placa através da porta P4.
21
Protoboard: É uma placa que permite a construção do
circuito eletrônico. É um painel de conexão, com linhas
de furos que permite conectar fios e componentes
eletrônicos. A vantagem em usá-las é pela não
necessidade de soldagem dos componentes
eletrônicos para construir o circuito eletrônico.
22
Diodo Garante que a corrente flua apenas em uma direção.
Útil quando há alta carga de corrente/tensão no circuito. Este
componente é polarizado, o que significa que a direção em
que ele é posicionado importa, porque colocado em um
sentido ele permite a passagem de corrente e, no outro, ele
bloqueia. O catodo, que normalmente marcado com uma
faixa em um dos lados do componente, é tipicamente
conectado ao ponto de menor energia, ou à terra.
23
Diodos Emissores de Luz (LEDs) É um tipo de diodo que fica
iluminado quando eletricidade passa através dele. Seu
funcionamento se dá de forma semelhante ao diodo.
O anodo, que é tipicamente conectado à maior tensão, tem
normalmente a perna mais longa. Em geral, os LEDs
operam com nível de tensão de 1,6 a 3,3 V, sendo
compatíveis com os circuitos de estado sólido.
É interessante notar que a tensão é dependente do
comprimento da onda emitida. Assim, os LEDs
infravermelhos geralmente funcionam com menos de 1,5V,
os vermelhos com 1,7V, os amarelos com 1,7V ou 2.0V, os
verdes entre 2.0V e 3.0V, enquanto os LEDs azuis, violeta e
ultravioleta geralmente precisam de mais de 3V.
A potência necessária está na faixa típica de 10 a 150 mW,
com um tempo de vida útil de 100.000 ou mais horas.
24
Ponte H É um circuito de eletrônica de potência do tipo
chopper de classe E. Um chopper de classe E converte uma
fonte fixa de corrente contínua fixa em uma tensão de
corrente contínua variável abrindo e fechando diversas
vezes e, portanto, pode determinar o sentido da corrente, a
polaridade da tensão e a tensão em um dado sistema ou
componente. Seu funcionamento dá-se pelo chaveamento
de componentes eletrônicos usualmente utilizando do
método de PWM para determinar além da polaridade, o
módulo da tensão em um dado ponto de um circuito. Tem
como principal função o controle de velocidade e sentido
de motores DC escovados, podendo também ser usado
para controle da saída de um gerador DC ou como inversor
monofásico. O circuito de ponte H é usado para determinar
um sentido de corrente e valor de tensão no controle de
um motor DC, o diagrama abaixo pode ser usado para
ilustrar de modo genérico o funcionamento de tal.
Acionando-se em conjunto, as chaves S1 e S4, o terminal
direito do motor fica com uma tensão mais positiva que o
esquerdo, fazendo a corrente fluir da direita para a
esquerda. Acionandose em conjunto as chaves S3 e S2, o
terminal esquerdo do motor fica com uma tensão mais
positiva que o direito, fazendo a corrente fluir da esquerda
para a direita. Deste modo, o motor adquire sentido de giro
que denotaremos por Sentido 2, que é inverso ao Sentido
1.
Ao acionar em conjunto as chaves S1 e S3 ou S2 e S4
provocamos um curto nos terminais do motor. Isso é
necessário quando deseja-se frear um motor já em
movimento ou aumentar a dificuldade de giro do eixo por
um fator externo. Tal efeito é alcançado pois a máquina DC
passa a se comportar com um gerador quando tem seu
eixo em movimento, tanto no caso da rotação, quanto no
caso do giro do eixo por fator externo.
25
Ao criar-se um curto circuito entre os terminais da máquina
nesse estado, o torque necessário para manter ou colocar
o motor em giro cresce, visto a necessidade de corrente
exigida da máquina para seu movimento, o que causa o
efeito chamado freio motor.
26
Resistor Resiste ao fluxo de corrente elétrica no circuito,
ora possui a finalidade de transformar energia elétrica em
energia térmica por meio do efeito joule, ora possui a
finalidade de limitar a corrente elétrica em um circuito.
Causam uma queda de tensão num circuito elétrico, porém
jamais causam quedas de corrente elétrica, apesar de
limitar a mesma. Isso significa que a corrente elétrica que
entra em um terminal do resistor será exatamente a
mesma que sai pelo outro terminal. Tem valor medido em
ohms, representado por Ω.
As listras coloridas nas laterais do resistor indicam seu
valor (ver tabela de código de cores dos resistores).
27
Resistor dependente de luz Também conhecido pela sigla
inglesa LDR (Light Dependent Resistor). Sua resistência
muda de acordo com a quantidade de luz que incide na sua
superfície, quando a luz que incide sobre o semicondutor
tem uma frequência suficiente, os fótons que incidem
sobre o semicondutor libertam elétrons para a banda
condutora que irão melhorar a sua condutividade e assim
diminuir a resistência.
Servo motor
É uma máquina eletromecânica que apresenta movimento
proporcional a um comando. Recebe um sinal de controle,
que verifica a posição atual para controlar o seu
movimento, indo para a posição desejada, com velocidade
monitorada externamente, sob feedback de um dispositivo
denominado taco ou encoder
28
Em contraste com os motores contínuos que giram
indefinidamente, o eixo dos servo motores possui a
liberdade de apenas cerca de 180º graus, mas são
precisos quanto à sua posição.
Para isso possuem três componentes básicos:
Sistema atuador – É constituído por um motor
elétrico, de corrente alternada ou contínua. Também
está presente um conjunto de engrenagens que
forma uma caixa de redução, com uma relação que
ajuda a amplificar o torque. Tamanho, torque,
velocidade do motor, material das engrenagens,
liberdade de giro do eixo e consumo são
característicaschave para especificação de servo
motores.
Sensor – É um potenciômetro solidário ao eixo do
servo. O valor de sua resistência elétrica indica a
posição angular em que se encontra o eixo e sua
qualidade vai interferir na precisão, estabilidade e
vida útil do servo motor.
Circuito de controle – O circuito de controle é
formado por componentes eletrônicos discretos ou
circuitos integrados e geralmente é composto por um
oscilador e um controlador PID (controle proporcional
integrativo e derivativo) que recebe um sinal do
sensor (posição do eixo) e o sinal de controle e aciona
o motor no sentido necessário para posicionar o eixo
na posição desejada.
29
Piezo Geram tensão elétrica por resposta a uma pressão
mecânica. O efeito piezoelétrico é entendido como a
interação eletromecânica linear entre a força mecânica e
o estado elétrico (forças de Coulomb) em materiais
cristalinos (cerâmicos, polímeros).
É um processo reversível em que os materiais exibem o
efeito piezoelétrico direto e o efeito piezoelétrico reverso,
onde, o direto, se dá pela geração interna de carga
elétrica resultante de uma força mecânica aplicada e, o
reverso, pela a geração interna de uma tensão mecânica
resultante de um campo elétrico aplicado.
O efeito piezoelétrico não existe em materiais que
apresentam simetria central, e desta forma, podem ser
polarizados, ou seja, a piezoeletricidade pode ser
explicada pela assimetria de polarização iônica. Nestes
casos, a polarização elétrica induzida é atribuída à
distribuição eletrônica, que é alterada pela ação externa.
30
Motor DC Converte energia elétrica em energia mecânica
quando eletricidade é aplicada às suas extremidades.
Bobinas de fio dentro do motor tornam-se magnetizadas
quando a corrente flui através delas. Os campos
magnéticos atraem e repelem ímãs, causando o giro do
eixo. Se a direção da eletricidade for invertida, o motor
girará na direção oposta.
31
Motor DC Converte energia elétrica em energia mecânica
quando eletricidade é aplicada às suas extremidades.
Bobinas de fio dentro do motor tornam-se magnetizadas
quando a corrente flui através delas. Os campos
magnéticos atraem e repelem ímãs, causando o giro do
eixo. Se a direção da eletricidade for invertida, o motor
girará na direção oposta.
32
Onde R1 = −𝑉𝑠/50 µA; 𝑉𝑜𝑢𝑡 = 1500 𝑚𝑉 a 150°C; 𝑉𝑜𝑢𝑡 = 250 𝑚𝑉
a 25°C e 𝑉𝑜𝑢𝑡 = −550 𝑚𝑉 a −55°C.
33
Destas junções resultam três zonas de condução, às quais
foram dados os nomes Coletor (C), Base (B) e Emissor (E). A
Base é a região intermédia, o Coletor e o Emissor ficam nos
extremos; o Emissor é diferente do Coletor, visto que
possui mais impurezas. O transístor bipolar fica, portanto,
com duas junções designadas por Coletor-Base e Base-
Emissor. O transistor apresenta exteriormente três
terminais que estão ligados internamente a cada uma das
três zonas de condução. O datasheet do transistor indica
quais são os terminais de cada um, ou seja, é sempre
necessário consultar o manual técnico ou o site do
fabricante. O princípio de funcionamento BJT é o seguinte: a
Base B, com corrente reduzida IB (µA ou mA), permite
controlar a corrente IC (muito mais elevada, mA ou A) da
carga ligada no coletor C ou a potência fornecida à carga
ligada ao coletor; pelo emissor, faz-se o escoamento das
correntes anteriores que somadas originam a corrente de
emissor IE = IB+IC. Polariza-se diretamente a junção Base-
Emissor e inversamente a junção ColetorBase, para que o
transistor funcione na zona ativa, como amplificador de
corrente. O ganho de corrente b é calculado pela expressão
b = IC/IB, e pode variar entre 10 e 450.
34
Destas junções resultam três zonas de condução, às quais
foram dados os nomes Coletor (C), Base (B) e Emissor (E). A
Base é a região intermédia, o Coletor e o Emissor ficam nos
extremos; o Emissor é diferente do Coletor, visto que
possui mais impurezas. O transístor bipolar fica, portanto,
com duas junções designadas por Coletor-Base e Base-
Emissor. O transistor apresenta exteriormente três
terminais que estão ligados internamente a cada uma das
três zonas de condução. O datasheet do transistor indica
quais são os terminais de cada um, ou seja, é sempre
necessário consultar o manual técnico ou o site do
fabricante. O princípio de funcionamento BJT é o seguinte: a
Base B, com corrente reduzida IB (µA ou mA), permite
controlar a corrente IC (muito mais elevada, mA ou A) da
carga ligada no coletor C ou a potência fornecida à carga
ligada ao coletor; pelo emissor, faz-se o escoamento das
correntes anteriores que somadas originam a corrente de
emissor IE = IB+IC. Polariza-se diretamente a junção Base-
Emissor e inversamente a junção ColetorBase, para que o
transistor funcione na zona ativa, como amplificador de
corrente. O ganho de corrente b é calculado pela expressão
b = IC/IB, e pode variar entre 10 e 450.
35
Programação
Variáveis, Cada variável tem função de armazenar seu
respectivo tipo de dado, tornando possível o uso do dado
posteriormente no programa. Para armazenar o dado é
preciso usar o operador de atribuição, ou seja, o sinal de
igual. Antes de serem usadas as variáveis devem ser
declaradas, sem a necessidade de atribuir valor a elas.
36
Recomenda-se dar nomes descritivos às variáveis, para que
o código fique mais legível. É possível adotar qualquer
nome para as variáveis, desde que não sejam usadas as
palavras-chaves do Arduino.
Tipos de variáveis:
int - Números inteiros com sinal (por exemplo, -32768 a
32767).
unsigned int - Números inteiros sem sinal (por exemplo,
0 a 65535).
long - Números inteiros com sinal mais largos (por
exemplo, -2147483648 a 2147483647).
unsigned long - Números inteiros sem sinal mais largos
(por exemplo, 0 a 4294967295).
byte - Números inteiros sem sinal de 8 bits (0 a 255).
char - Caracteres individuais, armazenando valores de
-128 a 127 (ou 0 a 255 com unsigned char).
float - Números de ponto flutuante com precisão
simples (aproximadamente ±3.4E-38 a ±3.4E+38).
double - Números de ponto flutuante com precisão
dupla, mas no Arduino Uno e na maioria das placas, é
equivalente ao float.
bool - Valores booleanos (true ou false).
Esses tipos de variáveis permitem armazenar diferentes
tipos de dados e realizar operações com eles no seu código
Arduino.
Tipos de constantes:
const int - Constantes inteiras (por exemplo, const int
LED_PIN = 13;).
const unsigned int - Constantes inteiras sem sinal (por
exemplo, const unsigned int MAX_COUNT = 100;).
const long - Constantes inteiras mais largas (por
exemplo, const long TIMEOUT = 5000;).
37
const unsigned long - Constantes inteiras sem sinal
mais largas (por exemplo, const unsigned long
MAX_DURATION = 60000;).
const byte - Constantes inteiras sem sinal de 8 bits (por
exemplo, const byte SENSOR_PIN = 2;).
const char - Constantes de caracteres individuais (por
exemplo, const char NEWLINE = '\n';).
const float - Constantes de ponto flutuante (por
exemplo, const float PI = 3.14159;).
const double - Constantes de ponto flutuante com
precisão dupla, mas no Arduino Uno e na maioria das
placas, é equivalente ao float.
Funções pré-definidas
setup(): Função que é chamada uma vez quando o
programa inicia. É usada para configurar o hardware e
inicializar variáveis.
38
Funções de Manipulação de Pinos
39
Funções de Temporização
40