Você está na página 1de 53

Curso de Bsico Arduino!

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Aula 1: Introduo ao Arduino e Portas
Digitais

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Quem sou eu?
Wellington Cssio Faria
Formao:

Curso tcnico Mdio (2o grau)


Tcnico em Eletrnica Industrial, CEP - Centro de Educao Profissional
Tancredo Neves (julho/2010) - concluda.
Graduao
Engenharia da Computao, Inatel (junho/2015) - cursando.

Atividades:
Bolsista de Iniciao Cientfica
Converso de sistemas de medio analgicos para digitais na
Agrometereologia utilizando plataforma Arduino.

Monitor Voluntrio
Cas@viva - Arduino
Natural : Paraispolis - MG
O que ARDUINO?
uma plataforma
de prototipagem eletrnica de hardware
livre, projetada com
um microcontrolador Atmel AVR de placa
nica, com suporte de entrada /
sada embutido, uma linguagem de
programao padro, a qual tem origem
em Wiring, e essencialmente C/C++. O
objetivo do projeto criar ferramentas que
so acessveis, com baixo custo, flexveis e
fceis. Principalmente para aqueles que no
teriam alcance aos controladores mais
sofisticados e de ferramentas mais
complicadas.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
O que que quer dizer open-source?
As placas podem
ser construdas mo ou
comprado pr-montado, o software
(IDE) pode ser
baixado gratuitamente. Os projetos de
hardware de referncia (arquivos de
CAD) esto disponveis sob uma licena
de cdigo aberto,voc livre
para adapt-los s suas
necessidades .

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
O que ARDUINO?

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Hardware do ARDUINO UNO
Boto para
Reiniciar

Portas Digitais
0 13

PWM: 3, 5, 6, 9, 10,
e 11 ( ~ )
Comunicao Serial:
USB 1 e 0 (TX e RX)

Portas
Analgicas
Alimentao 05
Externa Barramento de Microcontrolador
Ministrado por: Wellington Cssio Faria Extenso ATmega328
Contato: wellingtonf@gec.inatel.br
Programao do Arduino
Programao do Arduino pode ser dividido em trs partes principais: estruturas,
valores (variveis e constantes) e funes.

A
linguagem
tem origem
em Wiring,
e
essencialm
ente C/C++

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
PIC assembly X PIC em C X Arduino

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Ministrado por: Wellington Cssio Faria
Contato: wellingtonf@gec.inatel.br
Ministrado por: Wellington Cssio Faria
Contato: wellingtonf@gec.inatel.br
Ministrado por: Wellington Cssio Faria
Contato: wellingtonf@gec.inatel.br
PIC assembly X PIC em C X Arduino

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Shields do Arduino:
Shields so placas que
podem ser conectados em cima
do Arduino estendendo as suas
capacidades.
Os diferentes shields
seguem a mesma filosofia que
do Arduino: eles so baratos de
produzir e fceis de montar e
programar.
Ministrado por: Wellington Cssio Faria
Contato: wellingtonf@gec.inatel.br
Arduino Ethernet Shield

O Shield permite que


Arduino conecte-se
internet.
Existe uma entrada
de carto micro-SD , que
pode ser usado para
armazenar arquivos para
disponibilizar na web.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Arduino WiFi Shield

O Shield permite que que


Arduino conecte-se internet
usando o WiFi.
O Shield WiFi pode se
conectar a redes sem fio que operam
de acordo com as especificaes
802.11be 802.11g.
H uma entrada de carto
micro-SD , que pode ser usado para
armazenar dados que podem serem
transmitidos via WiFi.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Arduino Wireless SD Shield
O Shield permite que uma que
Arduino para comunicar sem fios com um
mdulo sem fios(RF).
Ele baseia-se nos mdulos Xbee
produzidos pela Digi.
H um slot para carto SD.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Shield Arduino GSM Shield

O shield conecta o
Arduino internet usando a
rede GPRS sem fio.
Voc tambm pode
fazer / receber chamadas de
voz (voc vai precisar de um
alto-falante externo e circuito
de microfone) e enviar /
receber mensagens SMS.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Arduino Motor Shield

O shield permite
que voc controle dois
motores DC com sua placa
Arduino, controlando a
velocidade , a direo de
cada um de forma
independente.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
MP3 Player Shield
O MP3 Player Shield tem
a impressionante capacidade de decodificao de MP3
e a funcionalidade de
armazenamento do carto SD. Agora voc pode
puxar arquivos MP3 a partir de um carto SD e
reproduzi-los usando apenas este shield,
efetivamente transformando todo o Arduino em
um completo MP3 Player! O Shield
de MP3ainda utiliza o decodificador de
udio MP3 VS1053B IC para decodificar os arquivos de
udio. O VS1053 tambm capaz de
decodificar udio Ogg Vorbis/MP3/AAC/WMA/MIDI e
codificao IMA ADPCM.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
LCD Shield

