Você está na página 1de 55

Programao Bsica em

Arduino
Material produzido para o projeto Oficina de Robtica por:
Anderson Luiz Fernandes Perez
Heron Pereira
Valter Savi Jnior
Contatos:
Universidade Federal de Santa Catarina -Laboratrio de
Automao e Robtica Mvel
anderson.perez@ufsc.br
heron_pereira@hotmail.com
savivalter@gmail.com

http://oficinaderobotica.ufsc.br/programacao-basica-em-
arduino/

UFSC Programao Bsica em Arduino - 2015


ELETRNICA
Introduo ARDUINO
Diagramas Esquemticos Introduo ao Arduino
Corrente e Tenso Arduino UNO
Resistncia Eltrica Programao
Condutores e Isolantes Ambiente de
Resistores Desenvolvimento
LED Funes setup() e loop()
Protoboard Monitor Serial
Motor DC E/S Digital
Ponte H Entrada Analgica
PWM

UFSC Programao Bsica em Arduino - 2015


UFSC Programao Bsica em Arduino - 2015
O Arduino uma plataforma utilizada para
prototipao de circuitos eletrnicos.
O projeto do Arduino teve incio em 2005 na
cidade de Ivrea, Itlia.
O Arduino composto por uma placa com
microcontrolador Atmel AVR e um ambiente de
programao baseado em Wiring e C++.
Tanto o hardware como o ambiente de
programao do Arduino so livres, ou seja,
qualquer pessoa pode modific-los e
reproduzi-los.
O Arduino tambm conhecido como
plataforma de computao fsica.

UFSC Programao Bsica em Arduino - 2015


Tipos de Arduino
Existem vrios tipos de Arduino com especificidades de
hardware. O site oficial do Arduino lista os seguintes
tipos:
Arduino UNO
Arduino Leonardo
Arduino Due
Arduino Esplora
Arduino Mega
Arduino Mega ADK
Arduino Ethernet
Arduino Mini
Arduino LilyPad
Arduino Micro
Arduino Nano
Arduino ProMini
Arduino Pro
Arduino Fio

UFSC Programao Bsica em Arduino - 2015


Referncias na WEB:
O site oficial do Arduino http://arduino.cc
Um documentrio sobre o Arduino pode ser
assistido em:
http://arduinothedocumentary.org/

UFSC Programao Bsica em Arduino - 2015


Vista da placa do Arduino UNO Rev 3
(frente e verso)

UFSC Programao Bsica em Arduino - 2015


Caractersticas
Microcontrolador: ATmega328
Tenso de operao: 5V
Tenso recomendada (entrada): 7-12V
Limite da tenso de entrada: 6-20V
Pinos digitais: 14 (seis pinos com sada PWM)
Entrada analgica: 6 pinos
Corrente contnua por pino de entrada e sada: 40
mA
Corrente para o pino de 3.3 V: 50 mA
Quantidade de memria FLASH: 32 KB (ATmega328)
onde 0.5 KB usado para o bootloader
Quantidade de memria SRAM: 2 KB (ATmega328)
Quantidade de memria EEPROM: 1 KB
(ATmega328)
Velocidade de clock: 16 MHz

UFSC Programao Bsica em Arduino - 2015


Alimentao
O Arduino UNO pode ser alimentado pela
porta USB ou por uma fonte externa DC.
A recomendao que a fonte externa seja
de 7 V a 12 V e pode ser ligada diretamente
no conector de fonte ou nos pinos Vin e Gnd.

UFSC Programao Bsica em Arduino - 2015


A eletrnica pode ser definida como a
cincia que estuda formas de controlar a
energia eltrica em circuitos eltricos.
um ramo da engenharia que desenvolve
solues aplicando os princpios de
eletricidade descobertos pela fsica.
Usa circuitos eltricos formados por
condutores eltricos e componentes
eletrnicos para controlar sinais eltricos.
A eletrnica divide-se em analgica e
digital.

UFSC Programao Bsica em Arduino - 2015


tomo
Composto por prtons, nutrons
e eltrons.
Os prtons carregam cargas
positivas e esto presentes no ncleo do
tomo.
Os nutrons no carregam carga e assim
como os prtons esto presentes no ncleo
do tomo.
Os eltrons carregam carga negativa e
orbitam o ncleo do tomo.

