Você está na página 1de 69

Sobre o blog

O Engenheiro Caiara um blog que tem, como principal intuito,


desvendar a engenharia. Afinal, j existe por a, milhares de materiais
com termos tcnicos, difceis de serem
compreendidos logo de cara. Independente de
seu grau de conhecimento sobre a engenharia,
queremos que voc, caro leitor, sinta-se a
vontade lendo nossos artigos e, principalmente,
entenda-os sem complicao.

A Engenharia linda, mgica e maravilhosa,


depois que voc entende seus conceitos e enxerga sua beleza na
prtica.

Ela est a, no seu cotidiano, em tudo a sua volta e o nosso objetivo


mostrar, a voc, como v-la dessa forma.

Sobre o Autor
Formado como Tcnico em Eletrnica pela ETEC Aristteles Ferreira,
atualmente, estudo Engenharia Eltrica em uma universidade
localizada na cidade de Santos. Meu foco
principal seguir na rea de Eletrnica, vertente
na qual tenho mais facilidade e interesse.

O que me motivou a escrever esse E-book foi


mostrar como o Arduino uma ferramenta
simples e fantstica. Elenquei as principais
dvidas, de quem comea com essa plataforma.
E, muitas das coisas que escrevi, um dia tive dvida e tive de pesquisar
rs. Espero que esse material lhe auxilie e consiga despertar o maker,
que h dentro de voc. Espero que goste! Abraos!
SUMRIO

1. O que o Arduino e o que preciso para comear: ............................................ 1


1.1. Hardware .............................................................................................................. 1
1.2. Software ................................................................................................................ 2
1.3. que so as bibliotecas ....................................................................................... 3
1.3.1. Biblioteca essencial (core) ......................................................................... 4
1.3.2. Bibliotecas padro ...................................................................................... 4
1.3.3. Biblioteca de terceiros ............................................................................... 5
1.4. Blink Led ................................................................................................................ 8
1.5. Entendendo o Cdigo ........................................................................................ 9
1.6. Resumo ............................................................................................................... 11
2. Entradas e sadas do Arduino UNO ..................................................................... 12
2.1. Entradas e Sadas Digitais ............................................................................... 14
2.2. Entendendo o cdigo:...................................................................................... 16
2.3. Montagem do hardware ................................................................................. 17
2.4. Conhea o mundo analgico ......................................................................... 18
2.5. A leitura de um potencimetro ..................................................................... 19
2.6. Montagem do hardware ................................................................................. 20
2.7. Resumo ............................................................................................................... 22
3. Sensores para utilizar em seus projetos............................................................. 23
3.1. Os diferentes tipos de sensores existentes ............................................... 23
3.1.1. Entendendo o LDR .................................................................................... 24
3.1.2. Leia o valor do LDR para acionar uma carga ..................................... 24
3.1.3. Entendendo o cdigo: .............................................................................. 25
3.1.4. Montagem do hardware .......................................................................... 26
3.2. Resumo ............................................................................................................... 27
4. Mdulos e shields para incrementar seus projetos. ........................................ 28
4.1. Cuidados que devem ser tomados............................................................... 30
4.2. Explorando o mdulo rel de 2 canais ........................................................ 30
4.2.1. Acionando cargas com o mdulo Rel ................................................. 32
4.2.2. Entendendo o cdigo: .............................................................................. 33
4.2.3. Montagem do hardware .......................................................................... 34
4.3. Mdulos e shields interessantes de se explorar ....................................... 36
4.4. Resumo ............................................................................................................... 37
5. Comunicando seu Arduino com o mundo. ........................................................ 38
5.1. Comunicao Serial .......................................................................................... 38
5.2. Comunicao SPI .............................................................................................. 39
5.3. Comunicao I2C .............................................................................................. 41
5.4. Comunicao One Wire ................................................................................... 42
5.5. Protocolo Firmata ............................................................................................. 43
5.6. Comunicao Bluetooth .................................................................................. 44
5.6.1. Conhea o mdulo bluetooth HC-06 ................................................... 45
5.6.2. Controle um Led RGB via Bluetooth ..................................................... 46
5.6.3. Entendendo o cdigo: .............................................................................. 47
5.6.4. Montagem do hardware .......................................................................... 48
5.6.5. Faa o teste com um aplicativo .............................................................. 49
5.7. Outras comunicaes ...................................................................................... 52
5.8. Resumo ............................................................................................................... 52
A. Apndice - Guia para codificar seu Arduino. .................................................... 54
A.1. Variveis .............................................................................................................. 54
A.1.1. Tipos de variveis ...................................................................................... 54
A.1.2. Arrays ........................................................................................................... 55
A.1.3. Strings .......................................................................................................... 56
A.1.4. Constantes .................................................................................................. 56
A.1.5. Escopo de variveis................................................................................... 56
A.2. Instrues de Controle .................................................................................... 57
A.2.1. If, else, else if............................................................................................... 57
A.2.2. Switch case.................................................................................................. 58
A.3. Loop ..................................................................................................................... 59
A.3.1. For ................................................................................................................. 59
A.3.2. While ............................................................................................................. 59
A.3.3. Do While ...................................................................................................... 60
A.4. Funes ............................................................................................................... 60
A.5. Resumo ............................................................................................................... 61
B. Apndice - Onde aprender mais.......................................................................... 62
B.1. Blog Engenheiro Caiara ..................................................................................... 62
B.2. Outros links e materiais teis ........................................................................ 62
1. O QUE O ARDUINO E O QUE PRECISO PARA COMEAR:

No possvel falar de Arduino, sem conhecer um pouco de sua


histria e a idealizao do projeto.

O projeto fora iniciado na Itlia, na cidade de Ivrea em


2005,durante oInteraction Design Institute, tendo como objetivo a
interao de projetos escolares, de forma que se obtivesse um
sistema de prototipao com baixo custo e fcil utilizao.

O nome Arduino uma referncia a um bar local, frequentado por


membros do corpo docente e alunos do instituto. As placas eram
vendidas em forma de kits, estimulando os alunos a montarem
seus prprios projetos. O mundo percebeu a facilidade de uso e
poder, dessa incrvel plataforma para prototipagem rpida e uma
forma de introduzir a programao de microcontroladores. Com
isso, o projeto original foi sendo otimizado e novas verses
introduzidas.

Hoje, o sucesso tanto, que existem inmeras verses da placa e


distribuidores espalhados pelo mundo inteiro, vendendo o
produto. Realmente, a plataforma Arduino mudou o conceito de
prototipagem e ajudou muita gente a colocar sua ideia em prtica,
sem precisar ter conhecimentos avanados de eletrnica.

1.1. H ARDWARE

Atualmente, h uma srie de verses do Arduino, sendo a maioria

baseada no microcontrolador de 8bits,Atmel AVR, com a

arquitetura RISC (reduced instruction set computer). Importante

ressaltar o aspecto padro em que so ligados os pinos,

permitindo assim, a ligao de mdulos expansivos, conhecidos

1
como Shields. Tal tpico, discutiremos com mais detalhes no

Captulo 3, desse e-book .

A primeira placa foi baseada no Atmega8, o clock de 16MHz e

memria flash de 8KB. Mais tarde, surgiram placas que utilizavam o

Atmega168, com memria superior ao Atmega8. Hoje, as verses

mais recentes, como Duemilanove e Uno, utilizam o Atmega328

com memria flash de 32KB e comutam, automaticamente, a

alimentao USB e fonte externa. Caso necessite de mais entradas

/ sadas e memria, existe o Arduino Mega1280, com memria

flash de 128KB e o Arduino Mega2560 (verso mais atual), com

memria flash de 256KB.

As placas suportam diversos protocolos de comunicao como:

serial, interface perifrica (SPI) e I2C. Como recurso padro em

cada placa so inclusos: um conector de programao serial in-

circuit (ICSP) e um boto de reset.

Existem vrios modelos e cpias alternativas, porm o escopo do

nosso e-book fazer um breve resumo do hardware, com o foco

no Arduino UNO, que ser descrito com maiores detalhes no

prximo Captulo.

1.2. S OFTWARE

A IDE (Integrated Development Envionment ou Ambiente de

Desenvolvimento Integrado) do Arduino gratuita. Alm disso,

trata-se de uma aplicao multiplataforma, ou seja, funciona no

2
Windows, Linux e MAC OS, isto , voc escolhe a melhor opo de

acordo com o seu sistema operacional.

importante voc j se familiarizar com a IDE, pois onde

escrever seus sketchs, que so as instrues de como seu

Arduino deve funcionar e o que ele deve fazer. A IDE tem uma

interface muito amigvel e, ao programar o Arduino, perceber que

ajuda a mascarar e muito a complexidade do hardware. Ao abrir a

IDE, a interface parecida com essa:

Figura 1.1 - Interface IDE Arduino

1.3. QUE SO AS BIBLIOTECAS

De forma resumida, uma biblioteca um pedao de software que


fornece funcionalidade ao seu projeto, facilitando a codificao.
Fazendo uma comparao, como se voc estivesse fazendo um
trabalho, ento pega um livro e utiliza referencias desse livro no

3
seu trabalho. Analogamente, voc faz isso com as bibliotecas.
Existem trs tipos diferentes de bibliotecas: essencial(core), padro
e a de terceiros. Vamos entender um pouco sobre:

1.3.1. B IBLIOTECA ESSENCIAL ( CORE )

Construda dentro da IDE do Arduino principal, ela fundamental


