Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Arduino Basico-V1.0-Eletrogate PDF
Apostila Arduino Basico-V1.0-Eletrogate PDF
1.
2.
Introduo .......................................................................................................................... 6
1.1.
1.2.
1.3.
Hardware ............................................................................................................................ 7
2.1.
3.
4.
Software.............................................................................................................................. 9
3.1.
3.2.
Linux .......................................................................................................................... 11
3.3.
Mac OS ...................................................................................................................... 11
3.4.
Algoritmo................................................................................................................... 13
4.2.
4.2.1.
4.2.2.
Declarao de Variveis......................................................................................... 15
4.3.
4.3.1.
Vetor ...................................................................................................................... 16
4.3.2.
Matriz..................................................................................................................... 16
4.4.
Operadores................................................................................................................ 17
4.4.1.
Aritmticos ......................................................................................................... 17
4.4.2.
Relacionais ......................................................................................................... 17
4.4.3.
Lgicos................................................................................................................ 18
4.4.4.
Compostos ......................................................................................................... 18
4.5.
Comentrios .............................................................................................................. 18
4.6.
4.6.1.
Simples ............................................................................................................... 19
4.6.2.
Composta ........................................................................................................... 20
www.eletrogate.com
4.6.3.
4.7.
4.7.1.
For ...................................................................................................................... 21
4.7.2.
While .................................................................................................................. 22
4.7.3.
Do-While ............................................................................................................ 22
4.8.
5.
Bibliotecas ................................................................................................................. 23
Portas Digitais............................................................................................................ 23
5.2.
5.3.
5.4.
6.
7.
7.2.
Resistores .................................................................................................................. 30
7.2.1.
Cdigo de cores.................................................................................................. 31
7.2.2.
7.2.3.
7.2.4.
7.3.
Potencimetro .......................................................................................................... 34
7.4.
Capacitores ................................................................................................................ 34
7.5.
Indutores ................................................................................................................... 35
7.6.
Leds............................................................................................................................ 36
7.7.
Transistores ............................................................................................................... 36
7.8.
Chaves ....................................................................................................................... 37
7.9.
Protoboard ................................................................................................................ 38
7.10.
Sensores................................................................................................................. 39
Displays .................................................................................................................. 40
7.12.
Buzzer .................................................................................................................... 40
www.eletrogate.com
8.
Eletrnica Digital............................................................................................................... 41
8.1.
Portas lgicas............................................................................................................. 41
8.1.1.
AND .................................................................................................................... 41
8.1.2.
OR ....................................................................................................................... 42
8.1.3.
NOT .................................................................................................................... 42
8.1.4.
NAND.................................................................................................................. 42
8.1.5.
NOR .................................................................................................................... 42
8.1.6.
XOR..................................................................................................................... 43
8.1.7.
XNOR .................................................................................................................. 43
8.2.
www.eletrogate.com
Prefcio
Esta apostila gratuita, e destinada a qualquer pessoa que deseja aprender mais sobre o
Arduino e Eletrnica Bsica. Esperamos que goste do nosso trabalho!
Este trabalho est licenciado sob uma Licena Creative Commons Atribuio-NoComercialCompartilha Igual 4.0 Internacional. A publicao total e/ou parcial do contedo desta
apostila para fins lucrativos proibida. A adaptao permitida, desde que o trabalho
tambm seja compartilhado.
Download
Esta postila est pode sofrer atualizaes e correes, para obter a ultima verso
gratuitamente, acesse: http://apostilas.eletrogate.com
Caso tenha alguma sugesto, crtica ou apenas gostaria de dizer se gostou ou no deste
material, entre em contato conosco! Ser um imenso prazer receber a sua opinio sobre o
nosso trabalho. E caso tenha alguma dvida, conte com a gente!
Sobre o Autor:
Nome: Anwar S Hachouche
Contato: anwar.hachouche@gmail.com
Facebook: /anwarhachouche
www.eletrogate.com
1. Introduo
1.1.
O que Arduino
1.2.
www.eletrogate.com
source. Com isso vrias pessoas em todo o mundo contribuem com a plataforma, seja com a
construo de um novo hardware ou com novas bibliotecas, materiais de apoio e tutoriais.
A comunidade de pessoas que utilizam esta plataforma vem crescendo cada vez
mais, e sempre surgem novos projetos contendo novas ideias, fazendo com que nunca falte
ajuda caso haja alguma dvida sobre a utilizao do hardware e/ou software.
1.3.
O Arduino sem dvidas uma placa muito eficiente e poderosa. Pode ser utilizado
para fazer qualquer coisa, a imaginao o limite (e claro, as leis da fsica tambm!).
possvel utiliz-lo para controlar, monitorar, automatizar, etc. Por exemplo, existem projetos
de monitoramento da qualidade do ar, medio da temperatura de um lquido, sistemas de
irrigao, robs, impressoras 3D, dentre vrios outros.
2. Hardware
O hardware (as placas) do projeto possui diferentes modelos, alguns deles so
menores que um carto de crdito. Sim, tudo isso falado anteriormente cabe na palma de
sua mo! Para o desenvolvimento deste material utilizaremos o modelo Uno, que mais
comumente utilizado em projetos bsicos. Existe uma placa voltada para cada projeto,
algumas so menores e mais compactas e outras so maiores, permitindo controlar um
maior nmero de dispositivos eletrnicos. importante lembrar que o preo tambm varia,
por exemplo, o Arduino Uno custa em torno de R$ 60,00 a R$ 80,00 reais no Brasil.
www.eletrogate.com
Temporizadores (timers)
Contadores
Clock, e etc.
Microcontrolador: ATmega328
Portas Digitais: 14
Portas Analgicas: 6
SRAM: 2KB
EEPROM: 1KB
www.eletrogate.com
Bootloader: Para dispensar o uso de um gravador externo, a gravao da Flash feita por
um software pr-gravado, o Bootloader. O Bootloader o primeiro software executado pelo
microcontrolador aps um Reset (Boot) e carrega na Flash um software que recebe pela
serial (loader).
2.1.
Alimentao do Arduino
O circuito interno do Arduino alimentado com uma tenso contnua de 5V, isto
quando conectado a uma porta Usb do computador. Esta conexo fornece a alimentao
e tambm a comunicao de dados. Caso seja necessrio possvel utilizar uma fonte de
alimentao externa, que fornea uma sada dentre 7.5V e 12V contnua com um plug P4,
ou pode ser ligada diretamente na placa utilizando os pinos Vin e Gnd.
3. Software
O Software utilizado basicamente para escrever o cdigo do programa, salv-lo,
compil-lo, e realizar a gravao do cdigo compilado no Arduino (memria flash) atravs
da porta Usb do computador. A IDE do Arduino ser utilizada para realizar estes passos. Este
ambiente de desenvolvimento baseado no Framework Wiring e na linguagem de
programao C/C++.
Uma vez gravado o programa no Arduino, o computador no mais necessrio. A
partir do momento em que se utiliza uma fonte de alimentao externa, o Arduino se torna
uma placa totalmente independente. Mas antes de tudo preciso obter os arquivos de
instalao e drivers, que vm juntos no mesmo pacote, que pode ser obtido no site oficial
do Arduino. O download deve ser selecionado de acordo com o sistema operacional
utilizado, sendo ele compatvel com Windows, Linux e Mac OS.
www.eletrogate.com
3.1.
Windows 7, 8 e 8.1
Ser solicitado que um novo driver seja instalado, ento dever selecionar a escolha
manual de drivers, ento localize a pasta Drivers dentro do pacote extrado anteriormente.
Obs.:
1 - Caso no ocorra a deteco automtica de Drivers, ser necessrio abrir:
10
Obs.:
1 - Se voc possui um computador que veio com o Windows 8/8.1 pr-instalado, esta tela
opes avanadas (modo de segurana) provavelmente ser habilitada na BIOS
2 - Os passos acima provavelmente no funcionaro se o Modo de Segurana estiver
desabilitado na BIOS
Figura 3.1 Driver do Arduino Instalado corretamente (o n da porta COM pode variar)
3.2.
Linux
3.3.
Mac OS
3.4.
Pronto! Aps a instalao ser possvel abrir a IDE do Arduino, que tem a seguinte
aparncia:
www.eletrogate.com
11
Figura 3.2 IDE do Arduino verso 1.0.5-R2 sendo executada no Windows 8.1
Verify, Upload
www.eletrogate.com
12
seguida, aps abrir o programa desejado, basta clicar em Upload. Aps executar estes
passos, a IDE dever exibir uma mensagem no final Done Uploading.
4.1.
Algoritmo
Pode se dizer que Algoritmo uma sequncia de passos que devem ser seguidos
para atingir um objetivo bem definido. Exemplo, uma receita de bolo.
4.2.
Variveis e Constantes
#define X = 10
Existem algumas constantes pr-definidas, cujos nomes no podem ser utilizados para a
declarao de variveis. Estas so chamadas palavras reservadas. Por exemplo:
www.eletrogate.com
13
HIGH indica que uma porta est ativada, ou seja, est em 5V.
LOW indica que uma porta est desativada, ou seja, est em 0V.
INPUT indica que uma porta ser utilizada como entrada de dados.
OUTPUT indica que uma porta ser utilizada como sada de dados.
void - Indica um tipo indefinido. Usado geralmente para informar que uma
determinada funo no retorna nenhum valor.
boolean - Os valores possveis so true (1) e false (0). Ocupa um byte de memria.
char - Pode ser uma letra ou um nmero. A faixa de valores vlidos de -128 a 127.
Ocupa um byte de memria.
unsigned char - O mesmo que o char, porm a faixa de valores vlidos de 0 a 255.
unsigned int - O mesmo que o int, porm a faixa de valores vlidos de 0 a 65.535.
www.eletrogate.com
14
float - Armazena valores de ponto flutuante (com vrgula) e ocupa 32 bits (4 bytes)
de memria. A faixa de valores de -3.4028235E+38 at 3.4028235E+38
Importante:
- O operador de atribuio no vale para o comando #define.
- A linguagem de programao do Arduino, como dito anteriormente, baseada no C/C++
portanto Case Sensitive, diferenciando letras maisculas de minsculas. Portanto a
declarao int valSensor; diferente de int ValSensor;.
4.3.
Vetores e Matrizes
www.eletrogate.com
15
4.3.1. Vetor
A declarao de um vetor feita da mesma maneira que uma varivel escalar,
entretanto necessrio definir o seu tamanho (quantidade de itens). Exemplo:
1
int vetor[5];
Para atribuir um valor a uma determinada posio do vetor, basta usar o ndice, ou seja, a
posio onde o valor ser armazenado no vetor. Exemplo:
1
vetor[0] = 3;
Para acessar um valor em uma determinada posio do vetor, basta usar o ndice, ou seja, a
posio onde o valor est armazenado no vetor. Exemplo:
1
digitalWrite(vetor[0], HIGH);
4.3.2. Matriz
Uma matriz similar a um vetor, entretanto pode ser formada por duas ou mais
dimenses. Este elemento do tipo bidimensional possui um determinado nmero de linhas
e de colunas. Exemplo:
1
int matriz[3][6];
16
Exemplo:
1
matriz[1][2] = 6;
digitalWrite(matriz[0][0], HIGH);
-Ativa a porta cujo nmero est definido na posio 0 (linha), 0 (coluna) da matriz.
4.4.
Operadores
4.4.1. Aritmticos
Adio
Subtrao
Multiplicao
Diviso
4.4.2. Relacionais
>
Maior
<
Menor
>=
Maior ou igual
<=
Menor ou igual
www.eletrogate.com
17
==
Igual
!=
Diferente
4.4.3. Lgicos
&&
E (AND)
||
OU (OR)
NO (NOT)
4.4.4. Compostos
++
Incremento
--
Decremento
+=
-=
*=
/=
!=
No Igual
4.5.
Comentrios
Comentrio de Linha: //
Comentrio de Bloco /* */
www.eletrogate.com
18
4.6.
Comandos de Seleo
If - Seleo simples
4.6.1. Simples
Um comando de seleo simples avalia uma determinada condio, ou expresso,
para executar uma ao ou conjunto de aes. O comando de seleo simples :
if (expresso) {
comando1;
comando2;
onde:
expresso representa uma expresso a ser avaliada que pode ser do tipo lgica, relacional
ou aritmtica. O resultado da avaliao de uma expresso sempre um valor lgico.
Comando 1 e 2 comandos a serem executados.
www.eletrogate.com
19
4.6.2. Composta
Um comando de seleo composta complementar ao comando de seleo simples.
O objetivo executar um comando mesmo que a expresso avaliada pelo comando if (expr)
retorne um valor falso. O comando de seleo composta :
if (expresso) {
comando1;
else {
comando2;
onde:
expresso representa uma expresso a ser avaliada que pode ser do tipo lgica, relacional
ou aritmtica. O resultado da avaliao de uma expresso sempre um valor lgico.
Comando 1 e 2 comandos a serem executados.
switch (valor) {
case x: comando1;
break;
case y: comando2;
break;
default: comando3;
www.eletrogate.com
20
onde:
valor um dado a ser avaliado. representado por uma varivel de memria.
Comando 1, 2 e 3 comandos a serem executados.
case indica a opo a ser executada.
default opo padro, no caso nenhuma outra alternativa tenha sido selecionada.
4.7.
Comandos de Repetio
Muitas vezes necessrio repetir um ou mais trechos do cdigo mais de uma vez,
nestes casos devem ser utilizados os comandos de repetio para manter um lao em
uma instruo ou conjunto de instrues. Os comandos de repetio podem ser:
4.7.1. For
Este tipo de comando de repetio deve ser utilizado quando se sabe a quantidade
de vezes que um determinado trecho do cdigo deve ser executado. Exemplo:
comando1;
onde:
contador - uma varivel do tipo int
expresso - uma expresso relacional
incremento do contador - passo de incremento do contador
www.eletrogate.com
21
4.7.2. While
Este tipo de comando de repetio avalia uma expresso, enquanto for verdadeira,
um determinado trecho do cdigo permanece sendo executado. Exemplo:
while (expresso) {
comando1;
onde:
expresso uma expresso que pode ser lgica, relacional ou aritmtica. A permanncia
de execuo do lao garantida enquanto a expresso for verdadeira.
Nota: Neste tipo de comando de repetio a avaliao da expresso realizada no incio do
lao, ou seja, pode ser que o comando1 no execute nenhuma vez.
4.7.3. Do-While
do {
comando1;
} while (expresso);
onde:
expresso uma expresso que pode ser lgica, relacional ou aritmtica. A permanncia
de execuo do lao garantida enquanto a expresso for verdadeira.
comando1 comando a ser executado.
Nota: Neste tipo de comando de repetio a avaliao da expresso realizada no final do
lao, ou seja, garantido que pelo menos uma vez o comando1 ser executado.
www.eletrogate.com
22
4.8.
Bibliotecas
Nota: Para importar uma biblioteca externa, utilize a opo "Sketch > Import Library".
5.1.
Portas Digitais
digitalRead(pino)
Verifica a porta "pino" e retorna HIGH caso esteja em 5V e LOW caso esteja em 0V.
www.eletrogate.com
23
digitalWrite(pino, valor)
Exemplo:
void setup() {
pinMode(led, OUTPUT);
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
10
Aps abrir este cdigo, e configurar corretamente a placa e a porta COM utilizada,
www.eletrogate.com
24
clique em Upload. A mensagem esperada Done Uploading. Note que agora existe um led
na placa Arduino piscando com intervalos de 1 segundo. Gostou? :) Agora vamos explicar
como tudo funciona.
Na linha 1 criamos uma varivel do tipo int (vamos falar dos tipos de variveis mais
pra frente) e atribumos o valor 13 a ela. Nada de mais at a, certo? Mas quando dizemos
pinMode(led, OUTPUT) que dizer ModoDoPino (13, Sada) significa que a porta 13 ser de
sada, sendo assim ser possvel atribuir um valor (HIGH = 5V ou LOW = 0V). Resumindo,
ser possvel que tenha uma sada de 0V (led apagado) e 5V (led aceso).
Voc pode observar que mesmo para um exemplo simples, existem duas funes:
25
Quando o boto pressionado, o pino de entrada vai para LOW. O resistor R1 limita
a corrente do VCC que passa pelo boto e vai pro GND.
Para essas condies o resistor no pode ter o valor muito baixo, pois passar uma corrente
elevada pelo pino de entrada. E o resistor no pode ser muito alto seno no passar a
tenso necessria para o pino de entrada.
Em geral, o resistor R1 deve ser um dcimo menor que a impedncia do pino de
entrada, mas geralmente a impedncia de entrada varia entre 100K e 1M. Mas suponha
que seja necessrio limitar a corrente do pino de entrada para 1mA(0.001A). Fazendo o
clculo pela Lei de Ohm:
www.eletrogate.com
26
5.2.
Portas PWM
As portas PWM (Pulse Width Modulation, do ingls Modulao por Largura d Pulso)
se diferenciam das portas digitais binrias pois podem trabalhar no apenas com as tenses
0V e 5V, mas com uma escala que vai de 0 a 255 entre essas tenses, onde o '0' quer dizer
0V e '255' quer dizer 5V. Ou seja, as portas PWM permitem obter resultados analgicos com
meios digitais e so capazes de controlar a potncia de sada de um sinal. Pode se controlar,
por exemplo, a potncia em um Led, permitindo aumentar ou diminuir sua intensidade
luminosa.
5.3.
Portas Analgicas
www.eletrogate.com
27
5.4.
Comunicao Serial
Serial.begin(velocidade)
Serial.print("Mensagem")
Exibe uma mensagem no monitor serial. Esta mensagem pode ser, por exemplo, a leitura de
um sensor.
Serial.available()
Serial.read()
L os dados na porta serial. Por exemplo, uma mensagem digitada a partir do teclado.
6. Fundamentos de Eletrnica
Antes de comear a desenvolver um circuito eletrnico, mesmo que seja muito
simples, necessrio conhecer um pouco sobre os componentes bsicos da eletrnica e o
seu funcionamento. A eletricidade sem dvida o elemento mais importante, pois onde
tudo comea. Por isso se faz necessrio conhecer os seus conceitos mais bsicos, evitando
assim acidentes desnecessrios e componentes queimados devido ao mau uso. A
www.eletrogate.com
28
www.eletrogate.com
29
7.1.
Cabos (Jumpers)
Os Jumpers so utilizados para conectar componentes sem a necessidade de soldlos. Geralmente so utilizados em prottipos, nas protoboards, e so construdos de
material condutor envolto de um material isolante.
7.2.
Resistores
30
A relao entre tenso, corrente e resistncia, atravs de um objeto dada por uma simples
equao, Lei de Ohm:
www.eletrogate.com
31
www.eletrogate.com
32
www.eletrogate.com
33
7.3.
Potencimetro
7.4.
Capacitores
www.eletrogate.com
34
7.5.
Indutores
www.eletrogate.com
35
7.6.
Leds
O Led (Light Emitting Diode) por exemplo so um diodo emissor de luz. O diodo
um componente semicondutor, ou seja, permite a circulao de corrente em um sentido
com muito mais facilidade do que no outro. Seu funcionamento baseia-se em um material
contendo cargas negativas extras, chamado de material tipo-N, que fica separado por uma
certa distncia (chamada de zona vazia) de um outro material contendo cargas positivas
extras, chamado de material tipo-P Ao conectar o catodo (material tipo-P) ao polo positivo
do circuito, e o anodo (material tipo-N) do polo negativo, essas cargas iro se repelir,
fazendo com que haja circulao de corrente eltrica no circuito, e no caso do Led, haver
emisso de luz.
7.7.
Transistores
36
Os transistores possuem trs terminais: Base, coletor e emissor. Cujas equaes so:
IC + IB = IE (Corrente do Coletor + Corrente da Base = Corrente do Emissor)
IC = IB (Corrente do Coletor = Beta x Corrente da Base)
Onde uma constante, tambm conhecida como hFE. A segunda equao mostra o poder
de amplificao (ou ganho) do transistor onde IC pode ter um valor maior ou menor,
dependendo do Beta e da corrente da base.
7.8.
Chaves
www.eletrogate.com
37
7.9.
Protoboard
www.eletrogate.com
38
7.10.
Sensores
www.eletrogate.com
39
7.11.
Displays
7.12.
Buzzer
www.eletrogate.com
40
8. Eletrnica Digital
Um circuito digital aquele na qual suas entradas e sadas possuem sinais digitais, ou
seja, valores bem definidos (ou discretos). Geralmente estes circuitos trabalham apenas
com dois valores, 0 e 1. Por isso so chamados de sistemas digitais binrios. Por este
motivo, toda informao ser codificada em binrio (bit). Por exemplo, se um circuito opera
com as tenses 0V e 5V, a tenso 0V ser representada pelo bit 0 e 5V ser representada
pelo bit 1.
8.1.
Portas lgicas
As portas lgicas permitem que sejam realizadas operaes aritmticas com os Bits,
como adio, subtrao, multiplicao e diviso. Para simplificar, ser adotado que as
operaes lgicas contenham uma ou duas entradas e apenas uma sada. A sada 1 ser
tratada como verdadeira e 0 como falsa. Para um nmero finito de entradas, possvel
utilizar a Tabela Verdade para obter todos os possveis resultados da operao lgica.
8.1.1. AND
A porta lgica AND (E) (tambm conhecida como conjuno lgica) uma operao
lgica de dois operandos que resulta em um valor lgico verdadeiro somente se todos os
operandos tiverem um valor verdadeiro (1). Equivale a uma multiplicao. Supondo que
essa porta lgica tem duas entradas, A e B, e que A possui um bit em nvel lgico alto e B um
bit em nvel lgico baixo:
A = 1 e B = 0, a sada S ser um bit em nvel lgico baixo pois 1 x 0 = 0.
www.eletrogate.com
41
8.1.2. OR
A porta lgica OR (OU) (tambm chamada de disjuno lgica) uma operao
lgica entre dois ou mais operandos que resulta em um valor lgico falso somente se todos
os operandos tiverem um valor falso (0), caso contrrio ser verdadeira. Equivale a uma
multiplicao. Supondo que essa porta lgica tem duas entradas, A e B, e que A possui um
bit em nvel lgico alto e B um bit em nvel lgico baixo:
A = 1 e B = 0, a sada S ser um bit em nvel lgico alto pois 1+0 = 1
8.1.3. NOT
A porta lgica NOT (NO) (tambm conhecida como inversora) uma porta lgica
digital que implementa a negao lgica. Uma entrada verdadeira (1) resulta em uma sada
falsa (0), bem como uma entrada falsa (0) resulta em uma sada verdadeira (1). Ou seja, a
porta NOT sempre produzir como sada o inverso de sua entrada.
8.1.4. NAND
A porta lgica NAND possui o mesmo princpio da porta AND, porm com a sada
barrada (negada). Ou seja, representa a juno da porta lgica AND com a porta inversora
(NOT). Supondo que essa porta lgica tem duas entradas, A e B, e que A possui um bit em
nvel lgico alto e B um bit em nvel lgico baixo:
A = 1 e B = 0, a sada S ser um bit em nvel lgico alto (1).
8.1.5. NOR
A porta lgica NOR possui o mesmo princpio da porta OR, porm com a sada
www.eletrogate.com
42
barrada (negada). Ou seja, representa a juno da porta lgica OR com a porta inversora
(NOT). Supondo que essa porta lgica tem duas entradas, A e B, e que A possui um bit em
nvel lgico alto e B um bit em nvel lgico baixo:
A = 1 e B = 0, a sada S ser um bit em nvel lgico baixo (0).
8.1.6. XOR
A porta lgica XOR (tambm conhecida como disjuno exclusiva ou exclusive OR)
uma operao lgica entre dois operandos que resulta em um valor lgico verdadeiro (1)
somente se um dos operandos possui valor verdadeiro (1). Pode ser sintetizado como um
detector de diferenas entre dois operandos lgicos. Supondo que essa porta lgica tem
duas entradas, A e B, e que A possui um bit em nvel lgico alto e B um bit em nvel lgico
baixo:
A = 1 e B = 0, a sada S ser um bit em nvel lgico alto (1).
8.1.7. XNOR
A porta lgica XNOR (tambm conhecida pelo termo funo coincidncia ou
exclusive NOR) a operao inversa da porta XOR. Possui o mesmo principio da porta lgica
XOR, porm com a sada barrada (negada). Ou seja, a sada somente ser verdadeira quando
as entradas tiverem o mesmo valor (mesmo se valores baixos).
www.eletrogate.com
43
8.2.
www.eletrogate.com
44