Primeiros Passos Com Arduino-V0RV1

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 43

 

 
 
Primeiros passos com 
Arduino 
 
Entre no fascinante mundo da eletrônica e programação 

Fábio Souza 
 
 
 
 
 
1ª Edição 
 
 
 
 
 
 
2019

 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Aviso legal 
 
 
Este  eBook  foi escrito com fins didáticos, e com todos os esforço para que ele 
ficasse o mais claro e didático possível. 
 
O  objetivo  deste  eBook  é  educar.  O  autor  não  garante  que  as  informações 
contidas neste eBook estão totalmente completas e não deve ser responsável 
por quaisquer erros ou omissões. 
 
O  autor  não  será  responsabilizado  para  com  qualquer  pessoa  ou  entidade 
com  relação  a  qualquer  perda  ou  dano  causado  ou  alegado  a  ser  causado 
direta ou indiretamente por este eBook. 
 
Se  achar  algum  erro,  ou  tiver  sugestões  de  tópicos  ou  melhorias,  me  envie 
um e-mail: f​ s.embarcados@gmail.com 
 
 

 
 
Este  obra  está  licenciado  com  uma  Licença  ​Creative  Commons 
Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional​. 

   


2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

PROMOÇÃO: Curso Online na UDEMY 

Aproveite  e  faça  o  curso  online  sobre  o  assunto  tratado  nesse  ebook  através  da 
plataforma  Udemy.  Estou  disponibilizando  um  desconto  especial  de  80%  para  você 
aproveitar esse curso.  
 

 
 

Aprenda Arduino usando o simulador Tinkercad


2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Sumário 
 

Sobre o Autor 6 

Introdução 7 

O que é Arduino? 8 

Plataforma de desenvolvimento Arduino 9 


Hardware 10 
Placas Arduino 10 
Shields e módulos 12 
Software 13 
Instalando a IDE Arduino 15 

Primeiros passos na IDE 16 


Hello World - Blink 21 
Conhecendo os detalhes da placa Arduino UNO 23 
Pinout da placa Arduino UNO 24 
Características físicas da placa Arduino UNO 24 

Programação Arduino 25 


Estrutura de um programa ARDUINO 25 
Saídas Digitais 26 
Exemplo: Pisca LED 28 
Entradas Digitais 30 
Exemplo: Leitura de tecla 31 
Entradas Analógicas 33 
Exemplo: Leitura de potenciômetro 34 
PWM 36 
Exemplo: Brilho do LED 38 

Próximos passos 40 

Referências 41 

Anexo 1: Referência de Linguagem 42 


FUNÇÕES 42 
VARIÁVEIS 43 
ESTRUTURAS 43 


2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Sobre o Autor 
 
Engenheiro com experiência no  Fábio Souza
desenvolvimento de projetos eletrônicos 
embarcados. Hoje é diretor de operações 
do portal ​Embarcados​, onde trabalha para 
levar conteúdos de eletrônica, sistemas 
embarcados e IoT para o Brasil. 
 
Também atua no ensino eletrônica e 
programação. É entusiastas do movimento 
maker, da cultura DIY e do 
compartilhamento de conhecimento, 
publica diversos artigos sobre eletrônica e 
projetos open hardware. 

 
Com  iniciativas como o projeto ​Franzininho e projetos na área de educação, leva a cultura 
maker para o Brasil capacitando e incentivando professores e alunos a usarem tecnologia 
em suas vidas. Participou da residência hacker 2018 no Red Bull Basement.  
 
Conecte-se com Fábio Souza: 
 
 
Redes Sociais:  Youtube: 
   

   
 

Blog: 
 

 
 
 


2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Introdução 
 
 
A  plataforma  Arduino  foi  lançada  em  2005  na  Itália  com  o  objetivo  de  facilitar  a 
programação  de  microcontroladores  por  estudantes  de  design  e  leigos em eletronica. Ela 
é  muito  popular  atualmente  sendo  usada  em  diversas  áreas,  desde  o 
ensino/aprendizagem  inicial  de  eletrônica  e  programação,  até  em  prototipagem  e 
projetos comerciais. 
 
Através  de  um  hardware  aberto  e  uma  plataforma  de programação de fácil uso, permite a 
criação  de  diversos  projetos  aproveitando  as  facilidades  de  bibliotecas  e  uma  grande 
comunidade ativa. 
 
Esse  ebook  apresenta  o  primeiros  passos  para  você  começar  usar  a  plataforma.  Você  irá 
aprender  o  que  é  Arduino,  encontrará  o  caminho  para  instalar  a  IDE,  conhecerá  os 
detalhes  da  placa  Arduino  UNO,  e  fará  projetos  que  te  darão  base  para  continuar  os 
estudos na plataforma. 
 
Espero  que  aproveite  o  conteúdo  do  ebook  e  que  esse seja um gatilho para você entrar no 
fascinante mundo da eletrônica e programação. 
 