para o devido funcionamento do seu camarada, responsvel por
mascarar a complexidade do hardware do microcontrolador.
Assim, voc no precisa lidar diretamente com os registradores. A
equipe de desenvolvimento do Arduino estudou muito dos
projetos apresentados pelos alunos e, com isso, desenvolveram
uma biblioteca para deixar os projetos simples de se executar.

Como na maioria dos casos, l-se dados de entrada e sada,


escreve-se dados de sada. Com a biblioteca essencial, essas
tarefas se tornam extremamente simples.

1.3.2. B IBLIOTECAS PADRO

Ao baixar e instalar a IDE do Arduino, algumas bibliotecas padro


esto inclusas. Essas bibliotecas so vistas como necessrias pelo
time de desenvolvimento do Arduino e que, muitas pessoas
utilizaro em seus projetos. Elas no so inseridas por padro em
seus projetos, como a biblioteca essencial, pois o Arduino possui
recursos limitados e, incluir automaticamente n bibliotecas, faria
voc desperdiar recursos, deixando pouco espao para seus
futuros sketches.

A utilizao dessas bibliotecas bastante simples. Voc deve inclu-


las de forma explcita em seus sketches, utilizando a instruo

4
include no topo de seus sketch. Veja um exemplo, usando a
biblioteca Softwareserial:

#include <Softwareserial.h>

Obs.: O nome da biblioteca delimitado por sinais de < e >. No se utiliza


ponto e vrgula (;) no fim da linha.

Seguem mais alguns exemplos de biblioteca padro (Arduino


libraries):

Biblioteca LiquidCrystal;
Biblioteca EEPROM;
Biblioteca Servo;
Biblioteca SPI;
Biblioteca Firmata;

1.3.3. B IBLIOTECA DE TERCEIROS

So disponibilizadas pela comunidade do Arduino, no sendo


distribudas como padro em conjunto com a IDE, havendo a
necessidade de realizar a instalao delas.

Geralmente, utiliza-se bibliotecas de terceiros, quando voc


trabalha com um determinado sensor. Ento, esse sensor possui
uma biblioteca, que auxilia a mascarar sua complexidade, algumas
servem para adicionar funcionalidades biblioteca padro.

Bom, mas como voc adiciona uma biblioteca de terceiros em seu


projeto? Isso bastante simples, e pode ser feito de duas formas,
basicamente:

5
A primeira maneira na prpria IDE do Arduino, na opo (Sketch
> Incluir Biblioteca > Gerenciar Bibliotecas ...):

Figura 1.2 - Adicionar biblioteca de terceiros

Feito isso, aparecer uma janela com diversas bibliotecas, em que


voc poder realizar a pesquisa da biblioteca desejada. Como
exemplo, utilizaremos a biblioteca DHT(utilizada para trabalhar com
sensores de temperatura e umidade DHT11 e DHT22):

6
Figura 1.3 - Instalao biblioteca auxiliar

s clicar em Instalar e pronto, a biblioteca estar disponvel para


uso.

Agora, vamos segunda maneira. Pessoalmente, eu prefiro fazer


dessa forma e creio que grande parte da comunidade tambm.

Voc far o download de um arquivo .zip. Feito isso, na IDE voc


seguir os seguintes passos (Sketch > Incluir Biblioteca > Adicionar
biblioteca .zip). Ento, abrir uma janela para selecionar o arquivo,
ao escolhe-lo, clique em abrir. Com isso, aparecer uma mensagem
na IDE, confirmando a incluso da biblioteca.

Obs.: Ao instalar a biblioteca, ela estar disponvel para uso em projetos


futuros, assim como as bibliotecas padro.

Assim,conclumos nossa descrio sobre as bibliotecas, que sero


exploradas nos prximos captulos desse e-book.

7
1.4. B LINK L ED

Diz a lenda que, todos devem comear a programar com o famoso


Hello World e, s assim, ter sucesso. No caso do mundo de
hardware, deve-se sempre comear pelo clssico exemplo blink
led.

A essa altura, voc j baixou a IDE e j tem instalada em seu


computador, com isso sem delongas vamos comear. O primeiro
passo abrir a IDE do Arduino.V na opo (Arquivos > Exemplos >
01.Basics >Blink) e, ao clicar, voc ver o seguinte exemplo:

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

Most Arduinos have an on-board LED you can control. On the Uno
and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://www.arduino.cc

This example code is in the public domain.

modified 8 May 2014


by Scott Fitzgerald
*/

// the setup function runs once when you press reset or power the
board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever


void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage
level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the
voltage LOW
delay(1000); // wait for a second
}
Lista 1.1 - Exemplo Blink Led

8
1.5. E NTENDENDO O C DIGO

void setup: defino o pino 13 como uma sada digital;

void loop: deixa o pino 13 em nvel lgico 1 por 1s e deixa o pino 13


em nvel lgico 0 por 1s.

Assim, o led fica piscando infinitamente na rotina de loop,


enquanto a placa estiver energizada. Em resumo, o fluxograma
apresentado da seguinte maneira:

Figura 1.4 - Fluxograma funcionamento blinkled

Por padro, o pino 13 do Arduino Uno tem um led. Dessa forma,


dispensa-se a montagem na Protoboard. Claro que, se voc quiser
montar, ser uma experincia muito interessante e recomendo
fortemente.

Para isso, voc precisar dos seguintes materiais:

Protoboard;
Arduino Uno;
LED Vermelho ou outra cor de 5mm;
Resistor de 220;

9
Fios jumper.

A montagem ficar conforme a imagem a seguir:

Figura 1.5 - Montagem na protoboard

Nessa montagem, foi utilizado o pino 13 para acionamento do led,


o resistor com a funo de limitar a corrente no led, para evitar que
o mesmo queime e, por fim, do led ligado um fio jumper para o
GND. Aps finalizar montagem, plugue o USB no Arduino e no
computador, clique em Verificar para checar se h algum erro.
Aps essa verificao, clique em Carregar para passar o cdigo
fonte para a placa, com isso o cdigo carregado e voc j v a
mgica acontecendo :D

10
1.6. R ESUMO

Parabns por chegar at aqui! Esse o Captulo de introduo,


com o objetivo de passar a voc a histria, o que o Arduino e
mostrar um pouco da IDE .
Vimos como piscar um led, com o clssico Blink Led. Como disse,
sem fazer isso, no da pra prosseguir rs. Brincadeiras a parte,
conseguimos entender a estrutura de um sketch e um pouco do
hardware do Arduino.
O prximo captulo, explicaremos o hardware do Arduino Uno e a
utilizao de pinos de entrada e sada.

11
2. ENTRADAS E SADAS DO ARDUINO UNO

Escolhemos o Arduino Uno para exemplificar suas entradas e


sadas, pois o mais utilizado, considerado a porta de entrada para
muitos no universo maker.

A placa j est em sua terceira reviso, onde seu diagrama


esquemtico, pode ser baixado diretamente no site do Arduino.
Alm disso, ainda h a disponibilidade de todos os arquivos para
edio, j que um projeto Open Hardware.

O Uno relativamente pequeno e cabe na sua mo, contm 4


furos para ser fixado em alguma superfcie. Veja a seguir, as
dimenses do mesmo:

Figura 2.1 - Dimenses PCI - Arduino Uno1

Baseado no ATmega328, possui 14 pinos de entrada/sada digital


(dos quais, 6 podem ser utilizados como PWM), 6 entradas
analgicas, cristal oscilador de 16MHz, conexo USB, entrada para

1Fonte <https://blog.arduino.cc/2011/01/05/nice-drawings-of-the-arduino-uno-and-mega-
2560/>

12
fonte de alimentao, cabealho ICSP e boto de reset, contendo
tudo que necessrio para um microcontrolador funcionar.

Alm de suportar os protocolos de comunicao I2C(TWI) e SPI, na


IDE do Arduino h uma biblioteca padro Wire, que simplifica a
comunicao I2C. Pode ficar tranquilo, pois iremos abordar essa
comunicao em um captulo posterior. Em resumo, suas
especificaes tcnicas so, conforme a tabela:

Microcontrolador ATmega328
Tenso de Operao 5V
Tenso de Entrada
7-12V
(recomendado)
Tenso de Entrada (limite) 5-20V
Entradas/Sadas Digitais 14 (6 podem ser utilizadas como PWM)
Entradas Analgicas 6
Corrente por I/O 20mA
Corrente por I/O para 3.3V 50mA
Memria Flash 32KB (0.5KB utilizado para bootloader)
SRAM 2KB
EEPROM 1KB
Clock 16MHz
Led embutido Pino 13
Tabela 2.1 - Especificaes Tcnicas - Arduino UNO

Alguns pinos do UNO, contm funes especiais que importante


citar:

Comunicao Serial: Pino 0 (RX) e pino 1(TX);

Interrupo Externa: Pinos 2 e 3;

PWM: Pinos 3, 5, 6, 9, 10 e 11;

SPI: Pinos 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Permite


comunicao SPI, utilizando a biblioteca padro SPI.

13
I2C: Pinos A4 (SDA) e A5 (SCL). Permite comunicao I2C, utilizando
a biblioteca padro Wire.

AREF: Tenso de referncia para entrada analgica;

O site oficial do Arduino traz o detalhamento de todo o hardware


do UNO, alm dos outros modelos e todos os arquivos para
download. Entretanto, est em ingls (nada como um google
translator, que no possa resolver hehe). Abaixo, segue layout da
placa do Arduino UNO.

Figura 2.2 - Placa Arduino Uno

2.1. E NTRADAS E S ADAS D IGITAIS