O LCD Shield Color,


fornece uma forma
fcil de conectar o
popular Nokia 6100
LCD no Arduino.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Shield EasyVR

The Shield EasyVR um


shield de reconhecimento de
voz para placas Arduino
integrando um mdulo
EasyVR. Ele inclui todas as
funcionalidades do mdulo
EasyVR que simplifica a
conexo placa Arduino e PC.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Sensores

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Sensores

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Sensores

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Livros

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Site Oficial
www.arduino.cc

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
#MoNaMassa!

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
#MoNaMassa!
O setup() funo para
configuraes inicias. Use-se:
Inicializar variveis.
Configurao de pino (entrada ou
sada)
executada apenas uma vez, aps cada
reinicializao da placa Arduino.

o loop() faz exatamente o


que seu nome sugere, e laos
infinito. O Cdigo no loop() ativamente
seu programa a placa Arduino.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Funes para portas Digitais

Portas Digitais
0 13

PWM: 3, 5, 6, 9, 10,
e 11 ( ~ )
Comunicao Serial:
1 e 0 (TX e RX)

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
pinMode( )
Configura o pino especificado como uma
entrada ou sada.

Sintaxe:

pinMode (pino, modo)

Parmetros:

pino: o nmero do pin cujo modo


que voc deseja definir

modo: INPUT (Entrada)


OUTPUT (Sada)
INPUT_PULLUP (Entrada com
PULL-UP)

Retorno:
Nenhum
Ministrado por: Wellington Cssio Faria
Contato: wellingtonf@gec.inatel.br
pinMode( )

Quando pressionado
Configurao de Portas envia 5 volts (HIGH)
Digitais: para porta.

pinMode (pino, modo)

modo: INPUT (Entrada)