Conte comigo nessa jornada! 
 
Sucesso! 
 
Fábio Souza. 


2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

O que é Arduino? 
 
Arduino  é  uma  plataforma  flexível  open-source  de  hardware  e  software  para 
prototipagem  eletrônica.  É  destinada  a  designers,  hobbistas,  técnicos,  engenheiros  e 
pessoas interessadas em criar projetos ou ambientes interativos. 
 
Criada  em  2005,  na  Itália,  com  base  no  Wiring,  foi  a  plataforma  open  hardware/Open 
source  de  mais  sucesso.  Hoje  ela  é  bastante  usada  na  comunidade  maker  para  o 
desenvolvimento  de  projetos  diversos.  Por  apresentar  uma  grande  quantidade  de 
bibliotecas  e  placas,  facilita  a  prototipagem  tanto  para  os  entusiastas  quanto  para 
empresas.  Isso  mesmo,  muitas  empresas  estão  usando  a  plataforma  Arduino  para 
prototipagem e validação das suas ideias.  
 
Todos  projetos  das  placas  Arduino  estão  disponíveis  para  download  em  seu  site 
(​www.arduino.cc​)  assim  como  a  IDE  (Integrated  Development  Environment  ou  Ambiente 
de Desenvolvimento Integrado) para programação. 
 
A figura a seguir exibe o teste de uma aplicação com relés usando Arduino. 

Fonte: h
​ ttps://pixabay.com/photos/integrated-circuit-computer-arduino-441294/ 
 
 
Então, bora aprender programar o Arduino e dominar o mundo? 
   


2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Plataforma de desenvolvimento Arduino 

 
A plataforma é formada por dois componentes principais: Hardware e Software. 
 
O hardware é composto por placas de prototipagem na qual são construídos os projetos. 

O  software  é  uma  IDE  (Integrated  Development Environment), que possui um conjunto de 


bibliotecas  e  compilador.  Ela é executada em um computador onde é feita a programação, 
conhecida  como  sketch,  na  qual  será  feita  upload  para  a  placa  Arduino,  através  de  uma 
comunicação  serial.  O  sketch  feito  pelo  programador  dirá  à  placa  o  que  deve  ser 
executado durante o seu funcionamento. 


2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Hardware 
 
Existem  diversas  placas  oficiais  de  Arduino  e  muitas  outras  não  oficiais.  As  placas 
Arduino  são  Open  Hardware,  o  que  permitem  a  derivação  e  criação  de  novas  placas  para 
aplicações  específicas  ou  até  mesmo  com  outras  tecnologias  de  microcontroladores  e 
microprocessadores.  
 

Placas Arduino  
 
Acessando  a  Arduino  Store,  você  encontra  uma  gama  de  placas  oficiais  para  as  mais 
diversas  aplicações.  Placas  como  Arduino  UNO,  Arduino  Mega  e  Arduino  Nano,  são 
recomendadas  para  os  iniciantes  e  estão  na  maioria  ​dos tutoriais na internet. Usaremos
com base para esse ebook a Arduino UNO, oK?

 
Mas  não  fique  limitado  as  placas  Arduino  oficiais,  há  uma  infinidade  de  placas 
compatíveis que são excelentes! 


2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

10 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Shields e módulos 

Com  a  padronização  da  pinagem  ​UNO  REV  3​, 


surgiram  diversos  shields  para  as  mais  variadas 
aplicações.  Esses  shields  permitiram  a 
flexibilidade  das  placas  Arduino,  possibilitando  a 
criação  e  testes  de  diversos  projetos  com  a  mesma 
placa base. 
 
 
Shield Ethernet acoplado ao Arduino UNO.  
Fonte: p
​ ixabay  
 
 
 
Além  dos  shields,  diversas  empresas  fornecem  módulos  que  facilitam  as  conexões  de 
sensores e atuadores em projetos: 

Fonte: h
​ ttps://m.media-amazon.com/images/I/71q8CVKP0gL._SR500,500_.jpg 

11 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Software 
 
O  software  para  programação  do  Arduino  é  uma  IDE  que  permite  a  criação  de  sketches 
(programas)  para  diversas  placas  e  facilita  a  portabilidade  de  código  entre  as  placas.  A 
linguagem  de  programação  é  modelada  a  partir  da  linguagem  Wiring  e  possui  uma 
grande quantidade de bibliotecas.​ Confira a referência da linguagem no Anexo I. 
 
Quando  pressionado  o  botão  upload  da  IDE,  o  código  escrito  é  compilado  para  uma 
linguagem  que  pode  ser  compreendida  pelo  microcontrolador.  O  upload  é  feito  por  uma 
comunicação serial através de um programa chamado avrdude. 

Fonte: ​https://balau82.wordpress.com/2011/03/29/programming-arduino-uno-in-pure-c/