Voc foi apresentado, brevemente, ao hardware existente do


Arduino UNO. claro que foi apenas uma introduo, j que nosso
escopo lhe apresentar o poder dessa ferramenta e, comear
lotando sua cabea de informao tcnica e terica, seria uma
experincia traumatizante.

14
Creio que, a forma mais interessante de entender algo
explorando suas possibilidades e agregar conhecimento com
projetos. Agora, vamos explorar as entradas e sadas do uno com
um projeto simples, ok?

Comeando com o seguinte projeto: Ao apertar um boto


(entrada), o led acende (sada) e, ao pressionar de novo, o led
apaga (sada). Com isso, ser explorada a leitura de um pino digital
e, mediante essa leitura, acionada a sada. Vamos ao sketch:

/*
Exemplo de Utilizao Push-button e LED
Utilizado: Arduino Uno, Push-button, LED
Autor: Yhan Christian Souza Silva - Data: 17/11/2016
*/

// --- Hardware ---

#define buttonPin 2
#define ledPin 8

// --- Variveis ---

int ledState = HIGH,buttonState, lastButtonState = LOW;


unsigned long lastDebounceTime = 0, debounceDelay = 50;

// --- Setup ---

void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, ledState);
}

// --- Loop ---

void loop() {
int reading = digitalRead(buttonPin);
if (reading != lastButtonState) {
lastDebounceTime = millis();
}

if ((millis() - lastDebounceTime) >debounceDelay) {


if (reading != buttonState) {
buttonState = reading;
if (buttonState == HIGH) {
ledState = !ledState;
}

15
}
}
digitalWrite(ledPin, ledState);
lastButtonState = reading;
}
Lista 2.1 - Exemplo Push Button e LED

2.2. E NTENDENDO O CDIGO :

pinos: define pino 2 (buttonPin) / pino 8 (ledPin);

variveis: ledState inicia em nvel lgico alto, buttonState para


leitura do estado do boto e lastbuttonState varivel, para salvar a
ltima leitura do boto, as variveis do tipo long so para
verificao do debounce.

void setup: define buttonPin como entrada digital, define ledPin


como sada digital, atribui a ledPin o valor de ledState, iniciando
assim em nvel lgico alto.

void loop: cria-se a varivel reading para atribuir a leitura do boto,


verifica se a leitura foi realizada e combate o efeito de bounce do
boto, usando a varivel lastDebounceTime.

A funo millis() retorna o nmero de milissegundos, desde o incio


do programa.Cada vez que o boto for pressionado, voc atribuir
o valor de millis() varivel lastDebounceTime. Ento, compara-se o
valor millis() com lastDebounceTime, se for maior que o valor da
varivel debounceDelay, que de 50 milissegundos, significa que o
boto foi realmente pressionado de novo. Assim, voc atualiza o
estado do led, invertendo o mesmo, se for HIGH fica LOW e vice-
versa.

16
Obs.: Debounce uma tcnica para evitar oscilaes e acionamentos
acidentais, prejudicando o funcionamento do programa, pode-se ser aplicado
por hardware ou software.

2.3. M ONTAGEM DO HARDWARE

Para montar o projeto proposto, so necessrios os seguintes


materiais:

Protoboard;
Arduino Uno;
LED Vermelho ou outra cor de 5mm;
Push-button;
Resistor de 220;
Resistor de 10k;
Fios jumper.

A montagem ficar conforme a imagem a seguir:

Figura 2.3 - Montagem na protoboard

17
Assim como no exemplo blink led, o resistor em srie com o led
tem a funo de limitar a corrente do mesmo. Para evitar danos ao
componente, com o push button ligado um resistor de pull-down,
para garantir que no haja rudos, que interfiram no devido
funcionamento do circuito.
Aps finalizar montagem, plugue o USB no Arduino e no
computador, clique em Verificar para checar se h algum erro.
Aps essa verificao, clique em Carregar para passar o cdigo
fonte para a placa. Com isso, o cdigo carregado e voc poder
testar, pressionando o boto: Uma vez, o led mudar de ligado
para desligado e, ao pressionar novamente, o led ligar, ou seja,
toda vez que pressionar o boto o led mudar o estado lgico.

2.4. C ONHEA O MUNDO ANALGICO

Na seo anterior, apresentamos as entradas e sadas digitais do


Arduino, utilizando um boto e um led, que assumem dois estados
lgicos, LIGADO ou DESLIGADO. O que fazer, caso queira medir um
sinal analgico ou alterar a luminosidade de um led com um
potencimetro?

A leitura de um sinal analgico realizada, graas as 6 entradas


analgicas, que mencionamos na descrio do UNO. Mas a
alterao de luminosidade de um LED, por exemplo, no
realizada variando a tenso aplicada a ele e sim, usando
modulao por largura de pulso (PWM), que explicarei mais
adiante.

Antes de tudo, vamos entender a diferena entre o mundo


analgico e digital.

Basicamente, no mundo digital tudo possui apenas dois estados, 0


ou 1 (LIGADO ou DESLIGADO). Sendo assim, o Arduino s faz a

18
leitura baseada na tenso aplicada no pino, sendo 0V (LOW) e
5V(HIGH). J no mundo analgico, as coisas possuem um intervalo
de valores, como, por exemplo, a temperatura variar em diversos
valores, onde estipularemos um mximo e um mnimo. Agora que
foi explicada a diferena, vamos explorar um pouco desse novo
mundo.

2.5. A LEITURA DE UM POTENCIMETRO

Esse, sinceramente, um projeto mais simples para ilustrar o


funcionamento de uma entrada analgica. Alm disso, utiliza-se o
potencimetro, que um componente de baixo custo e muito fcil
de encontrar em diferentes lojas de eletroeletrnica de sua regio.
Confira o sketch abaixo:

/*
Exemplo de Leitura Analgica
Utilizado: Arduino Uno, Potencimetro
Autor: Yhan Christian Souza Silva - Data: 17/11/2016
*/

// --- Hardware ---

#define potPin A0

// --- Setup ---

void setup() {
Serial.begin(9600);
}

void loop() {
int reading = analogRead(potPin);
Serial.print("Leitura potenciometro: ");
Serial.println(reading, DEC);
delay(1000);
}

Lista 2.2 - Leitura analgica de um potencimetro

19
Entendendo o cdigo:

pinos: pino A0 para o potencimetro;

void setup: habilita comunicao serial;

void loop: cria-se a varivel reading, para receber o valor lido pelo
pino do potencimetro, que varia de 0 1023 (por conta da
resoluo de 10 bits de uma entrada analgica no UNO).Exibe o
valor em decimal no monitor serial e se aguarda 1s para nova
leitura.

O cdigo desse exemplo , relativamente, simples e puramente


didtico.

2.6. M ONTAGEM DO HARDWARE

Para montar o projeto proposto, so necessrios os seguintes


materiais:

Protoboard;
Arduino Uno;
Potencimetro 10k;
Fios Jumper.

A montagem ficar conforme a imagem a seguir:

20
Figura 2.4 - Montagem na protoboard

To simples como o cdigo, com o hardware devidamente


montado, plugue o USB no Arduino e no computador, clique em
Verificar para checar se h algum erro. Aps essa verificao, clique
em Carregar para passar o cdigo fonte para a placa. Com isso, o
cdigo carregado e ento, abra o Monitor Serial e mexa no
potencimetro.Verificar que, em seu mnimo (gire em sentido
horrio at o fim) o valor ser 0 e, ao girar no sentido anti-horrio
at o fim, o valor ser de 1023. Para exemplificar:

Figura 2.5 - Leitura realizada pelo potencimetro

21
2.7. Resumo

Parabns por concluir mais um Captulo deste ebook! Aps uma


introduo sobre o Arduino, conhecemos um pouco do hardware
do Arduino UNO, alm de suas entradas e sadas.
Vimos como criar sketches, utilizando entradas e sadas digitais
com um push-button e led, alm de compreender um pouco do
mundo analgico e analisar, de forma bem didtica, como isso
funciona. Desafio voc a ir alm: Crie sketches e explore esse
mundo!
No prximo captulo,entraro os sensores, para voc criar solues
ainda mais bacanas e aplicar os conhecimentos adquiridos nos
dois Captulos iniciais. Vamos nessa!?

22
3. SENSORES PARA UTILIZAR EM SEUS PROJETOS.

O que um sensor e qual sua finalidade? No que ele aplicado e


como importante aprender sobre o mesmo, para implementar
em seus projetos?

A definio mais clssica para sensores que, so dispositivos que


respondem a um estmulo externo fsico/qumico de maneira
especfica e mensurvel, como por exemplo: presso, temperatura,
umidade, corrente eltrica etc.

Os sensores so muito utilizados em sistemas de controle, para


anlise de diversos parmetros de mquinas industriais e, tambm,
nas mais diversas aplicaes. Para extrair o mximo deles,
essencial compreender seu real funcionamento e a leitura de seu
Datasheet. Ainda, podemos contar com sensores que podem ser
lidos de forma digital, (pois possuem um circuito eletrnico para
interpretao do sinal e converso), e outros que devem ser lidos
de maneira analgica (em que, atravs do microcontrolador,
realizamos a leitura e interpretao dos valores).

3.1. O S DIFERENTES TIPOS DE SENSORES EXISTENTES

Como mencionado no tpico anterior, nota-se a importncia de