UFSC Programao Bsica em Arduino - 2015


tomo

UFSC Programao Bsica em Arduino - 2015


tomo
Quando o tomo possui o mesmo nmero de
eltrons e de prtons considerado neutro.
Quando o tomo possui um nmero maior
de prtons do que de eltrons considerado
positivo.
Quando o tomo possui um nmero maior
de eltrons do que de prtons considerado
negativo.

Ionizao o nome dado quando o


tomo ganha ou perde eltrons.

UFSC Programao Bsica em Arduino - 2015


Atrao e Repulso
Corpos com cargas de sinais opostos de
atraem e corpos com cargas de mesmo sinal
de repelem.

UFSC Programao Bsica em Arduino - 2015


Corrente Eltrica

Os eltrons livres movimentam-se de um


tomo a outro atravs de um meio condutor.
Corrente eltrica um fluxo de eltrons que
circula em um condutor.
A corrente eltrica (I) medida em Ampre (A).
Para os eltrons se moverem de um tomo a
outro necessrio haver uma diferena de
potencial ou tenso.

UFSC Programao Bsica em Arduino - 2015


Sentido Real vs Sentido Convencional
da Corrente Eltrica

Em um circuito os eltrons livres se deslocam


do polo negativo para o polo positivo. Esse
o sentido real da corrente eltrica.

Em anlise de circuitos, entretanto, costuma-


se considerar que os eltrons se deslocam no
sentido oposto: do polo positivo para o polo
negativo. Esse o sentido convencional da
corrente eltrica.

UFSC Programao Bsica em Arduino - 2015


Sentido Real vs Sentido Convencional
da Corrente Eltrica

UFSC Programao Bsica em Arduino - 2015


Tipos de correntes eltricas
Corrente contnua
Os eltrons se movem sempre no mesmo
sentido.
Grande parte dos equipamentos eletrnicos
trabalha com corrente contnua.

UFSC Programao Bsica em Arduino - 2015


Tenso Eltrica
a fora responsvel por impulsionar os
eltrons em um condutor.
A tenso medida em Volts (V).
Exemplos:
Bateria/pilha de 9 volts
Tomada de 110 ou 220 volts

UFSC Programao Bsica em Arduino - 2015


Resistncia eltrica uma grandeza que
indica o quanto um determinado
condutor se ope a passagem de
corrente eltrica.
Bons condutores de eletricidade
possuem um nmero maior de eltrons
livres, por esse motivo possuem uma
baixa resistncia eltrica.
A resistncia eltrica medida em
Ohms e o smbolo a letra grega
mega - .

UFSC Programao Bsica em Arduino - 2015


Condutores
So materiais que pouco se opem
passagem de corrente eltrica.
Possuem baixa resistividade.
Os eltrons da camada de valncia esto
fracamente ligados ao ncleo e, assim,
quebram facilmente suas ligaes com o
tomo, tornando-se livres para
compor a corrente eltrica.

UFSC Programao Bsica em Arduino - 2015


Isolantes
Fazem muita oposio passagem de
corrente eltrica.
Possuem alta resistividade.
Os eltrons da camada de valncia esto
fortemente ligados ao ncleo e, por isso,
precisam de uma energia muito maior para
desfazer suas ligaes com o tomo. Isso
resulta em poucos eltrons livres para
compor a corrente eltrica.

UFSC Programao Bsica em Arduino - 2015


O resistor um componente eletrnico
utilizado para limitar o fluxo de
corrente.
Os resistores podem ser do tipo fixo ou
do tipo varivel.
Os resistores mais comuns so os de
filme de carbono.

UFSC Programao Bsica em Arduino - 2015


Um resistor fixo de filme de carbono
possui em seu corpo faixas coloridas
que indicam o seu valor de resistncia.

Onde:
A primeira faixa indica o primeiro nmero.
A segunda faixa indica o segundo nmero.
A terceira faixa indica o multiplicador.
A quarta faixa indica a tolerncia.

UFSC Programao Bsica em Arduino - 2015