OUTPUT(Sada)
INPUT_PULLUP (Entrada
com PULLUP interno,
essa opo no Quando pressionado
necessrio o circuito envia 0 volts(GND)
PULLUP externo (LOW) para porta.
podendo assim ser
ligado diretamente no
GND.
*No se utiliza para
entradas analgicas.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
digitalWrite()
Escreve uma valor ALTO ou valor
BAIXO para um pino digital
configurado como SADA.

Sintaxe:

digitalWrite (pino, valor)

Parmetros:

pino: o nmero do pino


valor: HIGH (ALTO ) ou LOW (BAIXO)

Retorno:

Nenhum

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
digitalRead()
L o valor de um pino digital
especificado, ALTO ou BAIXO
definido como ENTRADA.

Sintaxe

digitalRead (pino)

Parmetros

pino: o nmero do pino digital que


voc quer ler configurado como
ENTRADA

Retorno:

HIGH ou LOW

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Exerccio Portas Digitais
1- Faa um programa que faa o LED1 da placa (pino 13) piscar de 1 em 1 segundo.
Ligue um outro LED2 no pino 4 da porta digital e toda vez que o boto(PULL-UP Interno
pino 3) for precisado o LED2 deve ligar, caso contrario o LED2 deve ficar apagado.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Exerccio Portas Digitais
2- Faa um programa que se boto(D2) estiver pressionado pisque 3 LED (D4,D5,D6)
cada um de cada vez da direita para esquerda no intervalo de 1 segundo. Se o boto
no tiver pressionado pisque 3 LED (D4,D5,D6) cada um de cada vez da esquerda para
direita no intervalo de 1 segundo.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Aula 2: Portas Analgicas, Comunicao
Serial e LCD

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Funes para portas Analgicas

PWM: 3, 5, 6, 9, 10,
e 11 ( ~ )

Portas
Analgicas
05

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
analogReference( )
As opes so:
Configura a tenso de referncia utilizada DEFAULT: a referncia analgica
para a entrada analgica (SETUP) padro de 5 volts
INTERNAL: referncia igual a 1,1
volts(ATmega168 ou ATmega328)
INTERNAL1V1: referncia 1.1V
referncia (apenas Arduino Mega)
INTERNAL2V56: referncia 2.56V
(apenas Arduino Mega)

Tenso de Referncia
EXTERNAL: referncia de tenso
aplicada ao pino AREF (0 a 5V )

Sintaxe:
analogReference(tipo)
Parmetro:
tipo: DEFAULT, INTERNO,
INTERNAL1V1, INTERNAL2V56 ou
EXTERNAL.
Retorno:
Nenhum
Ministrado por: Wellington Cssio Faria
Contato: wellingtonf@gec.inatel.br
analogRead( )
L o valor do pino analgico especificado. Sintaxe:

analogRead (pino)

Parmetros:

pino: o nmero do pino de entrada


analgica.

Retorno:

Nmero inteiro de 0 a 1023

Mapeia tenses de
entrada entre 0 e tenso Convertendo Retorno em Tenso:
de referncia em valores
inteiros entre 0 e 1023
=
1024

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
analogWrite( )
Escreve um valor tenso no pino Sintaxe:
especificado PWM.
analogWrite(pino, valor)

Parmetros:

pino: Nmero do pino .

Valor : Entre 0 (0 Volts/ 0% Duty) a 255


(5 Volts/100% Duty).

Returno: Arduino Uno:


PWM: 3, 5, 6, 9, 10,
Nenhum e 11 ( ~ )

5
=
255

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Funes para Comunicao Serial
Usado para a comunicao entre a placa Arduino e um
computador ou outros dispositivos.

Comunicao Serial:
1 e 0 (TX e RX)

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Serial.begin( )
Define a taxa de dados em bits por
segundo (Banda) para a transmisso de
dados serial .

Sintaxe:

Serial.begin (velocidade)

Parmetros:

Velocidade: em bits por segundo (banda)

Retorno:

Nenhum
Para se comunicar com o computador, use uma
dessas taxas: 300, 600, 1200, 2400, 4800, 9600,
14400, 19200, 28800, 38400, 57600 ou 115200.
Ministrado por: Wellington Cssio Faria
Contato: wellingtonf@gec.inatel.br
Serial.print( )
Imprime/Envia dados para a porta
serial/computador.

Sintaxe:

Serial.print (val)

Parmetros:

val: o valor para imprimir - qualquer tipo


de dados

millis (): Retorna o nmero de milissegundos desde que o


Arduino comeou a executar o programa atual.
delay(): Pausa o programa para a quantidade de tempo (em
milissegundos) especificado como parmetro. (1000
milissegundos so um segundo.)

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Serial.read( ) / Serial.available( )
L os dados de entrada Serial.

Sintaxe:

Serial.read ()

Parmetros:

Nenhum

Retorna:

Um numero inteiro referente


a tabela ASCII.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Tabela ASCII

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Exerccio
1- Faa um programa que leia o sensor LM35 utilizando a porta analgica 0, e envia esse
dado para computador de 1 em 1 segundo em C.

O sensor LM35 um sensor de preciso,


fabricado pela National Semiconductor ,que
apresenta uma sada de tenso linear relativa
temperatura em que ele se encontrar no
momento em que for alimentado por uma
tenso de 4-20Vdc e GND, tendo em sua sada
um sinal de 10mV para cada Grau Celsius de
temperatura.
Ministrado por: Wellington Cssio Faria
Contato: wellingtonf@gec.inatel.br
LiquidCrystal Biblioteca
Esta biblioteca permite que uma placa
Arduino possa controlar um LCD baseado no
Hitachi HD44780

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
LiquidCrystal Biblioteca
LiquidCrystal ()
Cria uma varivel do tipo LiquidCrystal.

Sintaxe:
LiquidCrystal NOME (rs, enable,D4, D5,D6,D7)

begin ()
Especifica as dimenses (largura e altura)
do display.

Sintaxe:
lcd.begin (colunas, linhas)

Parmetros:
lcd: uma varivel do tipo LiquidCrystal
colunas: o nmero de colunas do LCD
linhas: o nmero de linhas do LCD

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
LiquidCrystal Biblioteca
print ()
Imprime texto ao LCD.

Sintaxe:
lcd.print (dados)

Parmetro:

lcd: uma varivel do tipo LiquidCrystal

dados: os dados para imprimir (char,


byte, int, long, ou string)

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
LiquidCrystal Biblioteca

setCursor ()
Posicione o cursor LCD, isto , definir o
local em que o texto subseqente
escrito no LCD.

Sintaxe:
lcd.setCursor (coluna, linha)

Parmetros:
lcd: uma varivel do tipo LiquidCrystal

coluna: a coluna na qual se posiciona o


cursor (sendo 0 a primeira coluna)

linha: a linha em que a posio do cursor


(sendo 0 a primeira linha)

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
Exerccio
2- Faa um programa que imprima na Primeira linha o seu primeiro nome e na segunda
linha o primeiro nome do seu parceiro de bancada.

4- Entre em file/exemples/LiquidCrystal/Scroll e rode o programa.

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br
FIM

www.facebook.com/engenheiromaonamassa

Ministrado por: Wellington Cssio Faria


Contato: wellingtonf@gec.inatel.br