compreender a aplicao e uso dos sensores. Creio que, em mais
80% dos projetos que voc ir desenvolver, seja profissionalmente
ou como hobby, utilizar pelo menos 1 sensor, sendo sua leitura
analgica ou digital. Hoje, com a plataforma Arduino, a leitura de
um sinal vindo de um sensor extremamente simples, pois
geralmente o fabricante concede a biblioteca auxiliar para lidar
com o mesmo, assim facilitando a codificao.

23
Os sensores mais comuns e fceis de encontrar so: o LM35
(temperatura), DHT11/DHT22 (temperatura e umidade), LDR
(luminosidade) e existem muitos outros.

3.1.1. E NTENDENDO O LDR

O LDR (light dependent resistor), ou fotoresistncia, um


componente eletrnico passivo, como uma resistncia varivel, isto
, ela muda conforme a incidncia luminosa sobre ele.

O mesmo muito utilizado em projetos, onde se faz necessrio


medir a luminosidade.Isto porque, seu custo baixo e sua
facilidade de uso. Pode ser encontrado em: medidores de luz,
detentores de incndio, controladores de iluminao etc.

Figura 3.1 - sensor LDR

3.1.2. L EIA O VALOR DO LDR PARA ACIONAR UMA CARGA

Agora que, voc compreendeu um pouco sobre os sensores e sua


importncia, alm de ser apresentado ao LDR, vamos a um
exemplo de utilizao. A partir dos valores lidos pelo LDR, ser

24
acionada a carga LED de alto brilho, quando o valor estiver dentro
das condies que estipularemos no cdigo fonte. Para isso, digite
cuidadosamente o sketch abaixo:
/*
Exemplo de LDR, LED de auto brilho
Utilizado: Arduino Uno, LDR, LED de auto brilho
Autor: Yhan Christian Souza Silva - Data: 17/11/2016
*/

// -- Hardware --
#define pinLdr 0
#define pinLed 8

// -- Variaveis --
int leituraValor = 0;

// -- Setup --
void setup() {
pinMode(pinLed, OUTPUT);
digitalWrite(pinLed, LOW);
}

void loop() {
leituraValor = analogRead(pinLdr);
if(leituraValor < 600) {
digitalWrite(pinLed, HIGH);
delay(125);
}
else digitalWrite(pinLed,LOW);
delay(125);
}
Lista 3.1 - Leitura de LDR e acionamento de LED

3.1.3. E NTENDENDO O CDIGO :

pinos: pinLdr (A0) e pinLed (8);

void setup: define-se o pinLed como sada digital e escreve em sua


sada nvel lgico baixo (LOW), para garantir que comece desligado.

void loop: A varivel leituraValor recebe a leitura analgica do


pinLdr, onde cria-se uma condio para acionamento: se o valor for
menor que 600 (valor que eu estipulei, pode ser outro), o LED

25
acionado; se no, continua desligado. O delay de 125ms o
intervalo para uma nova leitura do sensor LDR.

3.1.4. M ONTAGEM DO HARDWARE

Para montar o projeto proposto, so necessrios os seguintes


materiais:

Protoboard;
Arduino Uno;
LED de auto brilho 5mm;
Sensor LDR;
Resistor de 330;
Resistor de 10k;
Fios jumper.

A montagem ficar conforme a imagem a seguir:

Figura 3.2 - Montagem do circuito na protoboard

O resistor no LED tem a funo de limitar a corrente, como j


explicado nos exemplos anteriores. O outro resistor ligado em

26
conjunto com o LDR, funcionar como um divisor de tenso. Aps
finalizar montagem, plugue o USB no Arduino e no computador,
clique em Verificar, para checar se h algum erro. Aps essa
verificao, clique em Carregar, para passar o cdigo fonte para a
placa.Com isso, o cdigo carregado e voc poder testar,
colocando sua mo prxima ao LDR para variar a luminosidade, ou
apagar a luz de seu quarto, laboratrio etc. Assim o LED acender e
quando houver maior luminosidade o LED apagar.
Tenho uma observao sobre o valor para acionamento do LED:
recomendo que antes de efetuar o teste com o LDR, exibindo seus
valores no Monitor Serial e, caso houver necessidade, altere 600
para o valor que se adeque a sua necessidade, fica o desafio hein :).

3.2. R ESUMO

Parabns por concluir mais um Captulo deste ebook! Este, foi o


Captulo mais breve, pois a inteno foi apresentar o que so
sensores e uma aplicao simples com os mesmos. Claro, existem
vrias aplicaes, com uso de bibliotecas e outras ferramentas que
vale a pena explorar e desafio vo c a isso.
No prximo captulo, que ser um tpico mais detalhado,
falareidos mdulos e shields. Se voc no conhece, pode relaxar,
que esse tpico ser bem explorado logo a seguir. Vamos nessa!?

27
4. MDULOS E SHIELDS PARA INCREMENTAR SEUS PROJETOS.

Os mdulos e shields existentes, com certeza, so uma bela mo


na roda para seus projetos. Eles ajudam, e muito, a eliminar a
complexidade do hardware e voc ganha tempo para testar sua
ideia e elaborar seu prottipo.Antes de tudo, vamos entender a
diferena entre eles.

O mdulo , basicamente, uma plaquinha que contm


componentes eletrnicos e, at, alguns circuitos microcontrolados.
Para utilizar com o Arduino, por exemplo, existe o mdulo rel, que
j possui o circuito de proteo contra corrente reversa, o mdulo
wifi ESP8266, que j contm o circuito para o funcionamento,
mdulo carto SD, entre outros. Muitos dos mdulos podem ser
substitudos pela montagem de uma PCB com os componentes.
Em certos casos, a montagem da placa fica at mais barata, mas a
sua principal vantagem a facilidade de uso.

Figura 4.1 - Mdulo SD Card

28
O shield uma placa de expanso de hardware, que se encaixa no
Arduino, fazendo um (sanduche). A inteno de seu uso acoplar
placa principal funes, que mesma no tem. Inmeros shields
possuem seus prprios conectores, possibilitando empilhar um
sobre o outro. Geralmente, para aproveitar todas suas
funcionalidades, necessria a instalao de bibliotecas adicionais,
disponveis, na maioria das vezes, no website do fabricante. Caso
voc tenha dvida sobre como instalar uma biblioteca de terceiros,
veja o primeiro Captulo do Ebook, onde tratamos o assunto.

O shield mais conhecido de todos o Ethernet Shield, muito


utilizado para projetos com Arduino.

Figura 4.2 - Ethernet shield

S de visualizar a imagem possvel distinguir o Shield e o Mdulo.


Um voc encaixa na placa principal. J o outro, voc utilizar pinos

29
do Arduino, para realizao de acionamento ou leitura de algum
dado.

4.1. C UIDADOS QUE DEVEM SER TOMADOS

Ao utilizar um mdulo e, principalmente, um shield, alguns


cuidados devem ser tomadas, para evitar danos aos seus
equipamentos utilizados. Esse cuidado deve ser redobrado, caso
voc utilize mais de um shield (empilhar um em cima de outro). Isso
porque, deve haver compatibilidade de pino e alimentao. Veja
um site, que contm uma lista com inmeros shields e suas
caractersticas: www.shieldlist.org.

Veja, tambm, se o shield compatvel com seu Arduino. Alguns,


por exemplo, no so compatveis com o Arduino Mega, outros
necessitam de algumas modificaes de hardware, para trabalhar
com esse modelo.

4.2. E XPLORANDO O MDULO REL DE 2 CANAIS

Esse mdulo um dos mais comuns e fceis de encontrar nas lojas


de venda de componentes no Brasil, alm do baixo custo, claro.
Esse mdulo permite o acionamento de at 2 cargas AC, ou cargas
at 30VDC, sendo a corrente mxima suportada de 10A. Possui o
circuito de proteo, para evitar problemas com corrente reversa,
alm de leds indicadores de cada canal. Com esse mdulo, voc
controla lmpadas, ventiladores, equipamentos eletrnicos, etc.

30
Figura 4.3 - Mdulo rel 2 canais

Veja a pinagem desse mdulo:

JD-VCC: Alimentao rel;


VCC GND: Permite alimentao de uma fonte externa de 5V;
GND: Ligar ao Terra do Arduino;
IN1: Aciona o rel 1, liga-se a um pino de sada do Arduino;
IN2: Aciona o rel 2, liga-se a um pino de sada do Arduino;
VCC: Ligar ao VCC do Arduino.

J do lado dos bornes KRE, a pinagem para cada Rel:

NC: Normal Fechado;


K: Comum;
NO: Normal Aberto.

Para acionar os rels muito simples: ele uma sada digital, logo,
voc define seu estado HIGH ou LOW. Um detalhe importante
desse mdulo em questo, que para acionar a carga, deve-se
mandar nvel lgico baixo, ou seja, LOW.

31
4.2.1. A CIONANDO CARGAS COM O MDULO R EL

Como j explicamos, o mdulo rel acionar a carga, ao receber o


nvel lgico baixo, por conta de suas caractersticas de
construo.No exemplo abaixo, acionaremos duas cargas AC, pode
ser duas lmpadas ou outra carga que desejar. O exemplo
bastante simples: havero 2 push-buttons, cada um responsvel
por acionar cada carga. Com isso, vamos utilizar duas entradas e
duas sadas em nosso pequeno exemplo, vamos ao sketch:
/*
Exemplo de Utilizao Mdulo Rel e botes
Utilizado: Arduino Uno, Push-button, mdulo rel 2 canais
Autor: Yhan Christian Souza Silva - Data: 25/11/2016
*/

// --- Hardware ---

#define btnRelay01 2
#define btnRelay02 3
#define relay01 8
#define relay02 9