12 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

A  IDE  apresenta  um  alto  grau  de  abstração,  possibilitando  o  uso  de um microcontrolador 
sem  que  o  usuário  conheça o mesmo, nem como deve ser usado os registradores internos 
de  trabalho.  Não  é  necessário a configuração de toolchain, como geralmente acontece em 
programação de microcontroladores. 
  
O ciclo de programação do Arduino pode ser dividido da seguinte maneira: 
 
1. Conexão da placa a uma porta USB do computador; 
2. Desenvolvimento de um sketch com comandos para a placa; 
3. Upload do sketch para a placa, utilizando a comunicação USB; 
4. Aguardar a reinicialização, após ocorrerá à execução do sketch criado. 
 
A  partir  do  momento  que  foi  feito  o  upload o Arduino não precisa mais do computador: o 
Arduino executará o sketch criado, desde que seja ligado a uma fonte de energia. 
 
 
 
 
 
 
 

13 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Instalando a IDE Arduino 


 
 
A  IDE  pode  ser  baixada  gratuitamente  no  ​site  do  Arduino​,  onde  pode  ser  escolhida  a 
melhor opção de download conforme o sistema operacional que você utiliza. 

Instale a versão mais adequada para você! 

14 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Primeiros passos na IDE 


 
Após  a  instalação  da  IDE  no  seu  computador,  você  pode executá-la. Quando se abre a IDE 
do Arduino, será exibido algo semelhante à figura abaixo: 

15 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

A  IDE  é  dividida  em  três  partes:  A  Toolbar  no  topo,  o  código  ou  a  Sketch  Window  no 
centro, e a janela de mensagens na base, conforme é exibido na figura a seguir: 
 

 
Na  Toolbar  há  uma  guia,  ou  um  conjunto  de  guias,  com o nome do sketch. Ao lado direito 
há  um  botão  que  habilita  o  serial  monitor.  No  topo  há  uma  barra  de  menus.Os  botões  na 
Toolbar fornecem acesso rápido às funções mais utilizadas dentro desses menus. 
  
   

16 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Abaixo são identificados os ícones de atalho da IDE: 


 

● Verificar: 
○ Verifica se existe erro no código digitado. 
● Carregar: 
○ Compila o código e grava na placa Arduino; 
● Novo: 
○ Cria um novo s ​ ketch​ em branco. 
● Abrir: 
○ Abre um ​sketch​, presente no sketchbook. 
● Salvar: 
○ Salva o s
​ ketch​ ativo 
● Monitor Serial: 
○ Abre o monitor serial. 

17 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Após  a  conexão  do  Arduino  ao  computador,  é  atribuído  a  placa  uma  porta  serial.  A 
primeira  vez  que  o programa Arduino for executado deve-se selecionar o modelo de placa 
utilizado, no nosso caso escolhemos Arduino UNO, conforme figura abaixo:

   

18 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Após a definição do modelo, deve-se selecionar em qual porta a placa foi atribuída: 
 

Após  estas  configurações  o  ambiente  está  preparado  para  uso  e  pode-se  testar  qualquer 
um dos exemplos que acompanham a IDE ou até mesmo com um novo sketch. 
   

19 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Hello World - Blink 

O  exemplo  mais  simples  para  iniciar  a  programação  do  Arduino,  que  pode  ser 
considerado  como  o  conhecido  “Hello  World”  das  linguagens  de  programação,  consiste 
em acionar um LED através de uma saída digital.  
 
A  placa  Arduino  UNO  já  possui  um  LED  ligado  ao  pino  digital  13  que  pode  ser  utilizado 
para o teste, e na IDE podemos carregar o exemplo Blink: 

20 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.


*/

// Pin 13 has an LED connected on most Arduino boards.


// give it a name:
int​ led = ​13​;

// the setup routine runs once when you press reset:


void​ ​setup​() {
​// initialize the digital pin as an output.
​pinMode​(led, ​OUTPUT​);
}

// the loop routine runs over and over again forever:


void​ ​loop​() {
​digitalWrite​(led, ​HIGH​); ​// turn the LED on (HIGH is the voltage level)
​delay​(​1000​); ​// wait for a second
​digitalWrite​(led, ​LOW​); ​// turn the LED off by making the voltage LOW
​delay​(​1000​); ​// wait for a second
}

Para  verificar  de  o  código  está  correto  deve-se  clicar  no  ícone  Verificar,  após  a 
compilação  é  exibida  uma  mensagem  de  status  da  operação  e caso esteja tudo certo será 
exibida a quantidade de bytes gerados pelo programa: 

  
Para  gravar  o  código  na  memória  flash  do  microcontrolador  é  necessário  clicar  no  ícone 
Carregar,  será  transferido  o  código  para  a  placa  e  após  alguns  segundos  o  LED  ligado  ao 
pino 13 começará a piscar em intervalos de 1 segundo. 