Tabela de cores para a identificao de
resistores
Cores Faixas 1 e 2 Faixa 3 Faixa 4
Preto 0 1 -
Marrom 1 10 1%
Vermelho 2 100 2%
Laranja 3 1000 -
Amarelo 4 10.000 -
Verde 5 100.000 -
Azul 6 1.000.000 -
Violeta 7 10.000.000 -
Cinza 8 - -
Branco 9 - -
Ouro - - 5%
Prata - - 10%
Sem cor - - 20%
UFSC Programao Bsica em Arduino - 2015
Exemplo:

Primeira faixa = laranja -> 3


Segunda faixa = laranja -> 3
Terceira faixa = marrom -> 10

Resistor de: 33 * 10 = 330

Quarta faixa = ouro -> tolerncia de 5%

Resistor de: 313.5 a 346.5

UFSC Programao Bsica em Arduino - 2015


LED (Light-Emitting Diode Diodo
Emissor de Luz)
O LED emite luz visvel (amarela, verde,
vermelha, laranja ou azul) ou luz
infravermelha.
Deve ser ligado em srie com um resistor
limitador de corrente.

UFSC Programao Bsica em Arduino - 2015


LED (Light-Emitting Diode Diodo
Emissor de Luz)
O LED um exemplo de componente
eletrnico polarizado.
O posicionamento desse componente em um
circuito precisa levar em conta os polos da
fonte de alimentao.

UFSC Programao Bsica em Arduino - 2015


Identificao dos Terminais

UFSC Programao Bsica em Arduino - 2015


Ferramenta que auxilia no
desenvolvimento de prottipos de
circuitos eletrnicos.
Torna desnecessria a soldagem de
componentes eletrnicos em uma placa.
composta de furos que so
interconectados por um material
condutor localizado abaixo da camada
de plstico.

UFSC Programao Bsica em Arduino - 2015


A figura ilustra a forma como os furos
esto interconectados.

UFSC Programao Bsica em Arduino - 2015


UFSC - Oficina de Robtica - @2013
Passo-a-passo para a montagem de um
pequeno circuito
Passo 1

UFSC Programao Bsica em Arduino - 2015


UFSC - Oficina de Robtica - @2013
Passo-a-passo para a montagem de um
pequeno circuito
Passo 2

UFSC Programao Bsica em Arduino - 2015


UFSC - Oficina de Robtica - @2013
Passo-a-passo para a montagem de um
pequeno circuito
Passo 3

UFSC Programao Bsica em Arduino - 2015


UFSC - Oficina de Robtica - @2013
Passo-a-passo para a montagem de um
pequeno circuito
Passo 4

UFSC Programao Bsica em Arduino - 2015


UFSC - Oficina de Robtica - @2013
O microcontrolador do Arduino um
computador que segue instrues
detalhadas dadas por seres humanos.
Para que o Arduino execute determinada
tarefa, precisamos ensin-lo a executar
essa tarefa, passo a passo.
Os humanos passam instrues para o
Arduino escrevendo programas.
Um programa uma sequncia de instrues
codificadas em uma linguagem de
programao.

UFSC Programao Bsica em Arduino - 2015


Linguagens de Programao
Uma linguagem de programao um meio
utilizado para se comunicar com computadores,
inclusive o Arduino, de um modo relativamente
simples para os seres humanos.
Os computadores s conseguem executar
instrues a eles enviadas na forma de
sequncias de 0s e 1s (linguagem de mquina).
Passar instrues a um computador usando
linguagem de mquina seria extremamente
complexo e tedioso, por isso usamos linguagens
de programao mais prximas da linguagem
natural.

UFSC Programao Bsica em Arduino - 2015


Algoritmo
Sequncia de passos que visa atingir um
objetivo bem definido.

UFSC Programao Bsica em Arduino - 2015


Processamento de dados

Entrada Processamento Sada

UFSC Programao Bsica em Arduino - 2015


O ambiente de desenvolvimento do
Arduino (IDE) gratuito e pode ser
baixado no seguinte endereo:
arduino.cc.
As principais funcionalidades do IDE do
Arduino so:
Escrever o cdigo do programa
Salvar o cdigo do programa
Compilar um programa
Transportar o cdigo compilado para a placa
do Arduino

UFSC Programao Bsica em Arduino - 2015


Interface principal do ambiente de
desenvolvimento