// --- Variveis ---

int buttonState01, buttonState02, relay01State = HIGH, relay02State


= HIGH, lastBtn01State = LOW, lastBtn02State = LOW;
unsigned long lastDebounceTime = 0, debounceDelay = 50;

// --- Setup ---

void setup() {
pinMode(btnRelay01, INPUT);
pinMode(btnRelay02, INPUT);
pinMode(relay01, OUTPUT);
pinMode(relay02, OUTPUT);
digitalWrite(relay01, relay01State);
digitalWrite(relay02, relay02State);
}

// --- Loop ---

void loop() {
int readRelay01 = digitalRead(btnRelay01);
int readRelay02 = digitalRead(btnRelay02);
if (readRelay01 != lastBtn01State) {
lastDebounceTime = millis();
}
if (readRelay02 != lastBtn02State) {
lastDebounceTime = millis();
}

32
if ((millis() - lastDebounceTime) > debounceDelay) {
if (readRelay01 != buttonState01) {
buttonState01 = readRelay01;
if (buttonState01 == HIGH) {
relay01State = !relay01State;
}
}
if (readRelay02 != buttonState02) {
buttonState02 = readRelay02;
if (buttonState02 == HIGH) {
relay02State = !relay02State;
}
}
}
digitalWrite(relay01, relay01State);
digitalWrite(relay02, relay02State);
lastBtn01State = readRelay01;
lastBtn02State = readRelay02;
}

Lista 4.1 - Utilizao mdulo rel 2 canais

4.2.2. E NTENDENDO O CDIGO :

pinos: 2 (btnRelay01), 3 (btnRelay02), 8 (relay01) e 9 (relay02);

void setup(): define como entrada o btnRelay01 e btnRelay02, como


sada o relay01 atribuindo o estado da varivel relay01State, que foi
inicializada como HIGH, define como sada o relay02 atribuindo o
estado da varivel relay02State, que foi inicializado como HIGH.
Atribui-se esse valor para garantir que, o estado do rel inicial seja
no acionado.Lembrando que, para acionar o mesmo, deve-se
levar a nvel lgico baixo LOW.

void loop(): cria-se as variveis readRelay01 e readRelay02 para


leitura do estado dos botes, verifica-se se os botes foram
acionados, utiliza-se a funo millis() para debounce (tpico
explicado no Captulo 2 deste E-book), caso for acionado, altera o
estado da varivel relay01State caso o btnRelay01 for pressionado,
ou altera o estado da varivel relay02State caso o btnRelay02 for

33
pressionado, em ambos os casos inverte-se o estado se for HIGH
ficar LOW e vice-versa.

Por fim, o programa ser atualizado; atribui-se relay01 o estado


da varivel relay01State e ao relay02 o estado da varivel
relay02State, alm de atualizar os valores das variveis
lastBtn01State e lastBtn02State. Se voc comparar com o sketch
apresentado no Captulo 2, que l um push-button e altera o
estado de um led, a estrutura a mesma, apenas adicionando mais
uma entrada e sada. Isto , um rel acionado uma sada, que
pode ser ativada por uma entrada, assim como um led. Bastante
simples no mesmo rs! :)'

4.2.3. M ONTAGEM DO HARDWARE

Para montar o projeto proposto, so necessrios os seguintes


materiais:

Protoboard;
Arduino Uno;
Mdulo Relay 2 Canais;
2 Lmpadas 220 ou 110V (poder usar outra carga AC);
Cabo Flexvel de 2,5 mm;
Fios jumper.

A montagem ficar conforme a imagem a seguir:

34
Figura 4.4 - Montagem na protoboard

H dois push-buttons com os resistores de pull-down, para garantir


que fique em nvel lgico baixo enquanto no for acionado, nas
portas 8 e 9, liga-se os pinos IN1 e IN2 do mdulo rel, o pino GND,
liga-se ao GND do circuito e o VCC ao VCC do circuito,
respectivamente.Perceba que se manteve o jumper em JD-VCC,
sem a necessidade de uma fonte externa apenas para o rel.

Agora, na ligao das cargas alternadas, uma fase vai direto ao


comum do rel K e outra fase na carga; um fio vai da carga para o
contato NO (normalmente aberto) do rel, completando o circuito.

Recomendo, fortemente, que faa todas as ligaes com o circuito


desenergizado e, aps a montagem, evite testar com seu Arduino
plugado a uma porta USB em seu computador pessoal.Utilize uma
fonte externa, para alimentar o Arduino, creio que em sua casa
deve ter um carregador de 12V de algum equipamento.
Geralmente, seu modem utiliza essa fonte e conecte a entrada P4
de sua placa.

35
Antes de ligar para testar, verifique todas as conexes e tenha
cuidado. Voc estar lidando com tenses de 110 ou 220V, no
manuseie jamais a placa com o circuito energizado, pois poder
tomar um belo de um choque. Vale ressaltar tambm, que faa a
montagem em um local reservado e longe de curiosos em sua
casa, a fim de evitar pequenos acidentes.

Aps de se certificar que tudo est de acordo, ligue o circuito e


teste o mesmo.Verificar que, ao pressionar o boto, o rel ser
acionado (faz um barulhinho bem legal), ligando assim a lmpada,
ou outra carga que decidiu testar.

Obs.: Com 2 metros de cabo flexvel de 2,5mm, voc consegue realizar a


montagem e ainda sobra.Faa cada ligao com um fio de 20cm.

4.3. M DULOS E SHIELDS INTERESSANTES DE SE EXPLORAR

Agora que voc conheceu com maiores detalhes o mdulo rel,


que tal pegar seu kit com mdulos e shields e comear a explorar o
mundo Arduino? Um dos mdulos mais interessantes de se
trabalhar o SD Card. Tente implementar um datalogger e outros
desafios, um shield que conhecido e muito utilizado o Ethernet
Shield, bastante usado para projetos de automao e comunicao
web com seu Arduino.

Explore os mdulos e seja feliz! Apenas tenho uma


recomendao:Antes de prosseguir com qualquer codificao, veja
se o mdulo tem uma biblioteca disponvel e observe suas
especificaes tcnicas antes de sair ligando. Alguns, por exemplo,
trabalham com nveis de tenso de 3.3V.

36
4.4. R ESUMO

Parabns por concluir mais um Captulo deste ebook! Neste


Captulo, descobrimos o que um shield e um mdulo, suas
diferenas e algumas especificaes para utilizarmos os mesmos.
Alm disso, foi mostrado como utilizar o mdulo mais comum de
todos, o rel, com uma aplicao usando os conceitos de entrada
e sada do Arduino. Vale lembrar que, devemos nos atentar quando
lidamos com o circuito AC.
O ltimo captulo desse Ebook, tratar sobre as diferentes
comunicaes existentes como Arduino e explorar alguns
recursos interessantes. Para isso, antes, fique craque em
compreender os conceitos apresentados nos Captulos anteriores.
Vamos nessa ;) !?

37
5. COMUNICANDO SEU ARDUINO COM O MUNDO.

O Arduino pode se comunicar com outros dispositivos


microcontrolados e alguns sensores. Alm disso, tambm pode se
comunicar com o mundo externo, graas a utilizao de um
mdulo ou shield bluetooth, ethernet e wi-fi. Muitos de seus
projetos envolvero comunicao, principalmente via Ethernet, Wi-
Fi, entre outros. Vamos conhecer um pouco de cada comunicao
e alguns dos protocolos, aos quais essa plataforma pode utilizar.

5.1. C OMUNICAO S ERIAL

A comunicao mais simples de se implementar com o Arduino, a


comunicao serial (UART - Universal asysnchronous receiver /
transmitter), possui por padro no Arduino UNO, os pinos 0 (Rx) e 1
(Tx). Alm disso, voc pode habilitar outras portas, com a biblioteca
Softwareserial, geralmente utilizado quando se precisa enviar as
informaes serialmente, como um mdulo GPS e tambm o
mdulo bluetooh. As principais funes da comunicao serial so:

Funo Descrio
available() Retorna nmero de bytes disponveis para leitura
begin() Configura a taxa de transmisso, baud rate
print() Escreve na serial texto em formato ASCII
println() Similar a funo print(), com quebra de linha
read() L o byte mais recente
write() Escreve dados na porta serial
Tabela 5.1 - Funes Serial

Essa comunicao uma verdadeira mo na roda e ajuda em


inmeros exemplos com sensores. Antes de voc implantar um
display para exibio dos valores, quer ver se o valor retornado por

38
um sensor de corrente AC est correto? Mande exibir via serial e
abra o serial monitor que ajuda bastante. Alm disso, um mdulo
bluetooth bem famoso, o HC-05, envia as informaes e recebe as
informaes por meio dessa comunicao.

5.2. C OMUNICAO SPI

A comunicao SPI (Serial Peripheral Interface) um protocolo de


dados sncrono, que pode se comunicar com diversos dispositivos,
inclusive microcontroladores, rapidamente em pequenas
distncias. Sendo um dispositivo o mestre (geralmente o
microcontrolador), controlando outros perifricos, que sero os
escravos. Os canais de comunicao, geralmente, so:

MISO: Entrada mestre, sada escravo;


MOSI: Entrada escravo, sada mestre;
SCK: Clock serial.

A funo de cada item mencionado acima bem simples: MISO