Após  carregado  o sketch na placa, ela não precisa mais do computador para funcionar. Se 


você  alimentá-la  por  outra  fonte  ela  passa  a  executar  o  código  que  está  carregado  na 
placa. 
 
Sempre  que  quiser  gravar  um  novo  código  na  placa,  você  deve  repetir  os  passos 
apresentados acima.

21 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Conhecendo os detalhes da placa Arduino UNO 

A  placa  Arduino  UNO  é  uma  das placas mais 


populares  da  família  Arduino.  Ela  vem  com 
um  microcontrolador  ATmega328P  e  com 
diversos  pinos  para  interface  com  o  mundo 
externo. 
 
A  imagem  ao  lado  exibe  a  placa  Arduino 
UNO vista de cima: 

Os  seguintes  recursos  estão  disponíveis  na 


placa Arduino UNO: 
 
 
Microcontrolador  ATmega328P 
Tensão de operação  5V 
Alimentação externa  7-12V 
Pinos Digitais ( Entradas e Saídas)  14 (6 são saídas PWM) 
saídas PWM  6 
Entradas Analogicas  6 
Fornecimento de corrente por pino  20 mA 
corrente no pino de 3.3V  50 mA 
Memória flash  32 KB 
SRAM  2 KB 
EEPROM  1 KB 
Clock  16 MHz 
LED_BUILTIN  13 
Dimensões  68,6 mm x 53,4 mm 

22 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Pinout da placa Arduino UNO 


 
A  figura  abaixo  exibe  o  pinout  da  placa  Arduino  UNO.  Use  sempre  essa  imagem  para 
consulta quando precisar ligar os pinos em circuitos.  

“​Pinout  of  ARDUINO  Board  and  ATMega328PU​”  por  pighixxx  com  licença  ​Creative  Commons 
Attribution-Share Alike 4.0 International 
 

Características físicas da placa Arduino UNO 


  
A  placa  Arduino  UNO  possui  pequenas 
dimensões  cabendo  na  palma  da  mão. 
Ela  tem  furos  para  que  possa  ser  fixada 
em  alguma  superfície.  A  figura  ao  lado 
exibe as suas dimensões físicas. 
 
 
Fonte:  ​Nice drawings of the Arduino UNO 
and Mega 2560 
 

23 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Programação Arduino 

Essa  seção  exibe  os primeiros passos para programação da placa Arduino UNO. Para esse 


tutorial  você  precisará  de  uma  placa  Arduino  UNO,  LEDs,  protoboard,  potenciômetro  e 
jumpers. 
 
Você  pode  reproduzir  todos  os  exemplos  usando  o  simulador  ​Tinkercad​.  Caso  tenha 
interesse,  tenho  um curso na Udemy que apresenta os ​primeiros com Arduino usando o 
Tinkercad​.  
 
Aproveite o desconto de 80%: 

Estrutura de um programa ARDUINO 

A  estrutura  básica  de  um  programa  para Arduino é extremamente simples. Ela é dividida 