UFSC Programao Bsica em Arduino - 2015


Primeiro programa: Blink LED

UFSC Programao Bsica em Arduino - 2015


As duas principais partes (funes) de
um programa desenvolvido para o
Arduino so:
setup(): onde devem ser definidas algumas
configuraes iniciais do programa. Executa
uma nica vez.
loop(): funo principal do programa. Fica
executando indefinidamente.
Todo programa para o Arduino deve ter
estas duas funes.

UFSC Programao Bsica em Arduino - 2015


Formato das funes setup() e loop()

UFSC Programao Bsica em Arduino - 2015


Um dado constante quando no sofre
nenhuma variao no decorrer do
tempo.
Do incio ao fim do programa o valor
permanece inalterado.
Exemplos:
10
Bata antes de entrar!
-0,58

UFSC Programao Bsica em Arduino - 2015


A criao de constantes no Arduino
pode ser feita de duas maneiras:
Usando a palavra reservada const
Exemplo:
const int x = 100;
Usando a palavra reservada define
Exemplo:
#define X 100

UFSC Programao Bsica em Arduino - 2015


No Arduino existem algumas constantes
previamente definidas e so consideradas
palavras reservadas.
As constantes definidas so:
true indica valor lgico verdadeiro
false indica valor lgico falso
HIGH indica que uma porta est ativada, ou
seja, est em 5V.
LOW indica que uma porta est desativada, ou
seja, est em 0V.
INPUT indica que uma porta ser de entrada de
dados.
OUTPUT indica que uma porta ser de sada de
dados.

UFSC Programao Bsica em Arduino - 2015


Muitas vezes importante comentar alguma
parte do cdigo do programa.
Existem duas maneiras de adicionar
comentrios a um programa em Arduino.
A primeira usando //, como no exemplo abaixo:
// Este um comentrio de linha
A segunda usando /* */, como no exemplo
abaixo:
/* Este um comentrio de bloco. Permite acrescentar
comentrios com mais de uma linha */

Nota:
Quando o programa compilado os comentrios
so automaticamente suprimidos do arquivo
executvel, aquele que ser gravado na placa do
Arduino.

UFSC Programao Bsica em Arduino - 2015


Primeiro programa comentado

UFSC Programao Bsica em Arduino - 2015


O Arduino possui tanto portas digitais
quanto portas analgicas.
As portas servem para comunicao
entre o Arduino e dispositivos externos,
por exemplo: ler um boto, acender um
led ou uma lmpada.
Conforme j mencionado, o Arduino
UNO, possui 14 portas digitais e 6
portas analgicas (que tambm podem
ser utilizadas como portas digitais).

UFSC Programao Bsica em Arduino - 2015


As portas digitais trabalham com
valores bem definidos. No caso do
Arduino esses valores so 0V e 5V.
0V indica a ausncia de um sinal e 5V
indica a presena de um sinal.
Para escrever em uma porta digital
basta utilizar a funo digitalWrite(pino,
estado).
Para ler um valor em uma porta digital
basta utilizar a funo digitalRead(pino).

UFSC Programao Bsica em Arduino - 2015


As portas digitais so usadas para entrada
e sada de dados.
Para definir se uma porta ser usada para
entrada ou para sada de dados,
necessrio explicitar essa situao no
programa.
A funo pinMode(pino, estado) utilizada
para definir se a porta ser de entrada ou
sada de dados.
Exemplos:
Define que a porta 13 ser de sada
pinMode(13, OUTPUT)
Define que a porta 7 ser de entrada
pinMode(7, INPUT)

UFSC Programao Bsica em Arduino - 2015


Utilizar o programa anterior pisca LED
para comandar o circuito na
Protoboard;
Ampliar o circuito, utilizando mais
portas e controlando mais LEDs;
Sincronizar os LEDs, para que sejam
habilitados e desabilitados
sequencialmente (exerccio semforo);

UFSC Programao Bsica em Arduino - 2015


UFSC - Oficina de Robtica - @2013
Utilizar 2 semforos sincronizados
funcionais (quando semforo 1 estiver
aberto o 2 deve estar fechado)

UFSC Programao Bsica em Arduino - 2015


UFSC - Oficina de Robtica - @2013