envia os dados do escravo para o mestre, MOSI envia os dados do
mestre para o escravo e o SCK um pulso de clock, que sincroniza
a transmisso de dados. Alm disso, existe um quarto pino seletor
escravo (SS) em cada perifrico, que voc poder usar para
selecionar um dispositivo que ir se comunicar. Usando o pino SS,
voc pode ter mltiplos dispositivos, alternar entre os dispositivos,
definindo HIGH para ignorar o mestre e LOW para se comunicar
com o mestre. No Arduino Uno, os pinos so:

39
Pino Funo
10 SS (slave)
11 MOSI
12 MISO
13 SCK

Tabela 5.2 - Arduino Uno: Comunicao SPI

Para facilitar a codificao, a IDE do Arduino tem uma biblioteca


padro denominada SPI, com dois exemplos de aplicao, que
valem a pena conferir. As funes da biblioteca SPI so:

Funo Descrio
begin() Inicializa barramento SPI, definindo pinos SCK,MOSI
LOW e SS High
end() Desabilita comunicao SPI
setBitOrder(order) Define a ordem na qual os bits so deslocados no
barramento SPI
setClockDivider(amt) Define o divisor de clock de SPI em relao ao clock do
mcu, por padro adota-se um quarto do valor
byte transfer(val) Transfere um byte atravs do barramento SPI em
ambas as direes
setDataMode(mode) Define o modo de clock
Tabela 5.3 - Funes biblioteca SPI

Muitos dispositivos utilizam esse protocolo como meio de


comunicao, como por exemplo, matrizes de LED, mdulo SD e o
prprio Ethernet Shield, que utiliza SPI para se comunicar com o
Arduino.

40
5.3. C OMUNICAO I2C

O protocolo serial sncrono I2C, tambm muito conhecido como


TWI (Two Wire Interface), foi criado pela Phillips Semiconductors, no
incio dos anos 90. Hoje, chama-se NXP Semiconductors. Este
protocolo muito utilizado para transmisses entre dispositivos
em baixa velocidade, sendo o barramento composto por dois fios,
SDA e SCL, alm da alimentao claro. Assim como no SPI, o I2C
possui um dispositivo Mestre e outro Escravo. Onde o mestre
coordena todos os perifricos escravos.

A funo da linha SCL de ser o clock do barramento e a SDA pela


transmisso dos dados. O Arduino UNO tem suporte a essa
comunicao, sendo os pinos:

Pino Funo
A4 SDA
A5 SCL
Tabela 5.4 - Arduino Uno: Comunicao I2C

Para facilitar a codificao, a IDE do Arduino tem uma biblioteca


padro denominada Wire, com alguns exemplos de aplicao que
valem a pena conferir. As funes da biblioteca Wire so:

Funo Descrio
available() Retorna o nmero de bytes disponveis
begin() Inicializa barramento I2C
beginTransmission(adress) Inicia transmisso de dados para o endereo
fornecido
endTransmission() Finaliza transmisso de dados
onReceiver(handler) Registra uma funo a ser chamada, quando um
dispositivo escravo recebe uma transmisso de
um mestre.
onRequest(handler) Registrar uma funo a ser chamada, quando um
mestre solicita dados a partir deste dispositivo
escravo.

41
read() L os bytes transmitidos do escravo para o
mestre
requestFrom() Mestre requisita bytes de um dispositivo escravo
write(value) Escreve dados do escravo em resposta a
requisio do mestre
Tabela 5.3 - Funes biblioteca Wire

Parece bem confusa as descries das funes da biblioteca


Wire...Entretanto na prtica, as coisas ficam mais fceis de
compreender. Como mencionei acima, veja os exemplos e tente
compreender cada etapa do processo.

Muitos dispositivos utilizam esse protocolo como meio de


comunicao, como por exemplo, o mdulo RTC DS1307, o mdulo
I2C utilizado com o display LCD.Outro ponto importante de citar,
que se pode utilizar mais de um dispositivo I2C ao mesmo
tempo.Basta, apenas, definir o endereo de cada dispositivo.

5.4. C OMUNICAO O NE W IRE

O protocolo One Wire foi projetado pela Dallas Semiconductor


Corp, onde prov dados de baixa velocidade, com o conceito
similiar ao I2C, mas com taxas mais baixas de dados e um alcance
maior. O diferencial desse protocolo de comunicao o fato de
utilizar, apenas, 1 fio para dados.Para isso, o dispositivo dispe de
um capacitor de 800pF para armazenar carga e alimentar o
dispositivo, durante a transmisso de dados.

Inmeros dispositivos utilizam esse meio para transmisso de seus


dados. Um exemplo disso o iButton, tecnologia utilizada para
identificao de usurios, com a vantagem do baixo custo e
resistncia do material, que possibilita trabalhar em ambientes

42
hostis. Alm disso, sensores utilizam esse meio para transmitir seus
dados, um exemplo o sensor de temperatura DS18B20.

Para facilitar a codificao, a comunidade desenvolveu uma


biblioteca denominada One Wire, que vale a pena baixar e instalar.
Se voc tem dvida de como baixar e instalar uma biblioteca de
terceiro, veja o Captulo 1 deste E-book, onde expliquei esse
processo.

5.5. P ROTOCOLO F IRMATA

O protocolo Firmata permite que seu Arduino se comunique com


um host, via software. Isso permite que voc programe seu Arduino
em outras linguagens, como C#, Javascript, Python entre outras.
Uma das vantagens deste protocolo que um programador, que j
trabalha com uma dessas linguagens, poder programar sem
grandes dificuldades. A maior desvantagem que voc tem um
host no caminho. Sendo assim, se sua aplicao necessita de
resposta rpida, no recomendado trabalhar com esse protocolo.

A IDE do Arduino, por padro, traz a biblioteca Firmata, para


facilitar ainda mais a comunicao com o software. Para permitir a
comunicao, voc deve carregar o sketch disponvel na biblioteca
Firmata, seguindo os seguintes passos: Abra a IDE do Arduino, v
em Files > Examples > Firmata > StandartFirmata, clique em
Upload, aguarde o sketch ser compilado e carregado para
placa.Com isso, seu hardware j estar preparado.

Como o escopo do E-book no detalhar esse protocolo, bem


como suas aplicaes, vou deixar aqui alguns links para voc
pesquisar e, claro, botar em prtica para estudo, com algumas
linguagens de programao e plataformas disponveis:

43
Python: Pyduino, PyFirmata;
Javascript: CylonJS, JohnnyFive;
.NET: Arduino;
Golang: Gobot;
Ruby: Artoo;

Alm das linguagens citadas acima, com algumas plataformas que


listei, existem outras que podem trabalhar com Firmata. Voc pode
pesquisar e trabalhar em uma linguagem, a qual tem mais
familiaridade. Em minha opinio, esse protocolo serve mais como
aprendizado, em aplicaes mais robustas, creio que seja
dispensvel.

5.6. C OMUNICAO B LUETOOTH

A comunicao com dispositivos via bluetooth uma realidade. E,


estamos cercados de todo o tipo de aparato que suporta essa
conexo, seja smartphones, fones de ouvido, computadores, entre
outros. Essa tecnologia muito popular e bastante aplicada, hoje
em dia. Com os mdulos ou shields bluetooth, podemos adicionar
essa facilidade ao Arduino e deixar nossos projetos mais
interessantes.

Antes de tudo, conhea um pouco dessa tecnologia. Ela foi


desenvolvida pela Ericsson, tendo como objetivo, realizar uma
comunicao sem fio prxima. Isto , seu alcance e velocidades so
bem limitados. A tecnologia vem sendo aprimorada e, com certeza,
hoje muito aplicada.

44
Enviar dados de seu Arduino via Bluetooth muito simples, pois
ele se comporta como uma portal serial virtual, ou seja, voc utiliza
os mesmos comandos de uma comunicao serial normal.

Vamos explorar um pouco dessa tecnologia, em especial o mdulo


Bluetooth HC-06.A seguir, abordaremos suas caractersticas e
demonstraremos uma aplicao prtica com o mesmo.

5.6.1. C ONHEA O MDULO BLUETOOTH HC-06

O mdulo HC-06 muito utilizado para comunicao via bluetooth


com o Arduino, para deixar os projetos mais interessantes e
dinmicos. O alcance do mesmo de, aproximadamente, 10
metros. Alm disso, esse mdulo s funciona em modo slave
(escravo), ou seja, ele permite que outros dispositivos se conectem
a ele, mas no que ele se conecte outros dispositivos. Sua
pinagem a seguinte:

Pino Funo
VCC Alimentao VCC 3,6 6V
GND Ground
RX Comunicao c/ Arduino via Serial
TX Comunicao c/ Arduino via Serial
Tabela 5.4 - Pinagem mdulo bluetooth HC-06

Esse mdulo trabalha com 3,3V no pino de sinal (no confunda


com a alimentao). E, por conta disso, nas aplicaes utilizado
um divisor de tenso, para evitar a queima o mdulo.

45
5.6.2. C ONTROLE UM L ED RGB VIA B LUETOOTH

Essa aplicao, bastante simples, visa demonstrar como possvel


acionar um pino atravs da comunicao bluetooth. Ser utilizado
um led RGB que, ao receber os comandos do smartphone pareado
ao mdulo bluetooth, ser acionado. Com isso, perceber que a
comunicao a mesma que a serial, onde basicamente se l o
que recebe via serial e, a partir desses valores, aciona-se o led com
a cor desejada ou desliga o mesmo. Veja com mais detalhes, o
cdigo abaixo:
/*
Controle de LED RGB via bluetooth
Utilizado: Arduino Uno, Led RGB, HC-06
Autor: Yhan Christian Souza Silva - Data: 01/12/2016
*/