em  dois  blocos  de  funções.  Primeiro  bloco  de  função  é  chamado de ​setup​() ​e o segundo 
é chamado de ​loop​()​. A estrutura é exibida a seguir:
void​ ​setup​() {
​// put your setup code here, to run once:

void​ ​loop​() {
​// put your main code here, to run repeatedly:
}

A  função  ​setup​()  é  responsável  pela  configuração  inicial  do  Arduino  e  a  função  ​loop​()  é 
responsável  pela  execução  das  tarefas.  Ambas  as  funções  são  requeridas  para  o  correto 
funcionamento do Arduino. 
 
A  função ​setup​() segue logo abaixo da declaração de variáveis no início do programa. Esta 
é  a  primeira  função  a  ser  executada.  Ela  é  usada  para  configuração  dos  pinos  ou 
inicialização de periféricos. 

A  função  ​loop​()  vem  em  seguida  e  inclui  os  comandos  que  serão  executados  durante  o 
funcionamento  do  Arduino,  por  exemplo:  leitura  de  entradas, acionamento de saídas, etc. 
Essa é a função principal do Arduino onde é executada a maior parte dos comandos.

24 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Saídas Digitais 
 
As  saídas  digitais  podem  assumir  dois  níveis  lógicos,  ​HIGH  e  ​LOW​.  Esses  níveis  lógicos 
correspondem  a  5V  e  0V  no  pino.  Dessa  forma  podemos  controlar  dispositivos  através 
dos pinos do Arduino. 
 
A placa Arduino UNO possui 14 pinos que são usados para saídas ou entradas digitais: 

Para  usar  um  pino  como  saída  digital  é  necessário  primeiro  configurar  o  pino  desejado 
como  uma  saída  digital  e  só  depois  colocar  o  estado  lógico  para  acionamento  da  saída, 
conforme a lógica do programa. 
 
 
 
 
 
   

25 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Vamos conhecer as funções que são utilizadas para configuração e escrita no pino: 
 
void​ ​pinMode​(); 
  
Essa  função  é  utilizada  para  configurar  um  pino  como  entrada  ou  saída  digital.  Ela 
geralmente é utilizada dentro da função ​setup​()​. Apresenta as seguintes características: 
 
Sintaxe: 
pinMode​(pino, modo); 

  
Parâmetros:  
pino:  Número  correspondente ao pino que se deseja configurar, conforme a placa que está 
trabalhando. No caso da Arduino UNO pode ser de 0 a 13;
modo:​ Modo que deseja configurar o pino: I
​ NPUT​, ​INPUT_PULLUP​, ​OUTPUT​:
- INPUT​: Entrada digital; 
- INPUT_PULLUP​:  Entrada  digital  com  resistor  de  pull-up  (ligado  ao  VCC)  interno 
habilitado; 
- OUTPUT​: Saída digital; 

Retorno:  
Essa função não tem retorno algum. 
 
void​ ​digitalWrite​(); 

A  função  ​digitalWrite​()  coloca  um  nível  lógico  Alto  (​HIGH​,  5V)  ou  baixo  (​LOW​,  0V)  em  um 
pino configurado como saída digital. 

Sintaxe:  
digitalWrite​(pino, valor) 
  
Parâmetros: 
  
pino:​ Número correspondente ao pino; 
valor:​ ​HIGH​ ou ​LOW 
  
Retorno:  
Essa função não tem retorno algum. 

26 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Exemplo: Pisca LED 

Vamos fazer um exemplo para piscar o LED 13 presente na placa Arduino UNO: 
 
Código: 
/*
Pisca LED
Liga o LED por 1 segundo e depois desliga por mais 1 segundo
*/

// Pino 13 tem um led conectado na maioria das placas


int​ LED = ​13​; ​//cria uma variável inteira chamada LED com o número do pino

// rotina de configuração
void​ ​setup​() {
​pinMode​(LED, ​OUTPUT​); ​// inicializa pino do LED como saída digital
}

void​ ​loop​() {
​digitalWrite​(LED, H ​ IGH​); ​// liga LED
​delay​(​1000​); ​// aguarda 1 segundo
​digitalWrite​(LED, L​ OW​); ​//desliga LED
​delay​(​1000​); ​//aguarda 1 segundo
}

Análise do Funcionamento: 

Vamos  analisar  a  sequência  do  código.  Conforme  vimos  na  seção  anterior,  a  primeira 
função  a  ser  executada  é  a  ​setup​()​.  ​No  nosso  exemplo,  dentro  da  função  ​setup​()  ​é  feita  a 
configuração do pino 13, que foi chamado de ​LED​, como uma saíd​a ​digital​ (​OUTPUT​)​. 

Depois  o  programa  vai  para  função  ​loop​() onde fica executando repetidamente a seguinte 


sequência: 
 
loop: 
- Liga LED 
- Espera 1 segundo 
- Desliga LED 
- Espera 1 segundo 
- Volta para loop: 
 

27 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

A  função  ​delay​(ms)  ​espera  um  tempo  em  milisegundos.  No  caso  do  exemplo  acima, 1000 
ms = 1 segundo; 

   

28 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Entradas Digitais 

Um  valor  digital  pode  assumir  dois  valores,  ​HIGH e ​LOW​, ou seja, 5V ou 0V. Podemos usar 


o  pino  configurado  como  entrada  digital  para  ler  estados  de  sensores,  que  por  sua  vez 
representam estados de situações, por exemplo: 

● botão solto ou pressionado; 


● porta aberta ou fechada 
● presença de objeto ou não presença de objeto 

Para leitura de uma entrada digital usamos a seguinte função: 

digitalRead​(pino) 
Lê o valor presente e um pino digital. Este valor pode ser ​HIGH​ ou ​LOW​. 
 
Sintaxe: 
digitalRead​(pino);

Parâmetros: 
pino: valor correspondente ao pino que se deseja ler. 
 
Retorno: 
HIGH​ ou ​LOW​. 

29 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Exemplo: Leitura de tecla 


 
Vamos  fazer  um  exemplo  para  leitura  de  uma  tecla  e  acionamento  do  LED  no  pino  13, 
conforme o estado do botão: 
 
Circuito: 

 
Código: 
/*
Leitura de tecla
Verifica o estado da tecla e aciona o LED
*/

​ nt​ LED = 1
const​ i ​ 3​; //pino do LED
const​ i​ nt​ BT = 2​ ​; //pino do botão

//função de configuração (só é executada no início)


void​ ​setup​()
{
​pinMode​(LED,​OUTPUT​); ​//configura pino do LED como saída
​pinMode​(BT,​INPUT_PULLUP​); ​//configura pino do BT como entrada e com
​//resistor de pull up interno habilitado
}

//função que é executada repetidamente


void​ ​loop​()
{
​//verifica estado do botão
​if​(​digitalRead​(BT) == ​LOW​){ ​//botão foi pressionado
​digitalWrite​(LED,​HIGH​); ​//sim, LIGA o LED
}
​else​{ ​//não,
digitalWrite​(LED,​LOW​); ​//DESLIGA o LED
}

30 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Análise do Funcionamento: 

O  estado  do  botão  é  testado  através  do  ​if​.  Se  a  função  ​digitalRead​(BT)  retornar  o  valor 
LOW​,  significa  que  o botão foi pressionado, assim a condição ​if​(​digitalRead​(BT) == ​LOW​) 
é ver​dadeira, então o botão é ligado. 
 
Caso  o  botão  esteja  solto  o  ​digitalRead​(BT)  retornará  ​HIGH​,  ​então  será  executada  a 
cláusula ​else​, apagando o LED. 

31 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Entradas Analógicas 
 
 
As  entradas  digitais  só  podem  ler  dois  estados,  ​HIGH  e  ​LOW​,  ou  seja,  5  V  ou  0  V.  Por 
exemplo,  verificar  se  uma  porta  está  aberta  ou  fechada,  identificar  se  um  botão  está 
pressionado ou solto, etc.  

Em  muitos  casos  precisamos  ler  valores  que  variam  continuamente  no  tempo,  como  por 
exemplo,  temperatura,  pressão,  luminosidade,  etc.  O  problema  é  que  o  microcontrolador 
só  trabalha  internamente  com  sinais  digitais.  Para  que  o  microcontrolador  possa 
trabalhar  com  sinais  analógicos  é  necessário  um  circuito  que  faça  a  conversão  de  um 
valor  analógico  para  digital.  Felizmente,  hoje  a  maioria  dos  microcontroladores  trazem 
um  conversor  Analógico para Digital integrado. O Atmega328 possui um conversor AD de 
10  bits,  que  pode  converter  valores  analógicos  (de  0  a  5  V,  por  exemplo)  em  um  valor 
digital de 0 a 1023. 
 
A placa Arduino UNO possui 6 pinos que podem ser usados como entrada analógica: 

32 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Para  a  leitura  de  um  sinal  analógico  no  pino  que  possui  essa  função  (A0  a  A5),  não  é 
necessário configurar o pino como entrada analógica. Isso é feito na função de leitura: 
int​ ​analogRead​(pino)
Sintaxe: 
analogRead​(pino);
Parâmetros: 
pino:​ valor do pino configurado como entrada analógica (A0 a A5) 
Retorno: 
int​ (​0​ a ​1023​)

Exemplo: Leitura de potenciômetro 

Vamos fazer a leitura de um potênciometro e enviar o seu valor pela comunicação Serial: 
 
Circuito: 

33 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Código:
/*
Leitura de Potenciômetro
Lê o valor do potenciômetro e imprime o valor da conversão AD na Serial
*/

const​ ​int​ POT = ​0​; //pino onde o potenciômetro está ligado: A0

//função de configuração (só é executada no início)


void​ ​setup​()
{
​pinMode​(POT, ​INPUT​); //configura pino como entrada
​Serial​.​begin​(​9600​); //configura terminal serial
}

void​ ​loop​()
{

​int​ valor = ​analogRead​(A0); /


​ / lê o valor do potenciômetro
​Serial​.​println​(valor); ​ /imprime valor na serial pulando uma linha
/
​delay​(​500​); ​ /aguarda 0,5 segundos para uma nova leitura
/
}

Análise do Funcionamento: 
 
A  leitura  do  potenciômetro  que  foi  ligado  ao  pino  A0  é  feita  a  cada  500 ms e o seu valor é 
impresso no terminal serial: 

Foi  usada  a  função  ​analogRead​(POT)  ​para  leitura  do potenciômetro e ​Serial​.​println​(valor) 


para  imprimir  o  valor  na  serial.  A  comunicação  serial  foi  configurada  para  9600  bps 
através do comando ​Serial​.b
​ egin​(​9600​) ​dentro da função setup. 

34 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

PWM 

PWM,  do  inglês  P


​ ulse  Width  Modulation​,  é  uma  técnica  utilizada  por  sistemas  digitais 
para  variação  do  valor  médio  de  uma  forma  de  onda  periódica.  A  técnica  consiste  em 
manter  a  frequência  de uma onda quadrada fixa e variar o tempo que o sinal fica em nível 
lógico  alto.  Esse  tempo  é  chamado  de  d
​ uty  cycle​, que é o ciclo ativo da forma de onda. No 
gráfico abaixo são exibidas algumas modulações PWM: 

Fonte: h
​ ttp://arduino.cc/en/Tutorial/PWM 

Analisando  as  formas  de  onda  nota-se  que  a  frequência  é  fixa  e  varia-se  o  duty  cycle  da 
forma  de  onda.  Quando  o  ​duty  cycle  está  em  0%  o  valor  médio da saída encontra-se em 0 
V  e  consequentemente para um ​duty cycle de 100% a saída assume seu valor máximo, que 
no  caso  é  5V.  Para  um  ​duty  cycle  de  50%  a  saída  assumirá  50%  do  valor da tensão, 2,5 V e 
assim  sucessivamente  para  cada  variação  no  ​duty  cycle​.  Portanto,  para  calcular  o  valor 
médio da tensão de saída de um sinal PWM pode-se utilizar a seguinte equação: 
 
duty cycle
V out = 100 × V cc  
 

35 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Onde: 
● Vout - tensão de saída em V; 
● duty cycle - valor do ciclo ativo do PWM em %; 
● Vcc - tensão de alimentação em V. 

A técnica PWM pode ser usada para diversas aplicações, como por exemplo: 
● controle de velocidade de motores; 
● variação da luminosidade de leds; 
● geração de sinais analógicos; 
● geração de sinais de áudio. 

A  placa  Arduino  Uno  possui  pinos  específicos  para  saídas  PWM  e  são  indicados  pelo 
carácter ‘~’ na frente de seu número, conforme exibido a seguir: 
 

 
 
 

   

36 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

A  função  ​analogWrite​()  escreve  um  valor de PWM em um pino digital que possui a função 


PWM. Para usar o pino como saída PWM é necessário configurá-lo como saída digital. 

Sintaxe: 
analogWrite​(pino, valor);
Parâmetros: 
● pino​: corresponde ao pino que será gerado o sinal PWM (3,5,6,9,10 e 11); 
● valor​:  corresponde  ao  duty  cycle,  ou  seja,  o  valor  que  permanecerá  em  nível  alto  o 
sinal. 
O  valor  deve  ser  de  0  a  255  onde  com  0  a  saída  permanece sempre em nível baixo e 255 a 
saída permanece sempre em nível alto.

Exemplo: Brilho do LED 


 
Vamos fazer um exemplo para variar o brilho do LED usado PWM. 
 
 
Circuito: 

37 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Código:

/*
Controle de brilho de LED
*/
const​ ​int​ LED = ​9​; //pino onde o LED foi ligado
char​ brilho = ​0​; //variável auxiliar para controle do brilho

void​ ​setup​()
{
​pinMode​(LED, ​OUTPUT​); ​//configura pino como saída
}

void​ ​loop​()
{
​//loop para incremento do brilho de 0 a 100%
​for​ (brilho = ​0​; brilho < ​255​; brilho++) {
​analogWrite​(LED, brilho); ​//atualiza brilho do LED
​delay​(​10​); // Espera 10 ms
}

​//loop para decremento do brilho de 100 a 0%


​for​ (brilho = ​255​; brilho > ​0​; brilho --) {
​analogWrite​(LED, brilho); ​//atualiza brilho do LED
​delay​(​10​); // Espera 10 ms
}
}

Análise do Funcionamento: 
 
O  loops  ​for  fazem  o  controle  de  incremento  e  decremento  do  brilho  do  LED.  O  primeiro 
for​,  inicia  a  variável ​brilho com 0 e a cada laço incrementa em 1 (soma 1) a variável ​brilho​. 
O laço é finalizado quando a variável brilho chega em 255. 
 
Já  o  segundo  ​for​,  inicia  a  variável  ​brilho  em  255  e  decrementa  em  1(subtrai  1)  a  variável 
brilho​ a cada laço. O loop é finalizado quando a variável ​brilho​ chega a 0.  
 
Dentro  dos  loops  ​for​,  o  valor  do  brilho do LED é atualizado a cada 10 ms através da função 
analogWrite​()​ que recebe o valor da variável ​brilho​. 
 
Assim o LED fica aumentando e diminuindo o brilho continuamente. 

38 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Próximos passos 

Chegamos  ao  final  do  ebook,  mas  os  conhecimentos  sobre  Arduino  não  acabam  aqui.  A 
partir  de  agora  você  poderá  explorar  mais  recursos  da  programação  Arduino  e  do  seu 
hardware.  Você  pode  aprender  criando  projetos  que  podem  te  ajudar  no  seu  dia  a  dia. Dá 
pra fazer muita aplicação bacana com Arduino. 
 
Sugiro que dê uma explorada nos projetos publicados no I​ nstructables​ e H ​ ackter.io. 
 
Caso  precise  de  uma  formação  mais  detalhada,  tenho  alguns  cursos  na  Udemy  que 
podem te ajudar. Veja aqui os meus cursos: h ​ ttps://www.udemy.com/user/fabiosouza/ 
 
Fique a vontade para me adicionar nas redes sociais e entrar em contato. 
 
Desejo muito sucesso pra você. 

   

39 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Referências 

● https://www.arduino.cc/ 
● https://www.arduino.cc/en/Guide/HomePage 
● https://www.arduino.cc/reference/pt/ 
● https://www.embarcados.com.br/serie/primeiros-passos-com-arduino/ 

40 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

Anexo 1: Referência de Linguagem 


A  linguagem  de  programação  do  Arduino  pode  ser  dividida  em  três  partes  principais: 
estrutura,  valores  (variáveis  e  constantes) e funções. A seguir você encontra os links para 
a referência da linguagem  
 

FUNÇÕES 
 
Para controlar a placa Arduino e realizar computações. 
 
 
Entradas e Saídas Digitais  Funções Matemáticas  Números Aleatórios 
● digitalRead()   ● abs()   ● random()  
● digitalWrite()   ● constrain()   ● randomSeed()  
● pinMode()   ● map()   Bits e Bytes 
Entradas e Saídas Analógicas  ● max()   ● bit()  
● analogRead()   ● min()   ● bitClear()  
● analogReference()   ● pow()   ● bitRead()  
● analogWrite()   ● sq()   ● bitSet()  
Apenas Zero, Due e Família MKR  ● sqrt()   ● bitWrite()  
● analogReadResolution()   Funções Trigonométricas  ● highByte()  
● analogWriteResolution()   ● cos()   ● lowByte()  
Entradas e Saídas Avançadas  ● sin()   Interrupções Externas 
● noTone()   ● tan()   ● attachInterrupt()  
● pulseIn()   Caracteres  ● detachInterrupt()  
● pulseInLong()   ● isAlpha()   Interrupções 
● shiftIn()   ● isAlphaNumeric()   ● interrupts()  
● shiftOut()   ● isAscii()   ● noInterrupts()  
● tone()   ● isControl()   Comunicação 
Funções Temporizadoras  ● isDigit()   ● Serial  
● delay()   ● isGraph()   ● Stream  
● delayMicroseconds()   ● isHexadecimalDigit()   USB 
● micros()   ● isLowerCase()   ● Keyboard  
● millis()   ● isPrintable()   ● Mouse  
  ● isPunct()  
● isSpace()  
● isUpperCase()  
● isWhitespace()  

41 
2019 
Ebook - Primeiros Passos com Arduino - Fábio Souza 

VARIÁVEIS 
Tipos de dados e constantes da linguagem Arduino.
Constantes  Tipos de Dados  Escopo de Variáveis e 
● Constantes   ● String()   Qualificadores 
● Constantes Inteiras   ● bool   ● const  
● Constantes de Ponto  ● boolean   ● escopo  
Flutuante   ● byte   ● static  
Conversão  ● char   ● volatile  
● byte()   ● double   Utilitários 
● char()   ● float   ● PROGMEM  
● float()   ● int   ● sizeof()  
● int()   ● long    
● long()   ● short  
● word()   ● string  
● unsigned char  
● unsigned int  
● unsigned long  
● vetor  
● void  
● word  

ESTRUTURAS 
 
Os elementos da linguagem Arduino (C++). 
 
Sketch  Operadores Aritméticos  Operadores para Ponteiros 
● loop()   ● % ​(resto)   ● & (​ referência)  
● setup()   ● * ​(multiplicação)   ● * ​(desreferência)  
Estruturas de Controle  ● + ​(adição)   Operadores Bitwise 
● break   ● - ​(subtração)   ● & (​ E)  
● continue   ● / ​(divisão)   ● << (​ deslocamento à 
● do...while   ● = (​ operador de atribuição)   esquerda)  
● else   ● Operadores de  ● >> (​ deslocamento à 
● for   Comparação  direita)  
● goto   ● != (​ diferente de)   ● ^ (​ OU EXCLUSIVO)  
● if   ● < (​ menor que)   ● | ​(OU)  
● return   ● <= (​ menor que ou igual a)   ● ~ ​(NÃO)  
● switch...case   ● == (​ igual a)   Operadores de Atribuição 
● while   ● > ​(maior que)   Composta 
Outros Elementos da Sintaxe  ● >= ​(maior que ou igual a)   ● &= (​ atribuição por e)  
● #define (​ define)   Operadores Booleanos  ● *= ​(atribuição por 
● #include (​ include)   ● ! (​ NÃO lógico)   multiplicação)  
● /* */ ​(comentário em  ● && (​ E lógico)   ● ++ ​(incremento)  
bloco)   ● || ​(OU lógico)   ● += ​(atribuição por adição)  
● // ​(comentário)   ● -- ​(decremento)  
● ; ​(ponto e vírgula)   ● /=​(atribuição por divisão)  
● {} (​ chaves)   ● ^= (​ atribuição por ou 
exclusivo)  
● |= (​ atribuição por ou)  
 

42 
2019 

Você também pode gostar