#define redPin 8
#define greenPin 9
#define bluePin 10

char val;

void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(9600);
}

void loop() {
while (Serial.available() > 0) {
val = Serial.read();

switch (val) {
case 'R':
digitalWrite(redPin, HIGH);
Serial.println("LED Vermelho - ligado");
break;
case 'r':
digitalWrite(redPin, LOW);
Serial.println("LED Vermelho - desligado");
break;
case 'G':
digitalWrite(greenPin, HIGH);
Serial.println("LED Verde - ligado");
break;
case 'g':
digitalWrite(greenPin, LOW);
Serial.println("LED Verde - desligado");
break;

46
case 'B':
digitalWrite(bluePin, HIGH);
Serial.println("LED Azul - ligado");
break;
case 'b':
digitalWrite(bluePin, LOW);
Serial.println("LED Azul - desligado");
break;
}
}
}
Lista 5.1 - Controle de Led RGB via bluetooth

5.6.3. E NTENDENDO O CDIGO :

Pinos e variveis: 8 (redPin), 9 (greenPin), 10 (bluePin), varivel val


para receber os dados enviados via serial. O pino TX do mdulo
bluetooth ligado ao pino 0 (RX) do Arduino e o pino RX do mdulo
bluetooth ligado ao pino 1 (TX) do Arduino

void setup(): define como sada os pinos redPin, greenPin e bluePin,


que so os pinos do Led RGB.Inicia-se a comunicao serial com
baud rate de 9600.

void loop(): verifica se h dados disponveis na serial atravs,


atribui-se o valor lido a varivel val, onde ser verificada as
seguintes condies:

Val Sada
R Led Vermelho ligado
r Led Vermelho desligado
G Led Verde ligado
g Led Verde desligado
B Led Azul ligado
b Led Azul desligado
Tabela 5.5 - Condies para acionamento dos pinos do led RGB

Perceba que o cdigo relativamente simples. Basicamente, utiliza-


se apenas a comunicao serial e pronto :)'

47
5.6.4. M ONTAGEM DO HARDWARE

Para montar o projeto proposto, so necessrios os seguintes


materiais:

Protoboard;
Arduino Uno;
Mdulo Bluetooh HC-06;
Led RGB;
Fios jumper.

A montagem ficar conforme a imagem a seguir:

Figura 5.1 - Montagem do Hardware

48
O resistor nos pinos do LED RGB tem a funo de limitar a
corrente, como j explicado nos exemplos anteriores. Os
resistores, ligados ao mdulo bluetooth, tem a funo de criar um
divisor de tenso e garantir o nvel de 3,3V nos pinos de sinal
(como explicado acima). Aps finalizar montagem, plugue o USB no
Arduino e no computador, clique em Verificar, para checar se h
algum erro. Aps essa verificao, clique em Carregar (antes disso,
desconecte o pino RX e TX do mdulo bluetooth no Arduino), para
passar o cdigo fonte para a placa. Com isso, o cdigo carregado,
ento reconecte os pinos RX e TX do mdulo bluetooth no
Arduino.Agora, precisaremos testar se realmente isso funciona ;)'.

5.6.5. F AA O TESTE COM UM APLICATIVO

Faa o teste de funcionamento, utilizando um aplicativo Android.


No caso, eu utilizei o Arduino Bluetooh, disponvel na PlayStore:
https://play.google.com/store/apps/details?id=com.giumig.apps.blu
etoothserialmonitor&hl=pt_BR.

Eu gostei desse aplicativo, pois alm de fornecer o modo terminal,


ele tem outro modos de controle, que lhe auxiliaram em futuros
projetos. Alm disso, sua interface bem agradvel e simples de
mexer, mesmo no sendo o mais leve (j que tem aplicativos s
com terminal bluetooh), que no chegam a ter 1MB de tamanho,
esse aplicativo interessante.

Ao instalar o aplicativo, acesse as configuraes do seu


smartphone e habilite a comunicao Bluetooth. Aps isso, veja a
lista de dispositivos e faa o pareamento com o mdulo HC-
06.Geralmente, a senha para pareamento 1234 ou 0000.

49
Figura 5.2 - Pareando dispositivo

Feito isso, abra o aplicativo.O mesmo tem a seguinte aparncia:

Figura 5.3 - Tela inicial aplicativo

50
Com o aplicativo aberto, clique sobre o HC-06 e escolha o modo
Terminal. Ao abrir a tela, clique logo abaixo em type in command e
digite uma das letras para acionamento dos leds RGB. Perceber
que o LED ligar e, ao mandar o comando para desligar, o mesmo
desligar (veja a tabela, logo acima, na explicao do cdigo).

Com os acionamentos sendo realizados, a tela do seu smartphone


ficar mais ou menos assim:

Figura 5.4 - Acionamentos via bluetooth

Caso no tenha funcionado, verifique as ligaes realizadas, se no


h algum mau contato e se certifique que o sketch foi carregado
para seu Arduino. Ao funcionar, divirta-se! Acione o vermelho e o
azul, fazendo seu Led ficar roxo... Faa combinaes de
acionamentos e otimize seu cdigo! Coloque mais opes e outros
devices. Tente, futuramente, acionar um mdulo rel via bluetooth,
desafie-se ;)'.

51
5.7. O UTRAS COMUNICAES

possvel comunicar seu Arduino com a internet, atravs do


Ethernet Shield e, tambm, mdulo Ethernet. Alm disso, h o Wi-fi,
caso queira trabalhar com internet sem fio, que mais proveitoso,
com o Wi-fi Shield. Hoje, um mdulo bem famoso, barato e muito
utilizado o ESP-8266 que, alm de ser utilizado como mdulo Wi-
fi, vem sendo explorado para projetos IoT.

O nosso foco lhe introduzir as comunicaes existentes. E,


abordei uma maneira interessante e simples, que a comunicao
bluetooth. Mas como mencionei acima, possvel fazer seu
Arduino conversar com a internet, o que deixa ainda mais seus
projetos divertidos e de brilhar os olhos de quem v.

5.8. R ESUMO

Parabns, voc finalizou o E-book - Comeando om Arduino!


Espero que o contedo tenha lhe auxiliado. E, nessa jornada ao
longo de 5 Captulos, podemos ver bastante coisa como: o que o
Arduino, o que so entradas e sadas, o que um Sensor, o que
um mdulo e Shield e agora, para finalizar, as diferentes
comunicaes existentes.
O ltimo Captulo foi o mais longo e com uma abordagem um
pouco mais terica. Desculpe-me, mas creio que seja importante
saber o poder que seu Arduino tem. No detalhei cada tipo de
comunicao, pois no era nosso objetivo. Entretanto, consegui
passar o que e, tambm, o que possvel fazer.
Espero que tenha curtido o E-book...E, agora, mo na massa! Faa
projetos, deixe-os mais complexos, pois com o bsico, constri-se
coisas magnficas.

52
Pow, tem alguma dvida sobre cdigo ? No sabe o que diabos
um if, else, swich , etc. Separei, para voc, 2 apndices bem legais
logo abaixo, indicando bons locais para estudar e aprender mais. E,
alm disso, um pouco sobre a programao do Arduino.

53
A. APNDICE - GUIA PARA CODIFICAR SEU ARDUINO.

Aqui vai um guia bsico para a linguagem do Arduino, como criar


seus sketches com sucesso.Para isso, abordaremos os seguintes
tpicos:

Variveis
Instrues de Controle
Loops
Funes

A.1. V ARIVEIS

Podemos comparar as variveis a pequenas caixas, cada caixa


contm algo. Seu cdigo procurar nas caixas individuais, o que h
e poder alterar seu contedo. As vantagens de utilizar variveis
so: elas deixam o cdigo mais fcil de entender e,
consequentemente, mais fcil de manter.

Voc j viu o quo teis so as variveis, deixando o cdigo mais


simples e legvel.Agora, vamos entender os tipos existentes.

A.1.1. T IPOS DE VARIVEIS

Existe uma srie de tipos de variveis.Antes de us-las,


necessrio declarar seu nome e tipo, como no exemplo abaixo:
char val;

Veja, na tabela abaixo, os tipos de variveis, sua descrio e seu


intervalo.

54
Tipo de
Descrio
variavel
byte Um nmero de 8 bits com um intervalo de 0 a 255
boolean Detm dois valores: verdadeiro ou falso
Um nico caractere ASCII, armazenado como um nmero de
char
8 bits
Um nmero que tem ponto decimal, armazenado como um
float valor de 32 bits, com o intervalo de 3,4028325e+38 -
3,4028325e+38
Um nmero inteiro de 16 bits, com o intervalo de 32.767
int
-32.768
Um nmero inteiro longo armazenado como um valor de 32
long
bits, com o intervalo de 2.147.483.647 -2.147.483.648
Um nmero inteiro, sem valores negativos de 16 bits, com o
unsigned int
intervalo de 0 65.545
Um nmero inteiro longo, sem valores negativos de 32bits,
unsigned long
com o intervalo de 0 4.294.967.296
Um nmero sem sinal, armazenado como um valor de 16 bits,
word
com o intervalo de 0 65.545
Tabela A.1 - Tipos de Variveis

A.1.2. A RRAYS

Formam um conjunto de variveis, que so indexadas como um


nmero. Deve ser declarado com o tipo, antes de ser utilizado,
como por exemplo:
int vet[4] = {1,2,3,4};

O ndice de um array comea a partir do 0, ou seja, no exemplo


acima no vet[0] o valor do igual a 1.

Normalmente, so usados para manipulao de valores, dentro de


um loop for, o qual explicaremos adiante.

55
A.1.3. S TRINGS

So textos que podem ser usados de duas maneiras: ou como um


array do tipo char; ou voc utiliza a classe String. A vantagem de
utilizar a classe String que contm uma gama de funes,
facilitando a manipulao de texto. Isso muito til, quando
trabalhamos com displays LCD.

A.1.4. C ONSTANTES

Como o nome j diz, so variveis que no alteram seu valor. Ou


seja, quando inicializa essa varivel e se atribui um valor, o mesmo
no pode ser modificado. Exemplificando:
const float pi = 3.14;

A.1.5. E SCOPO DE VARIVEIS

As variveis podem ser declaradas no topo do sketch, como


exemplificado no e-book. Assim, so denominadas como variveis
globais, ou seja, podem ser acessadas de qualquer lugar do sketch.
As variveis declaradas dentro de uma funo so denominadas de
variveis locais, s estando disponvel funo em que esto
declaradas.Por exemplo:
const int myLed = 13; //Varivel global

void setup() {
pinMode(myLed, OUTPUT);
}

void loop() {
const int myLedLocal = 14; //Varivel Local
pinMode(myLedLocal, OUTPUT);
}

Creio que demonstrando, ficou mais fcil de entender hehe ;)'.

56
A.2. I NSTRUES DE C ONTROLE

Em inmeros momentos em seus cdigos, voc dever tomar


decises: seja para acionamento de uma carga, um led, entre
outros. O seu cdigo de sketch toma decises, a partir dessas
condies, que podem ter apenas dois resultados: verdadeiro ou
falso. Em resumo, sempre sero realizados testes, a fim de
comprovar se uma condio: verdadeira e, com isso, tomar um
conjunto de medidas; ou falsa e, a partir da, tomar outro conjunto
de medidas.Para isso, vamos entender os operadores relacionais e
operadores lgicos, descritos na tabela abaixo:

Operador Descrio
> Maior que
>= Maior ou igual a
== Igualdade
< Menor que
<= Menor ou igual a
!= Desigualdade
&& Operador lgico E (AND)
|| Operador lgico OU (OR)
! Operador lgico NO (NOT)
Tabela A.2 - Operadores relacionais e lgicos

A.2.1. I F , ELSE , ELSE IF

A instruo if (se) testa uma condio e verifica, se a mesma for


verdadeira, executa determinada ao, conforme programamos.
Caso no seja, else (se no), retorna um valor ou executa
determinada ao caso o valor seja falso. No ltimo caso, o else if
utilizado, quando testamos mais de uma condio. Exemplificando:

57
if( a > b) {
//ento a maior que b
}

else if (b > a) {
//ento b maior que a
}

else {
//nenhuma das condies anteriores verdadeira logo a = b
}

A.2.2. S WITCH CASE

Utilizadas em casos em que, necessrios simplificar as instrues


if, else if, sendo simples de entender. Nada mais do que, uma srie
de comparaes caso a caso e, quando a condio verdadeira,
pode-se utilizar a instruo break, para quebrar o lao e no fazer
as demais comparaes, veja um exemplo:
switch (val) {
case 'R':
digitalWrite(redPin, HIGH);
Serial.println("LED Vermelho - ligado");
break;
case 'r':
digitalWrite(redPin, LOW);
Serial.println("LED Vermelho - desligado");
break;
case 'G':
digitalWrite(greenPin, HIGH);
Serial.println("LED Verde - ligado");
break;
case 'g':
digitalWrite(greenPin, LOW);
Serial.println("LED Verde - desligado");
break;
case 'B':
digitalWrite(bluePin, HIGH);
Serial.println("LED Azul - ligado");
break;
case 'b':
digitalWrite(bluePin, LOW);
Serial.println("LED Azul - desligado");
break;
}

58
A.3. L OOP

Voc j conhece o void loop(), rotina o qual o Arduino fica


executando, infinitamente, at ser desligado. Mas, existem outras
maneiras de criar loops, caso necessite repetir determinada ao,
at que uma determinada condio seja verdadeira, ou seja, se
essa condio for falsa o loop continuar. Os trs loops so: for,
while e do while.

A.3.1. F OR

Utilizados para rodar, atravs de um bloco de cdigo, um


determinado nmero de vezes. So muito utilizados como
contador, seja para incrementar um valor, ou decrementar o
mesmo. Sua estrutura a seguinte:

Figura A.1 - Estrutura de um lao for

Inicializa-se a varivel i; o teste realizado a cada vez que o loop


realizado, o i menor que 10, incrementa-se em 1. Essa rotina
continuar at o i ser 10, pois a condio de teste ser falso.

A.3.2. W HILE

O while testa uma expresso e vai continuar executando a mesma,


enquanto ela for verdadeira. Geralmente usado, quando voc
no tem certeza, de quanto tempo o cdigo ficar preso em um

59
loop. Alm disso, muito usado para testes de entradas de
sensores ou botes, veja um exemplo:
int sensorValue = 0;
while(sensorValue < 1300) {
sensorValue = analogRead(analogPin);
}

Este cdigo ficar em loop, enquanto o valor de sensorValue for


menor que 1300.

A.3.3. D O W HILE

O loop do while no to utilizado, como os dois citados


anteriormente. A diferena entre do while e while que, ele testa a
condio na extremidade do bloco do cdigo, ou seja, ao menos 1
vezes esse bloco ser executado.
do {
int sensorValue = 0;
sensorValue = analogRead(analogPin);
} while(sensorValue < 1300);

Assim como nos demais loops, esse bloco ficar rodando, at que a
condio seja falsa.

A.4. F UNES

As funes necessrias para funcionamento do sketch so setup() e


loop(). O Arduino simplifica e muito as tarefas, usando funes
simples de acessar, para controlar entradas e sadas de dados
digitais ou analgicos, assim como funes de tempo, etc.

Mas, voc consegue criar suas prprias funes. Elas, geralmente,


so usadas quando temos tarefas repetitivas ou clculos

60
necessrios, em seu cdigo. Para criar uma funo, voc precisa
declarar o tipo da funo, dar um nome a ela e, entre parnteses,
por os parmetros dessa funo. Ok, um pouco difcil de
entender de primeira rs. Mas,vamos ao exemplo de converso de
temperatura de Fahrenheit para Celsius e retorno desse valor.
float calculaTemperatura(float fahrenheit) {
float celsius;
celsius = (fahrenheit - 32) / 1.8;
return celsius;
}

Como pode ver, utilizar funes auxiliar bastante na simplificao


do seu cdigo.

Obs.: Para realizar comentrios em seu cdigo, voc pode utilizar


"//" para comentar em uma linha, ou iniciar com "/*" e finalizar com
"*/" no caso de comentar mais de uma linha.

A.5. R ESUMO

Espero que tenha gostado deste apndice!Vimos algumas coisas da


linguagem do Arduino, como as variveis nos ajudam, o que so
operadores relacionais e lgicos, o que so as condies e, por fim,
os loops. Espero que lhe ajude esse material, mesmo sem
conhecimentos avanados em programao, pode ver como
simples botar sua plaquinha pra funcionar ;)'.

61
B. APNDICE - ONDE APRENDER MAIS.

Bom, espero que isso lhe ajude...Separei, para vocs, alguns links
que achei teis, relacionados a Arduino.

B.1. B LOG E NGENHEIRO C AIARA

Primeiros passos com Arduino:


http://engenheirocaicara.com/category/primeiros-passos-arduino/

Projeto Leitura de dois sensores via bluetooth:


http://engenheirocaicara.com/series/projeto-do-mes-completo/

Projeto Controle PID de temperatura com Arduino e Scilab:


http://engenheirocaicara.com/series/projeto-do-mes-2/

B.2. O UTROS LINKS E MATERIAIS TEIS

Filipe Flop:
http://blog.filipeflop.com/

Renato Aloi (YouTube):


https://www.youtube.com/watch?v=inYEsklZXNE

WR Kits:
https://www.youtube.com/playlist?list=PLZ8dBTV2_5HSyOXhJ77d-iyt5Z_v_1DPM

GBK Robotics:
http://gbkrobotics.com.br/index.php/category/tutoriais/

Embarcados:
http://www.embarcados.com.br/

62
CONSIDERAES FINAIS...

Com isso, conclumos nosso E-book - Comeando com Arduino. Ns,


do Engenheiro Caiara, queremos deixar BEM claro que, nossa
inteno, com a criao do E-book ajudar aquele leitor que, precisa
saber o que Arduino o que possvel fazer com ele, entretanto, no
sabe para onde correr. No somos um fornecedor de cursos on-line,
apenas queremos dar um auxlio a voc, caro leitor, com nossos
conhecimentos, adquiridos ao longo de nossas carreiras acadmicas e
profissionais. Esse trabalho baseado
em alguns artigos do blog, alm da
explicao de algumas informaes, que
so confusas para os iniciantes dessa
plataforma. Agradecemos, e muito, por
voc que acompanha nossas postagens
no blog e baixou nosso E-book. Ele foi
confeccionado com toda dedicao que
possumos, para voc ter uma ferramenta de fcil entendimento,
sobre o assunto abordado. Ento, no deixe de nos acompanhar nas
redes sociais e conferir o nosso contedo no blog! Afinal, ele
pensado e escrito para voc, querido leitor! E sua participao mais
do que importante, para a evoluo do nosso contedo.

At a prxima!

Equipe Engenheiro Caiara.


No se esqueam de nos seguir em
nossas Redes Sociais...

Você também pode gostar