Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
____________________________________________________________________________________
Pgina 2 de 134 Manual Kit Arduino Iniciante
Prefcio
Devido a ser livremente programvel e possuir projeto open source, o Arduino permite a criao de
diferentes solues para uma ampla gama de aplicaes. Com seus kits didticos o Ba da Eletrnica
no s busca ampliar seu portflio de produtos, como tambm criar uma forma de seus clientes
obterem um pacote completo, de produto mais conhecimento para uma experincia mais
aprofundada acerca dessas inmeras possibilidades.
Este material didtico fornece uma viso geral sobre os conceitos bsicos da placa Arduino Uno, do
software de programao IDE, dos componentes do kit e da interligao de sua placa com outros
componentes e equipamentos.
____________________________________________________________________________________
Pgina 3 de 134 Manual Kit Arduino Iniciante
Sumrio
1 O que Arduino.................................................................................................................................... 9
2 Conhecendo o software Arduino IDE ................................................................................................. 10
3 Instalando o Software Arduino IDE .................................................................................................... 11
3.1 - Instalao atravs do arquivo .exe ............................................................................................... 11
3.2 - Instalao atravs da pasta de arquivos. ..................................................................................... 14
3.3 - Instalao do Driver Arduino........................................................................................................ 16
4 Conhecendo sua placa Arduino UNO ................................................................................................. 18
5 Diferena de pino digital e pino analgico ......................................................................................... 18
4.1 - Pinos Digitais ................................................................................................................................ 19
4.2 - Pinos Analgicos ........................................................................................................................... 20
4.3 Como alimentar sua placa Arduino ............................................................................................. 21
5 Conhecendo seu Material Didtico ............................................................................................... 22
5.1 Resistor ........................................................................................................................................... 22
5.2 - Led ................................................................................................................................................ 24
5.3 - Led RGB ........................................................................................................................................ 24
5.4 - Potencimetro.............................................................................................................................. 25
5.5 - Chave Tctil de 4 terminais ou Boto........................................................................................... 25
5.6 - Sensor ptico TCRT5000............................................................................................................... 25
5.7 - Sensor de luminosidade LDR ........................................................................................................ 26
5.8 - Sensor de temperatura NTC ......................................................................................................... 26
5.9 - Sensor de temperatura linear LM35 ............................................................................................ 26
5.10 - Buzzer ......................................................................................................................................... 27
5.11 - Display BCD de 7 segmentos ...................................................................................................... 27
5.12 - Circuito Integrado 4511.............................................................................................................. 27
5.13 - Display LCD 16x2 ........................................................................................................................ 28
5.14 - Motor DC .................................................................................................................................... 28
5.15 - Circuito integrado L293D ........................................................................................................... 28
5.16 - Microservo 9g............................................................................................................................. 29
5.17 - Mdulo Rel ............................................................................................................................... 29
5.18 - Cpsula Piezoeltrica ou piezo buzzer ....................................................................................... 29
5.19 - Protoboard ................................................................................................................................. 30
6 A linguagem de programao ....................................................................................................... 31
____________________________________________________________________________________
Pgina 4 de 134 Manual Kit Arduino Iniciante
6.1 - Sintaxe .......................................................................................................................................... 31
6.1.1 Chaves { } .............................................................................................................................. 31
6.1.2 Ponto e Vrgula ; ................................................................................................................... 32
6.1.3 Blocos de Comentrios /* ... */ ; .......................................................................................... 32
6.1.4 Linhas de Comentrios // ; ................................................................................................... 32
6.2 Funes Principais ....................................................................................................................... 33
6.2.1 - Funo setup() ....................................................................................................................... 33
6.2.2 - Funo loop() ........................................................................................................................ 34
6.3 - Funes .................................................................................................................................... 34
7 Variveis ............................................................................................................................................. 35
7.1 - Declarao de variveis ................................................................................................................ 36
7.2 - Escopo de Variveis ...................................................................................................................... 36
7.3 - Tipos de Variveis ......................................................................................................................... 37
7.3.1 - byte........................................................................................................................................ 37
7.3.2 - int .......................................................................................................................................... 38
7.3.3 unsigned int .......................................................................................................................... 38
7.3.4 - char ........................................................................................................................................ 38
7.3.5 word...................................................................................................................................... 39
7.3.6 long ....................................................................................................................................... 39
7.3.7 unsigned long ....................................................................................................................... 39
7.3.8 float....................................................................................................................................... 39
8 - Aritmtica ............................................................................................................................................ 40
9 Operadores de comparao ............................................................................................................... 41
10 Operadores lgicos ........................................................................................................................... 41
11 Constantes ........................................................................................................................................ 42
11.1 true / false ................................................................................................................................. 42
11.2 HIGH / LOW ............................................................................................................................... 42
11.3 input / output ............................................................................................................................ 42
12 Estruturas de controle ...................................................................................................................... 42
12.1 if ................................................................................................................................................. 43
12.2 if... else ...................................................................................................................................... 43
12.3 for .............................................................................................................................................. 44
12.4 while .......................................................................................................................................... 45
____________________________________________________________________________________
Pgina 5 de 134 Manual Kit Arduino Iniciante
12.5 do - while ................................................................................................................................... 46
12.6 switch case................................................................................................................................. 47
13 Funes para pinos digitais .............................................................................................................. 47
13.1 - pinMode() ................................................................................................................................... 48
13.2 - digitalWrite() .............................................................................................................................. 48
13.3 - digitalRead() ............................................................................................................................... 48
14 Funes para pinos analgicos ......................................................................................................... 49
14.1 - analogRead() .............................................................................................................................. 49
14.2 - analogWrite() ............................................................................................................................. 50
15 Funes avanadas ........................................................................................................................... 51
15.1 - tone() .......................................................................................................................................... 51
15.2 - noTone() ..................................................................................................................................... 52
16 Funes de tempo ............................................................................................................................ 53
16.1 - milis() .......................................................................................................................................... 53
16.3 - micros ()...................................................................................................................................... 53
16.4 - delay () ........................................................................................................................................ 53
16.5 - delayMicroseconds () ................................................................................................................. 54
17 Exemplo de um cdigo fonte............................................................................................................ 55
18 Projetos............................................................................................................................................. 60
18.1 Projeto 1 ( Led Piscante ) ........................................................................................................... 60
18.1.1 Componentes necessrios .................................................................................................. 60
18.1.2 Montando o circuito ........................................................................................................... 61
18.1.3 Cdigo fonte ....................................................................................................................... 64
18.2 Projeto 2 ( Acendendo o LED com um boto ) .......................................................................... 65
18.2.1 Componentes necessrios .................................................................................................. 65
18.2.2 Montando o circuito ........................................................................................................... 66
18.2.3 Cdigo fonte ....................................................................................................................... 67
18.3 Projeto 3 ( Semforo ) ............................................................................................................... 68
18.3.1 Componentes necessrios .................................................................................................. 68
18.3.2 Montando o circuito ........................................................................................................... 69
18.3.3 Cdigo fonte ....................................................................................................................... 70
18.4 Projeto 4 ( Controlando o LED RGB ) ......................................................................................... 71
18.4.1 Componentes necessrios .................................................................................................. 71
____________________________________________________________________________________
Pgina 6 de 134 Manual Kit Arduino Iniciante
18.4.2 Montando o circuito ........................................................................................................... 71
18.4.3 Cdigo fonte ....................................................................................................................... 73
18.5 Projeto 5 ( Detector de objetos ) ............................................................................................... 75
18.5.1 Componentes necessrios .................................................................................................. 75
18.5.2 Montando o circuito ........................................................................................................... 76
18.5.3 Cdigo fonte ....................................................................................................................... 77
18.6 Projeto 6 ( Piano ) ...................................................................................................................... 79
18.6.1 Componentes necessrios .................................................................................................. 79
18.6.2 Montando o circuito ........................................................................................................... 80
18.6.3 Cdigo fonte ....................................................................................................................... 81
18.7 Projeto 7 ( Medindo Temperatura com Sensor NTC ) ............................................................... 83
18.7.1 Componentes necessrios .................................................................................................. 83
18.7.2 Montando o circuito ........................................................................................................... 84
18.7.3 Cdigo fonte ....................................................................................................................... 85
18.8 Projeto 8 ( Alarme de temperatura ) ......................................................................................... 87
18.8.1 Componentes necessrios .................................................................................................. 87
18.8.2 Montando o circuito ........................................................................................................... 88
18.8.3 Cdigo fonte ....................................................................................................................... 89
18.9 Projeto 9 ( Medindo Temperatura com LM35 ) ........................................................................ 90
18.9.1 Componentes necessrios .................................................................................................. 90
18.9.2 Montando o circuito ........................................................................................................... 91
18.9.3 Cdigo fonte ....................................................................................................................... 92
18.10 Projeto 10 ( Controle de iluminao automatizado ) .............................................................. 94
18.10.1 Componentes necessrios ................................................................................................ 94
18.10.2 Montando o circuito ......................................................................................................... 95
18.10.3 Cdigo fonte ..................................................................................................................... 96
18.11 Projeto 11 ( Display BCD de 7 segmentos ) ............................................................................. 98
18.11.1 Componentes necessrios ................................................................................................ 99
18.11.2 Montando o circuito ....................................................................................................... 100
18.11.3 Cdigo fonte ................................................................................................................... 101
18.12 Projeto 12 ( Display BCD de 7 segmentos com 4511 ) .......................................................... 104
18.12.1 Componentes necessrios .............................................................................................. 104
18.12.2 Montando o circuito ....................................................................................................... 105
____________________________________________________________________________________
Pgina 7 de 134 Manual Kit Arduino Iniciante
18.12.3 Cdigo fonte ................................................................................................................... 106
18.13 Projeto 13 ( Escrevendo no display LCD 16x2 ) ..................................................................... 108
18.13.1 Componentes necessrios .............................................................................................. 108
18.13.2 Montando o circuito ....................................................................................................... 109
18.13.3 Cdigo fonte ................................................................................................................... 110
18.14 Projeto 14 ( Enviando mensagens para o LCD 16x2 ) ............................................................ 113
18.14.1 Componentes necessrios .............................................................................................. 113
18.14.2 Montando o circuito ....................................................................................................... 114
18.14.3 Cdigo fonte ................................................................................................................... 115
18.15 Projeto 15 ( Emitindo sons com o Piezo Buzzer ) .................................................................. 116
18.15.1 Componentes necessrios .............................................................................................. 116
18.15.2 Montando o circuito ....................................................................................................... 116
18.15.3 Cdigo fonte ................................................................................................................... 117
18.16 Projeto 16 ( Sensor de toque com o Piezo Buzzer ) .............................................................. 118
18.16.1 Componentes necessrios .............................................................................................. 118
18.16.2 Montando o circuito ....................................................................................................... 119
18.16.3 Cdigo fonte ................................................................................................................... 120
18.17 Projeto 17 ( Controlando o Motor DC ) ................................................................................. 121
18.17.1 Componentes necessrios .............................................................................................. 121
18.17.2 Montando o circuito ....................................................................................................... 122
18.17.3 Cdigo fonte ................................................................................................................... 125
18.18 Projeto 18 ( Movimentos com Micro Servo 9g ) ................................................................... 127
18.18.1 Componentes necessrios .............................................................................................. 127
18.18.2 Montando o circuito ....................................................................................................... 127
18.18.3 Cdigo fonte ................................................................................................................... 128
18.19 Projeto 19 ( Automao com mdulo Rel ) ......................................................................... 130
18.19.1 Componentes necessrios .............................................................................................. 130
18.19.2 Montando o circuito ....................................................................................................... 131
18.19.3 Cdigo fonte ................................................................................................................... 132
19 Prximos passos ............................................................................................................................. 133
____________________________________________________________________________________
Pgina 8 de 134 Manual Kit Arduino Iniciante
1 O que Arduino
Arduino um projeto que engloba as diversas placas da plataforma (como o verso UNO,
MEGA, DUE entre outras), e o software de programao IDE. Analogamente uma placa Arduino nada
mais que uma espcie de um computador, que ao invs de um sistema operacional (Windows, Linux
ou MAC OS) , executa o cdigo fonte elaborado por voc, possui portas de comunicao, uma entrada
para fonte de alimentao, microcontrolador, memria RAM, memria Flash, etc.
Esse mdulo do nosso curso baseado na placa Arduino UNO, que a placa mais simples e
didtica da famlia Arduino, o microcontrolador o modelo ATmega328P. Dispe de 14 pinos digitais
de entrada / sada (de 6 que podem ser utilizados como sadas PWM), 6 entradas analgicas, um cristal
de quartzo 16 MHz, a conexo USB, um plug P4 de alimentao, pinos para ICSP e um boto de reset.
____________________________________________________________________________________
Pgina 9 de 134 Manual Kit Arduino Iniciante
2 Conhecendo o software Arduino IDE
O software Arduino IDE (Integrated Development Environment), o ambiente onde criamos,
compilamos e realizamos o upload do nosso cdigo fonte. O software gratuito e bastante simples de
utilizar. No mdulo bsico do nosso curso vamos aprender a utilizar as ferramentas, botes e funes
listadas a seguir.
Verificar Descarregar
Verifica no cdigo Executa todas as
fonte digitado se o funes do boto
mesmo est verificar e caso o Monitor Serial
correto, caso cdigo esteja Ferramenta para ler
Abrir
esteja 100% correto, realiza o e enviar dados para
Abre um programa
correto o cdigo upload do mesmo sua placa Arduino.
salvo anteriormente.
compilado e caso na placa Arduino.
encontre algum
erro informa na
caixa de dilogo.
Novo
Abre um novo
documento em
branco.
Salvar
Salva as alteraes
realizadas.
Obs. Quando o
cdigo compilado,
as alteraes so
salvas
automaticamente.
Ambiente de
programao
rea para criao e
escrita do cdigo
fonte.
____________________________________________________________________________________
Pgina 10 de 134 Manual Kit Arduino Iniciante
3 Instalando o Software Arduino IDE
O software Arduino IDE pode ser instalado atravs do arquivo executvel ".exe" ou atravs da
pasta de arquivos para usurios sem permisso de administrador. Vamos abordar aqui os dois
mtodos e assim voc poder ento optar pelo que melhor te atender.
Passo 1 - Para instalao atravs do Instalador ".exe" primeiramente voc deve realizar o download do
arquivo de instalao selecionando a opo "Windows Installer" na pgina
https://www.arduino.cc/en/Main/Software e salvando em uma pasta de sua preferncia;
Passo 2 - J com o arquivo salvo em sua pasta, execute-o, depois clique no boto executar;
____________________________________________________________________________________
Pgina 11 de 134 Manual Kit Arduino Iniciante
Passo 3 - Clique no boto "I Agree" na parte inferior direita da janela para aceitar os termos da licena
de utilizao do software;
____________________________________________________________________________________
Pgina 12 de 134 Manual Kit Arduino Iniciante
Passo 5 - Clique no boto" Install";
Passo 6 - Aguarde, e ao final do processo de instalao abrir a janela a seguir, selecione a opo
"Sempre confiar em software da "Arduino LLC" e clique no boto "Instalar";
____________________________________________________________________________________
Pgina 13 de 134 Manual Kit Arduino Iniciante
Passo 7 - Aguarde, alguns segundos at que o boto "Close" aparea e clique nele.
Passo 1 - Para instalao atravs da pasta de arquivos, voc deve realizar o download da pasta de
arquivos de instalao selecionando a opo "Windows ZIP file for non admin install" na pgina
https://www.arduino.cc/en/Main/Software e salvando em uma pasta de sua preferncia;
____________________________________________________________________________________
Pgina 14 de 134 Manual Kit Arduino Iniciante
Pronto, o software est instalado, para iniciar o programa, basta executar o arquivo
arduino.exe.
____________________________________________________________________________________
Pgina 15 de 134 Manual Kit Arduino Iniciante
3.3 - Instalao do Driver Arduino
O hardware Arduino Plug & Play, o que significa que ao ser conectado uma porta USB de
seu computador o mesmo ser automaticamente reconhecido e instalado. Aps instalado ele
aparecer pra voc com uma porta COM. Como no exemplo a seguir que foi reconhecido instalado
como Arduino Uno (COM8).
Agora selecione a porta em que est sua placa Arduino no software de programao. Para isso
clique em Tools> Serial Port> COMx conforme exemplo a seguir:
____________________________________________________________________________________
Pgina 16 de 134 Manual Kit Arduino Iniciante
Aps a instalao, o nmero da porta COM que aparecer em seu computador no
necessariamente ser 8 como no exemplo acima. Este nmero vai mudar de acordo com cada
computador.
E agora para que seus cdigos sejam transferidos corretamente necessrio selecionar sua
placa Arduino no menu Tools> Board conforme exemplo a seguir:
____________________________________________________________________________________
Pgina 17 de 134 Manual Kit Arduino Iniciante
4 Conhecendo sua placa Arduino UNO
Pinos digitais
Boto RESET Microcontrolador
Pinos que podem ser
Reinicia a placa e o Atmel ATMEGA328P
entradas ou sadas digitais.
programa em execuo
Funes configuradas atravs
do cdigo fonte
Porta USB
Porta para programao,
comunicao e alimentao
da placa Arduino
Conector P4
Conector para alimentao
da placa Arduino
5 Diferena de pino digital e pino analgico
____________________________________________________________________________________
Pgina 18 de 134 Manual Kit Arduino Iniciante
A imagem a seguir mostra a funo de cada pino da placa Arduino individualmente se
entrada ou sada. Voc deve consulta-la sempre que tiver dvida sobre algum pino, se o mesmo
entrada ou sada e qual valor de tenso mxima e mnima este pino suporta.
Como podemos ver, em nossa placa Arduino existem dois tipos de pinos, pinos digitais e pinos
analgicos, veja a seguir as diferenas entre eles.
Pinos digitais so muito mais fceis de entender pois possuem apenas dois estados, ON ou
OFF. Em termos de Arduino, um estado ON conhecido como HIGH (5V) e do estado OFF conhecido
como LOW (0V).
importante fixar em sua mente que um pino digital pode ter dois estados:
Os pinos digitais do Arduino podem ser configurados como entradas ou sadas. Vamos explorar
o funcionamento dos pinos em ambos os modos. Neste tpico estamos abordando os pinos digitais,
____________________________________________________________________________________
Pgina 19 de 134 Manual Kit Arduino Iniciante
mas importante ter em mente que todos os pinos analgicos da nossa placa Arduino, podem ser
configurados e utilizados, exatamente da mesma maneira que os pinos digitais.
Pinos digitais so por padro configurados como entradas, por isso eles no precisam ser
explicitamente declarados como entradas com a funo pinMode () quando voc quiser usa-los como
entradas. Pinos configurados como entradas so colocados em estado de alta impedncia.
Pinos configurados como sada com a funo pinMode () so colocados em estado de baixa
impedncia. Isto significa que eles podem fornecer uma quantidade substancial de corrente para
outros circuitos. Os pinos digitais podem fornecer at 40 mA (miliamperes) de corrente para outros
dispositivos / circuitos. Esta corrente o suficiente para acender um LED, ou ler vrios sensores por
exemplo, mas no o suficiente atual para ligar rels, solenides ou motores.
Cuidado: Curtos-circuitos nos pinos do Arduino, ou a tentativa de ligar dispositivos de alta corrente
como rels, solenides ou motores, pode danificar os transistores internos do pino, ou danificar o chip
ATmega inteiro. Muitas vezes, isso ir resultar em um pino "morto" no microcontrolador mas o chip
restante continuar a funcionar adequadamente. Por esta razo, uma boa ideia sempre utilizar
resistores de 470 a 1k para conectar pinos de sada a outros dispositivos.
Um pino analgico pode assumir qualquer nmero de valores, ao contrrio do sinal digital, que
como vimos h pouco tem apenas dois valores (LOW=0V e HIGH=5V). Para medir o valor de sinais
analgicos, o Arduino utiliza de um conversor analgico-digital (ADC) intern. O ADC transforma a
tenso analgica num valor digital. A funo que voc usa para obter o valor de um sinal analgico
analogRead (). Esta funo converte o valor da tenso num pino de entrada analgica e te fornece um
valor de 0 a 1023, proporcional ao valor de referncia. A referncia 5V na maioria dos Arduinos, 7V
no Arduino Mini e Nano, e 15V em Arduino mega. Para usar esta funo basta inserir o nmero do
pino utilizado dentro dos parnteses assim analogRead (n do pino).
____________________________________________________________________________________
Pgina 20 de 134 Manual Kit Arduino Iniciante
4.3 Como alimentar sua placa Arduino
O Arduino pode ser alimentado de trs maneiras, diretamente pela porta USB, atravs do
conector P4 e atravs dos pinos Vin e GND.
Para alimentar atravs da porta USB basta utilizar um cabo USB padro e conect-lo em sua
placa e numa porta USB de um PC ou laptop. Esta maneira mais utilizada durante a fase de criao
do cdigo fonte pois mais prtico j que a placa deve estar conectada ao PC para descarregar os seus
sketches.
As outras duas maneiras so mais utilizadas quando o projeto j est finalizado ou case
necessite de alguma mobilidade como o caso de robs ou projetos portteis. Tanto atravs do
conector P4 como atravs dos pinos Vin e GND a tenso de alimentao deve estar entre 7 e 12V.
Para alimentar atravs do conector P4 voc pode utilizar uma bateria 9V, case para 6 pilhas de
1,5V, uma fonte de tomada 9V, enfim, qualquer fonte de energia CC que possua tenso entre 7 e 12V.
Caso voc alimente a placa com menos de 7V, no entanto, o pino de 5V pode fornecer menos
do que cinco volts e a placa pode apresentar funcionamento instvel. E caso voc utilize de mais do
que 12 V, o regulador de tenso pode superaquecer e danificar a placa. Lembre-se o valor seguro e
recomendado de 7 a 12 volts".
____________________________________________________________________________________
Pgina 21 de 134 Manual Kit Arduino Iniciante
5 Conhecendo seu Material Didtico
5.1 Resistor
Este componente serve para limitar a corrente eltrica que passa pelo circuito. A quantidade
de corrente limitada depende do valor de resistncia do resistor. Voc pode pensar em um resistor
como um cano de gua muito mais fino do que o cano conectado a ele. Conforme a gua (ou a
corrente eltrica) entra no resistor, o cano se torna mais fino e o volume da gua (corrente) saindo na
____________________________________________________________________________________
Pgina 22 de 134 Manual Kit Arduino Iniciante
outra ponta , dessa forma, reduzido. Voc utiliza resistores para diminuir a voltagem ou a corrente
para outros dispositivos.
Em seu material didtico existem trs valores de resistores diferentes, 220, 300 e 10K,
que podero ser padro ou de preciso, tente identificar qual qual atravs da leitura do cdigo de
cores. Em nossas experincias vamos utilizar diferentes valores de resistores e importante que voc
saiba como identifica-los.
____________________________________________________________________________________
Pgina 23 de 134 Manual Kit Arduino Iniciante
5.2 - Led
Este componente tambm conhecido como diodo emissor de luz. Ele funciona igual a uma
pequena lmpada que emite luz quando uma corrente eltrica flui atravs de seus terminais. A
intensidade do feixe de luz depende da quantidade de corrente que circula travs de seus terminais.
Este componente possui polaridade, isso significa que ele possui um terminal positivo e um
terminal negativo, a inverso destes polos pode ocasionar a queima do seu componente, porftanto
fique atendo polaridade antes de lig-lo. O terminal maior o positivo e chamado Anodo e o
terminal menor o negativo chamado de Catodo, portanto a corrente deve circular do terminal maior
para o menor.
Para funcionar um LED precisa ter sobre ele 2V e 20mA. Como vamos liga-lo sempre a um pino
de nossa placa Arduino que possui 5V, devemos fazer um divisor de tenso com um resistor.
Abordaremos este assunto mais detalhadamente em nosso primeiro experimento.
O LED RGB a juno de trs Leds em um s, ele formado por um vermelho (R de red), um
verde (G de green) e um azul (B de blue). Associando as cores dos trs Leds possvel se obter um
verdadeiro show de luzes utilizando apenas um led.
____________________________________________________________________________________
Pgina 24 de 134 Manual Kit Arduino Iniciante
5.4 - Potencimetro
Este componente um resistor varivel. Sua resistncia varia conforme a haste central
rotacionada. Ele possui trs terminais e a resistncia varia sempre entre o terminal do meio e uma das
extremidades.
Este componente uma chave aberta que quando pressionada, fecha e interliga seus dois
terminais fazendo com que a corrente eltrica circule atravs do circuito.
Este componente um sensor constitudo de dois Leds, um emissor e outro receptor de raios
infravermelhos. Seu funcionamento bastante simples, consiste em emitir um feixe de raios
infravermelhos atravs do emissor para que este ao tocar uma superfcie reflita de volta para o
receptor e atravs deste processo se possa detectar uma variao de cor ou tipo da superfcie. Esta
apenas umas das diversas aplicaes para este sensor.
Vista
Superior
____________________________________________________________________________________
Pgina 25 de 134 Manual Kit Arduino Iniciante
5.7 - Sensor de luminosidade LDR
O LDR um sensor de luminosidade. Ele varia sua resistncia de acordo com a luminosidade
que incide sobre sua superfcie. Onde pouca luminosidade a resistncia aumenta e alta luminosidade,
a resistncia diminui. Este componente um resistor varivel, por este motivo, assim como o resistor
ele no possui polaridade, ou seja, seus terminais podem ser ligados de forma indiferente, pois no h
definio de positivo e negativo.
O NTC um sensor de Temperatura. De forma similar ao LDR, ele varia sua resistncia de
acordo com a temperatura que incide sobre sua superfcie. Onde pouca temperatura a resistncia
aumenta e em alta temperatura, a resistncia diminui. Este componente um resistor varivel, por
este motivo, assim como o resistor ele no possui polaridade, ou seja, seus terminais podem ser
ligados de forma indiferente, pois no h definio de positivo e negativo.
O sensor LM35 um sensor de temperatura de preciso, que apresenta uma sada de tenso
linear relativa temperatura em que ele se encontrar no momento em que for alimentado por uma
tenso de 4-20Vdc e GND, tendo em sua sada um sinal de 10mV para cada Grau Celsius de
temperatura, sendo assim, apresenta uma boa vantagem com relao aos demais sensores de
temperatura. Ele pode fornecer com exatido, valores temperatura com variaes de 0,25C dentro da
faixa de temperatura de 55C 150C.
____________________________________________________________________________________
Pgina 26 de 134 Manual Kit Arduino Iniciante
5.10 - Buzzer
O Buzzer um emissor de som que se assemelha a uma campainha. Quando uma corrente
circula atravs de seus terminais ele emitem um som de intensidade proporcional corrente eltrica.
O Display BCD de 7 segmentos bem conhecido por ser largamente utilizado em painis de
senhas e relgios eletrnicos. Este componente nos permite formar nmeros e letras atravs da
combinao de suas linhas que por sua vez so formadas por Leds com seus terminais negativos
interligados entre si. Para entender melhor seu funcionamento consulte o Projeto 11 do Guia Pratico
que acompanha seu material didtico.
____________________________________________________________________________________
Pgina 27 de 134 Manual Kit Arduino Iniciante
5.13 - Display LCD 16x2
Este componente permite que ns seres humanos possamos ler dados que esto dentro do
Arduino. Ele possui 2 linhas de que comportam at 16 caracteres que podem ser preenchidos por
letras e nmeros. Para liga-lo use como referncia a ligao utilizada no projeto 13 do Guia Pratico que
acompanha seu material didtico.
5.14 - Motor DC
Este componente converte energia eltrica em energia mecnica. um motor com dois
terminais que ao aplicar 5V ele gira o eixo. Para inverter seu sentido de rotao basta inverter o
positivo e o negativo em seus terminais.
O L293D um circuito integrado para controle de motores DC, ele comumente chamado de
ponte-H. Ele permite controlar motores de at 36V de alimentao. Cuidado! O L293D suporta
corrente constante de 600mA e corrente pico em torno de 1.2A. Portanto no o utilize para controlar
motores DC que exijam mais do que 600mA.
____________________________________________________________________________________
Pgina 28 de 134 Manual Kit Arduino Iniciante
5.16 - Microservo 9g
O micro servo tambm um motor, mas s realiza movimentos de 180 com seu eixo nos dois
sentidos, ele bastante utilizado em robtica para posicionamento e para movimentar articulaes de
robs e braos robticos. Apesar de possuir uma extensa e complexa teoria acerca de seu
funcionamento, sua utilizao com o Arduino bastante simples.
O mdulo rel uma interface para adaptar os pinos do Arduino para ligar outros aparelhos
com uma tenso maior que 5V. Ele permite por exemplo que voc ligue ou desligue uma lmpada
220V com sua placa Arduino que alimentada com apenas 5V.
A capsula piezoeltrica semelhante um buzzer, porm possui outro formato e serve tanto
para emitir sons quanto como um sensor de toque. Ele capaz de gerar corrente eltrica a partir de
uma presso fsica em seu corpo, ou seja, atravs desta corrente, possvel detectar se existe ou no
algo sobre o mesmo.
____________________________________________________________________________________
Pgina 29 de 134 Manual Kit Arduino Iniciante
5.19 - Protoboard
O protoboard uma placa para montagem de seus circuitos eletrnicos. Ele possui diversos
furos para insero de componentes e estes furos por sua vez esto interligados de forma a facilitar as
conexes entre os componentes. Os furos das barras das extremidades identificados pelas linhas azul e
vermelha esto interligados na horizontal e os furos da parte central esto interligados na horizontal
conforme esquema a seguir onde cada fio indica a ligao interna correspondente.
____________________________________________________________________________________
Pgina 30 de 134 Manual Kit Arduino Iniciante
6 A linguagem de programao
- Funes principais;
- Variveis;
- Operadores booleanos, de comparao e aritmticos;
- Estrutura de controle;
- Funes digitais e analgicas.
6.1 - Sintaxe
Cada uma dessas partes do cdigo fonte, so compostas por comandos escritos que possuem
uma maneira correta de serem escritos, a isso damos o nome de sintaxe. E para que voc entenda a
sintaxe importante voc conhecer a funo dos elementos que compes essa sintaxe.
Neste material vamos abordar as principais funes e necessrias para que voc explore todo
o seu material didtico.
6.1.1 Chaves { }
As chaves definem o incio e o fim de um bloco de funo ou bloco de declarao como por
exemplo a funo void loop(), ou as declaraes for e if.
void setup()
{
pinMode(pino, OUTPUT); //Configura um pino como sada
Uma chave aberta deve sempre ser seguida de uma chave fechada. Chaves abertas que no
so fechadas podem acarretar erros ocultos e impenetrveis no compilador que s vezes podem ser
difceis de encontrar. O ambiente de programao do Arduino possui uma funcionalidade que
verifica se as chaves abertas foram fechadas corretamente.
____________________________________________________________________________________
Pgina 31 de 134 Manual Kit Arduino Iniciante
6.1.2 Ponto e Vrgula ;
O ponto e vrgula deve ser usado para finalizar uma declarao e separar elementos do
programa.
Importante: Esquecer de finalizar uma linha com o ponto e vrgula vai resultar em um erro no
compilador. O texto do erro pode ou no ser obvio e falar que falta um ponto e vrgula. Caso voc
tenha um erro impenetrvel ou sem lgica no compilador, uma das primeiras coisas que voc deve
desconfiar que falta um ponto e vrgula prximo de onde o compilador informar o erro.
Linhas nicas de comentrios comeam com // e terminam ao final dessa mesma linha. Linhas
de comentrios tambm so ignoradas pelo programa e no ocupam espao na memria.
Linhas de comentrios so comumente utilizadas aps uma instruo vlida para fornecer mais
informaes sobre o que aquela instruo faz ou servir de lembrete futuro.
____________________________________________________________________________________
Pgina 32 de 134 Manual Kit Arduino Iniciante
6.2 Funes Principais
A funo setup () executada quando um esboo comea. A funo setup() ser executada
apenas uma vez aps cada energizao ou reset da placa Arduino e ela usada para inicializar
variveis, configurar pinos, comear a usar bibliotecas, etc..
void setup()
{
instrues;
____________________________________________________________________________________
Pgina 33 de 134 Manual Kit Arduino Iniciante
6.2.2 - Funo loop()
A funo loop() faz exatamente o que seu nome sugere, ela fica em loop constantemente,
permitindo que o seu programa execute tarefas continuamente. nessa parte que inserimos o
contedo ativo (ligar e desligar pinos, ler sensores e valores externos e tomar decises) de nosso
programa.
void loop()
{
digitalWrite(pino, HIGH); //Liga um pino
delay(1000); //Aguarda 1 segundo
digitalWrite(pino, LOW); //Desliga um pino
delay(1000); //Aguarda 1 segundo
6.3 - Funes
Uma funo um bloco de cdigo que possui um nome e um bloco de declaraes que so
executadas quando a funo chamada. As funes "void setup()"e "void loop()" j
foram explicadas acima e demais funes embutidas sero explicadas futuramente.
Funes personalizadas podem ser criadas para executar tarefas repetitivas e manter o cdigo
organizado. Funes so declaradas primeiramente declarando-se o tipo de funo. Este o tipo de
valor que deve ser retornado pela funo como por exemplo "int" para um tipo de funo inteira. Caso
a funo no deva retornar nenhum valor o tipo de funo deve ser "void". Aps o tipo, declare o
nome dado funo e em parnteses qualquer parmetro que deva ser passado para a funo.
tipo nomeDaFuno(parmetros)
{
instrues;
A seguinte funo inteira delayVal() usada para criar uma contagem de tempo ou um atraseo
em um programa atravs da leitura de um potencimetro. Ela primeiro declara uma varivel local "v",
atribui a v o valor lido no potencimetro que pode variar de 0 a 1023, ento divide o valor por 4 para
um resultado final entre 0 e 255, e finalmente retorna o resultado para o programa principal.
int delayVal()
{
int v; //cria uma varivel temporria"v"
V = analogRead(pot); //L o valor do potencimetro
V /= 4; //divide o valor por 4
return v; //retorna o resultado
}
____________________________________________________________________________________
Pgina 34 de 134 Manual Kit Arduino Iniciante
7 Variveis
Uma varivel uma maneira de dar nome e armazenar um valor numrico para ser usado
posteriormente no programa. Como o prprio nome sugere, variveis so nmeros que podem ser
constantemente modificados, o oposto das constantes que seus valores nunca mudam. Uma varivel
precisa ser declarada e opcionalmente atribuda a ela um valor para ser armazenado. O cdigo a seguir
declara uma varivel chamada variavelEntrada e atribui a ela o valor obtido na entrada analgica 2:
- variavelEntrada a varivel em si. A primeira linha declara que nela vai conter uma int (valor inteiro).
A segunda linha escreve na varivel o valor obtido na entrada analgica 2. Desta forma o valor da
entrada analgica dois fica armazenado e acessvel em outro lugar do programa.
Uma vez que um valor foi atribudo a uma varivel, ou reescrito, voc pode testar este valor
para ver se ele atende a alguma condio, ou voc pode usar esse valor diretamente. Como exemplo
para ilustrar trs operaes uteis com variveis, o cdigo a seguir testa se a "variavelEntrada" menor
que 100, se for verdade atribui o valor 100 a "variavelEntrada", e ento estabelece um delay baseado
na "varivelEntrada" que agora 100:
Importante: Variveis devem receber nomes descritivos, para tornar o cdigo mais fcil de ser lido e
interpretado. Nomes de variveis como "tiltSensor" ou "pushButton", ajudam o programador e outras
pessoas a ler o cdigo e entender o que a varivel representa. J variveis com nomes como "var" ou
"valor", no ajudam muito a entender o cdigo. Uma varivel pode usar qualquer palavra como nome
desde que no seja nenhuma da palavras chave da linguagem Arduino.
____________________________________________________________________________________
Pgina 35 de 134 Manual Kit Arduino Iniciante
7.1 - Declarao de variveis
Todas as variveis devem ser declaradas antes de serem usadas. Declarar uma varivel significa
definir seu tipo (qual tipo de valor ser armazenado nela), como int, long, float, etc., dar um nome, e
opcionalmente atribuir um valor inicial. Isso s precisa ser feito uma vez em um programa, mas o valor
da varivel pode ser modificado a qualquer momento utilizando aritmtica e varias outras atribuies.
O exemplo a seguir declara que "variavelEntrada" uma int, ou typo inteira, que que seu valor
inicial igual a zero. Isto chamado de atribuio simples.
int variavelEntrada = 0;
Uma varivel pode ser declarada em diversos pontos ao longo do programa e onde essa
declarao estiver determina quais partes do programa podem usar a varivel.
Uma varivel pode ser declarada no incio do programa antes da funo void setup(),
localmente dentro de funes, e s vezes em declaraes como por exemplo em um loop "for". Onde a
varivel declarada determina o escopo da varivel ou a capacidade de certas partes do programa
acessar e usar a varivel.
Uma varivel global uma que pode ser vista e utilizada por todas as funes e declaraes
em um programa. Esta varivel declarada no incio do programa, antes da funo void setup().
J uma varivel local uma que definida dentro de uma funo ou como parte de um loop
for. Ela s visvel e s pode ser usada dentro da funo na qual ela foi declarada. Portanto possvel
se ter duas ou mais variveis com o mesmo nome em diferentes partes de um mesmo programa que
contenham valores diferentes. Garantindo que somente uma funo tem acesso suas prprias
variveis simplifica o programa e reduz a possibilidade de erros de programao.
____________________________________________________________________________________
Pgina 36 de 134 Manual Kit Arduino Iniciante
O exemplo a seguir mostra como declarar alguns tipos diferentes de variveis e demonstra a
visibilidade de cada varivel:
void loop()
{
for (int i=0; i<20;) //"i" s visvel
{ // dentro do loop for
i++;
}
float f; // "f" s visvel
} // dentro do loop()
Ao declarar uma varivel devemos informar o tipo de varivel. Isso significa informar que tipo
de dados sero armazenados nessa varivel. Para cada tipo de dado existe uma varivel especfica para
armazen-lo. Isso existe para que possamos otimizar nosso cdigo fonte e utilizao do
microcontrolador j que maiores valores ou dados mais complexos como valores negativos, ou valores
decimais alm de ocuparem maior espao de memria para armazen-los, consomem mais ciclos de
processamento. Dessa forma, se temos um valor pequeno ou simples utilizamos uma varivel que
consuma menos de nosso microcontrolador fazendo com que nosso programa apresente um melhor
desempenho.
7.3.1 - byte
Um byte armazena um nmero de 8 bits sem sinal, de 0 a 255. Ou seja uma varivel do tipo
byte s pode armazenar valores de 0 at 255.
byte valor = 0;
____________________________________________________________________________________
Pgina 37 de 134 Manual Kit Arduino Iniciante
7.3.2 - int
int valor = 0;
Unsigned ints (inteiros sem sinal) so os mesmos que ints em que armazenam um valor de 2
bytes ou 16 bits, s que ao invez de armazenar nmeros negativos no entanto, eles armazenam
apenas valores positivos, de 0 a 65.535.
7.3.4 - char
Um tipo de dado que ocupa 1 byte de memria e armazena o valor de um caractere ASCII.
Caracteres literais so escritos entre aspas.
m tipo de dados que ocupa 1 byte de memria que armazena um valor de caractere. Literais de
caracteres so escritos em aspas simples, como este: 'A' (para caracteres mltiplos - sequncias de
caracteres - use aspas: "ABC").
char meuChar = A;
Os dois so equivalentes
Ou ainda
____________________________________________________________________________________
Pgina 38 de 134 Manual Kit Arduino Iniciante
7.3.5 word
Uma varivel do tipo word armazena dados de 16 bits ou dois bytes sem sinal.
7.3.6 long
As variveis do tipo unsigned long (long sem sinal) so variveis de tamanho estendidas para
armazenamento de nmeros de 32 bits sem sinal, ou seja de 0 a 4.294.967.295.
7.3.8 float
Variveis no tipo float so utilizadas para armazenar nmeros de ponto flutuante, um nmero
que tem um ponto decimal. Nmeros de ponto flutuante so freqentemente usados para aproximar
valores analgicos e contnuos porque eles tm maior resoluo do que nmeros inteiros. Os nmeros
de ponto flutuante podem ser to grandes que so armazenados como 32 bits (4 bytes) de
informaes.
A matemtica de ponto flutuante tambm muito mais lenta do que a matemtica de nmero
inteiro na execuo de clculos como explicado no incio deste captulo, portanto, deve ser evitada se,
por exemplo, um loop tiver que ser executado na velocidade mxima para uma funo cronolgica
crtica. Programadores muitas vezes vo para convertem clculos de ponto flutuante para inteiros para
aumentar a velocidade de execuo do programa.
____________________________________________________________________________________
Pgina 39 de 134 Manual Kit Arduino Iniciante
Ao realizar clculos matemticos com variveis float, voc precisar adicionar um ponto
decimal, caso contrrio ele ser tratado como um int.
Importante: Quando o valor de uma varivel exceder sua capacidade mxima ocorre o estouro dessa
varivel, ou seja, ela retorna ao seu valor mnimo. Por exemplo, no caso de uma varivel do tipo byte
que est com valor igual a 255, se a incrementarmos em 1 o seu valor ser 0. J no caso de uma
varivel do tipo int com valor igual a 32767, se a incrementarmos em 1, o seu valor ser -32768.
8 - Aritmtica
y = y + 3;
x = x - 7;
i = j * 6;
r = r / 5;
A operao conduzida usando o tipo de dados dos operandos, ento por exemplo, 9 / 4
resulta em 2 ao invs de 2,25 j que 9 e 4 so ints e por esse motivo so incapazes de usar casas
decimais. Isso tambm significa que uma operao pode dar overflow caso o resultado seja maior que
o que pode ser armazenado no tipo de varivel.
____________________________________________________________________________________
Pgina 40 de 134 Manual Kit Arduino Iniciante
9 Operadores de comparao
x == y // Compara se x igual a y
x != y // Compara se x diferente de y
x < y // Compara se x menor que y
x > y // Compara se x maior que y
x <= y // Compara se x menor ou igual a y
x >= y // Compara se x maior ou igual a y
10 Operadores lgicos
Lgica OR (OU):
____________________________________________________________________________________
Pgina 41 de 134 Manual Kit Arduino Iniciante
11 Constantes
Estas so constantes que definem nveis lgicos. FALSE facilmente definido como 0 (zero)
enquanto TRUE frequentemente definido como1, mas tambm pode ser qualquer valor diferente de
zero. Desta forma, -1, 2 e -200 so todos definidos como TRUE.
Estas so constantes definem nveis lgicos de pinos como HIGH (1) ou LOW (0) e so usados
ao escrever ou ler os pinos digitais. HIGH definido como nvel lgico 1 ou LIGADO ou 5V enquanto
LOW definido como nvel lgico 0 ou DESLIGAO ou 0 volts.
digitalWrite(13, HIGH);
Estas so constantes so usadas com a funo pinMode() para definir o modo de operao de
um pino digital como entrada (INPUT) ou sada (OUTPUT).
pinMode(13, OUTPUT);
12 Estruturas de controle
Uma estrutura de controle um bloco de funo que analisa variveis e toma uma deciso
com base nos parmetros dados.
____________________________________________________________________________________
Pgina 42 de 134 Manual Kit Arduino Iniciante
12.1 if
Declaraes if testam se uma certa condio foi atendida, tal como uma valor analgico estar
acima de um certo nmero, e executa qualquer declarao dentro das chaves se a declarao for
verdadeira (true). Se for falsa, o programa pula essa declarao. O formato para um teste if :
if (algumaVariavel ?? valor);
{
executeAlgo;
}
O exemplo anterior compara algumaVariavel com valor , que pode ser uma varivel ou
constante. Se a comparao ou condio em parnteses for verdadeira, as declaraes dentro das
chaves so executadas. Se no, o programa pula e continua aps as chaves.
IMPORTANTE: Cuidado para no utilizar acidentalmente "=", como por exemplo "if (x=10), pois
enquanto tecnicamente vlido, define a varivel x com o valor de 10 e o resultado desta operao
sempre verdadeiro (true). Ao invs disso use "==", como por exemplo "if (x==10)", que testa apenas se
x ou no igual a 10. Pense em = como igual e == como sendo igual a.
If... else permite se tomar decises. Por exemplo, se voc quer verificar o estado de uma
entrada digital e fazer uma coisa caso ela esteja em HIGH e outra coisa caso esteja em LOW, voc deve
escrever o seguinte cdigo:
____________________________________________________________________________________
Pgina 43 de 134 Manual Kit Arduino Iniciante
Else pode ainda vir antes de um if, de modo que mltiplos testes exclusivos possam ser
executados ao mesmo tempo. Desta forma cada verificao ir prosseguir para a prxima at que uma
delas seja verdadeira. Quando uma verificao verdadeira, o bloco de cdigo associado (que est
entre as chaves logo abaixo) executado, e o programa, em seguida, pula para a linha aps o
fechamento de chaves executado. Se nenhum teste for verdadeiro e existir um bloco else , o bloco else
executado.
Observe que um bloco else if pode ser usado com ou sem um bloco de terminao else e vice-
versa. Um nmero ilimitado de else if permitido.
12.3 for
A declarao for usada para repetir um bloco de declaraes fechado por chaves por uma
determinada quantidade de vezes. Um contador de incrementos utilizado para incrementar e
terminar o loop. O comando for composto por trs partes, separadas por ponto e vrgula:
____________________________________________________________________________________
Pgina 44 de 134 Manual Kit Arduino Iniciante
Exemplo: O exemplo a seguir imprime o valor de 0 a 99.
A inicializao acontece primeiro e apenas uma vez. Cada vez atravs do loop, a condio
testada; Se for verdade, o bloco de instruo e o incremento so executados, ento a condio
testada novamente. Quando a condio se torna falsa, o loop termina.
12.4 while
Exemplo: O exemplo a seguir testa se variavel menor que 200 e se for verdadeira executa as
declaraes entre chaves e permanece executando at que variavel no seja mais menor que 200.
____________________________________________________________________________________
Pgina 45 de 134 Manual Kit Arduino Iniciante
12.5 do - while
O loop do funciona da mesma maneira que o loop while com a exceo de que a condio
testada no final do loop, dessa forma o loop sempre ser executado pelo menos uma vez.
do
{
executeAlgo;
} while (algumaVarivel ?? valor)
Exemplo: O exemplo a seguir atribui leituraSensor() varivel x, pausa por 50 milisegundos, e ento
permanece executando o loop at que x no seja mais menor que 100:
do
{
X = leituraSensor(); // Atribui o valor de
//leituraSensor() a x
delay(50); //pausa 50 milisegundos
} while (x < 100) //permanece em loop enquanto
//x for menor que 100
____________________________________________________________________________________
Pgina 46 de 134 Manual Kit Arduino Iniciante
12.6 switch case
Da mesma forma que as declaraes do tipo if, o switch ... case controla o fluxo de
programas permitindo que os programadores especifiquem cdigos diferentes que devem ser
executados em vrias condies. Em particular, uma instruo switch compara o valor de uma varivel
com os valores especificados em instrues case. Quando uma instruo case encontrada cujo valor
coincida com o da varivel, o cdigo nessa instruo case executado.
O comando break utilizado para sair de um switch e normalmente usada no final de cada
case. Sem um comando break, a instruo switch continuar executando as seguintes expresses at
que um break seja executado ou o fim da instruo switch seja atingido.
switch (variavel) {
case 1:
// executa algo se variavel for igual a 1
break;
case 2:
// executa algo se variavel for igual a 2
break;
default:
// se no for igual a nenhum valor dos cases acima
// executa o default
// a utilizao do default opcional
break;
}
Estas funes so basicamente as funes que nos permite ligar ou deligar um pino de sada
digital e ler o estado de um pino de entrada digital.
So elas:
- pinMode()
- digitalWrite()
- digitalRead()
____________________________________________________________________________________
Pgina 47 de 134 Manual Kit Arduino Iniciante
13.1 - pinMode()
O comando pinMode() serve para informar para nosso microcontrolador qual a funo de um
determinado pino da placa Arduino, se o mesmo ir operar com uma entrada ou como uma sada. O
comando pinMode() deve ser usado da seguinte maneira:
13.2 - digitalWrite()
O comando digitalWrite() serve para ligar ou desligar um pino digital da nossa placa Arduino. O
comando digitalWrite() deve ser usado da seguinte maneira:
13.3 - digitalRead()
O comando digitalRead() serve para ler o estado de um pino digital da nossa placa Arduino.
Atravs dessa leitura podemos ler dois estados HIGH (+5V) ou LOW (0V).
____________________________________________________________________________________
Pgina 48 de 134 Manual Kit Arduino Iniciante
Veja a seguir um exemplo de aplicao das trs funes para pinos digitais. Neste exemplo
temos um boto ligado a uma entrada digital e um led ligado a uma sada digital. Ento o programa faz
a leitura do estado da entrada digital e o estado lido enviado para a sada digital, dessa forma, se o
boto for pressionado o led acende e se o boto for liberado o led se apaga. Vejamos:
void setup()
{
pinMode(pinoLed, OUTPUT); // configura pino 13 como sada
pinMode(pinoBotao, INPUT); // configura pino 7 como entrada
}
void loop()
{
estado = digitalRead(pinoBotao); // l o estado do pino 13 e armazena na
// varivel estado
digitalWrite(pinoLed, estado); // envia para o pino 13 o mesmo estado
// lido no pino 7
}
Estas funes como as dos pinos digitais servem para controle de pinos analgicos, ler o valor
de um pino analgico e escrever valores analgicos nas sadas PWM.
So elas:
- analogRead()
- analoglWrite()
14.1 - analogRead()
O comando analoglRead() serve para ler o valor de tenso de uma entrada analgica da placa
Arduino. A placa Arduino possui um conversor analgico para digital de 10 bits. Isto significa que
mapear tenses de entrada entre 0 e 5 volts em valores inteiros entre 0 e 1023. Isso produz uma
resoluo entre leituras de: 5 volts / 1024 unidades ou .0049 volts (4,9 mV) por unidade.
Para facilitar basta ter em mente que 5V lido como 1023 e 0V lido como 0 e desta forma
proporcionalmente os valores entre 0 e 5V, como por exemplo 2,5V que ser lido como 511 e assim
sucessivamente.
____________________________________________________________________________________
Pgina 49 de 134 Manual Kit Arduino Iniciante
Demora cerca de 100 microssegundos (0,0001 s) para ler uma entrada analgica, ento a taxa
de leitura mxima cerca de 10.000 vezes por segundo.
14.2 - analogWrite()
Escreve um valor analgico (onda PWM) em uma sada PWM da placa Arduino. Pode ser usado
para acender um LED em variaes de luminosidade ou conduzir um motor a vrias velocidades.
Depois de executar um comando analogWrite (), o pino ir gerar uma onda quadrada constante do
ciclo de trabalho especificado e permanecer at que receba um comando diferente no mesmo pino.
A freqncia do sinal PWM de aproximadamente 490 Hz. No Arduino Uno e semelhantes, os pinos 5
e 6 tm uma frequncia de aproximadamente 980 Hz. Os pinos 3 e 11 no Leonardo tambm funcionam
a 980 Hz.
Na maioria das placas Arduino (aquelas com o ATmega168 ou o ATmega328), esta funo
funciona nos pinos 3, 5, 6, 9, 10 e 11. No Arduino Mega, funciona nos pinos 2 ao 13 e 44 ao 46. Os
Arduino mais antigos que utilizam o ATmega8 s suportam analogWrite () nos pinos 9, 10 e 11.
O Arduino Due suporta analogWrite () nos pinos 2 a 13, mais pinos DAC0 e DAC1.
Diferentemente dos pinos PWM, DAC0 e DAC1 so conversores Digital para Analgico e atuam como
verdadeiras sadas analgicas.
De forma bastante similar ao comando analogRead() que possui resoluo de 10 bits como
vimos anteriormente, o comando analogWrite() possui uma resoluo de 8 bits, ou seja, devemos
enviar valores entre 0 e 255 para a sada PWM, onde 255 corresponde a 5V, 0 a 0V e demais valores de
0 a 5V proporcionalmente de 0 a 255. Como por exemplo para escrever 2,5V em uma sada PWM
devemos enviar o valor 127 no comando analogWrite().
____________________________________________________________________________________
Pgina 50 de 134 Manual Kit Arduino Iniciante
Veja a seguir um exemplo de aplicao das duas funes para pinos analgicos. Neste
exemplo temos um potencimetro conectado a uma entrada analgica e um led conectado a uma
sada PWM. O programa ento realiza a leitura do valor da entrada analgica (ajustado pelo
potencimetro) e envia o mesmo valor proporcional para a sada PWM (led). Dessa forma o
potencimetro controla a luminosidade do led do mnimo ao mximo. Vejamos:
{
pinMode(pinoLed, OUTPUT); // configura pino digital 9 como sada
}
void loop()
{
valor = analogRead(ponoAnalogico); // l o valor do pino analgico
analogWrite(pinoLed, valor / 4); // envia para a sada PWM o valor
// analgico lido, d que dividido
// por 4 pois a entrada analgica
// l de 0 a 1023 e a sada PWM
// aceita valores de 0 a 255
// (4 vezes menor)
}
15 Funes avanadas
Das funes avanadas veremos as funes para gerar frequncia travs de pinos digitais.
- tone();
- noTone();
15.1 - tone()
Gera uma onda quadrada da freqncia especificada (e 50% de ciclo de trabalho) em um pino.
Uma durao pode ser especificada, caso contrrio, a onda continua at que um comando noTone ()
seja executado. O pino pode ser conectado a um buzzer, capsula piezoeltrica ou outro alto-falante
para tocar tons.
____________________________________________________________________________________
Pgina 51 de 134 Manual Kit Arduino Iniciante
Somente um tom pode ser gerado de cada vez. Se um tom j estiver tocando em um pino
diferente, o comando tone() no ter efeito. Se o tom estiver tocando no mesmo pino, a chamada
ajustar sua frequncia para a frequncia solicitada. Isso significa que se voc quiser jogar diferentes
tons em vrios pinos, voc precisa executar noTone() em um pino antes de executar tone() no prximo
pino.
O uso da funo tone() interferir com a sada PWM nos pinos 3 e 11 (em placas diferentes do
Mega).
ou ainda
15.2 - noTone()
Para a gerao de uma onda quadrada desencadeada pela funo tone(). No tem efeito se
nenhum comando tone() estiver sendo executado.
noTone (pino);
____________________________________________________________________________________
Pgina 52 de 134 Manual Kit Arduino Iniciante
16 Funes de tempo
As funes de tempo so funes que nos permitem realizar a contagem de tempo ou ainda
gerar atrasos ou paradas em na execuo de nosso programa.
- milis();
- micros();
- delay();
- delayMicroseconds();
16.1 - milis()
variavel = milis();
16.3 - micros ()
variavel = micros();
16.4 - delay ()
Pausa o programa por uma quantidade de tempo (em milissegundos) especificado dentro do
parnteses.
delay(tempo em milisegundos);
____________________________________________________________________________________
Pgina 53 de 134 Manual Kit Arduino Iniciante
16.5 - delayMicroseconds ()
delayMicroseconds(tempo em microsegundos);
____________________________________________________________________________________
Pgina 54 de 134 Manual Kit Arduino Iniciante
17 Exemplo de um cdigo fonte
O software IDE de programao do Arduino possui uma srie de exemplos prontos para que
possamos utilizar como referncia. Para te proporcionar um primeiro contato com um cdigo fonte e
realizarmos a leitura e entendimento do mesmo, vamos utilizar um dos exemplos prontos do prprio
software do Arduino, o exemplo BLINK que serve para piscar o LED da placa Arduino.
Para acess-lo clique em FILE > EXAMPLES > 1.BASICS > BLINK como mostrado na figura abaixo:
____________________________________________________________________________________
Pgina 55 de 134 Manual Kit Arduino Iniciante
Cdigo Fonte
/*
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://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);
}
Separando o que comentrio do que comando, podemos verificar que o cdigo do BLINK
est escrito em apenas 9 linhas. Vamos agora te acompanhar na leitura e entendimento do cdigo
BLINK linha a linha explicando cada linha do cdigo, para que voc possa j treinar e fixar alguns dos
comandos bsicos antes de iniciar seu primeiro projeto.
____________________________________________________________________________________
Pgina 56 de 134 Manual Kit Arduino Iniciante
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
void setup() { : Declarao que ir comear o Setup do programa. Sempre aberto com uma {
e fechada, no fim da declarao, por uma }.
Como neste caso queremos acender um led, a corrente eltrica ir sair do pino e no entrar.
Logo, setamos o ledPin (que tinha o valor 13, por causa do pino digital 13) como sada.
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
}
void loop() { : De modo anlogo ao setup, com o comando ao lado dizemos que ir comear o
loop do programa, ou seja, o programa principal que ficar rodando por tempo indeterminado.
Tambm aberto com uma { e fechado com uma }.
delay(1000); : Delay (atraso/tempo) mais uma funo pronta de seu arduino. O nmero que
for inserido entre os parntesis ser o valor, em milissegundos, que o Arduino ir esperar para seguir
para a prxima instruo. No caso, temos um delay de 1000 milissegundos, ou seja, uma espera de 1
segundo para executar a prxima instruo.
____________________________________________________________________________________
Pgina 57 de 134 Manual Kit Arduino Iniciante
digitalWrite(13, LOW);
delay(1000); : Estes dois comandos so similares aos dois vistos acima, com a
nica diferena que a escrita digital escrever um 0 no pino do led, ou seja, um nvel lgico baixo: o led
apagar e o Arduino espera 1 segundo para fazer a prxima instruo que, no caso, volta a ser o
digitalWrite(13, HIGH);.
Agora que entendemos o cdigo, podemos compilar o mesmo e fazer o upload para nossa
placa Arduino para v-lo em execuo.
Conecte sua placa Arduino ao seu computador atravs de uma porta USB.
Agora compile o programa clicando no boto Verify (Verificar) do ambiente de
desenvolvimento, para ver se no existe nenhum erro de cdigo.
O boto o seguinte:
____________________________________________________________________________________
Pgina 58 de 134 Manual Kit Arduino Iniciante
Espere ento o upload ser completado e pronto. Voc dever ver o led da placa piscando com
intervalos de 1 segundo.
Vista toda esta explicao, agora sim podemos comear a estudar a primeira experincia deste
material.
____________________________________________________________________________________
Pgina 59 de 134 Manual Kit Arduino Iniciante
18 Projetos
Neste primeiro projeto iremos basicamente fazer um LED piscar mas dessa vez, no entanto,
voc conectar um LED a um dos pinos digitais em vez de utilizar o LED 13, soldado na placa.
Protoboard
LED
Resistor 220R
Jumpers
____________________________________________________________________________________
Pgina 60 de 134 Manual Kit Arduino Iniciante
18.1.2 Montando o circuito
O circuito divisor de tenso (ou tambm conhecido como divisor de potencial) na maioria dos
casos montado com um ou mais resistores, mas pode tambm ser um potencimetro. Utilizando
dois resistores e passando a voltagem por apenas um deles, voc pode reduzir a voltagem que entra
no circuito.
Em nosso caso, vamos analisar um divisor de tenso padro, utilizando um resistor e um LED
para ver como isso funciona. Abaixo encontra-se uma ilustrao de como funciona um divisor de
tenso.
____________________________________________________________________________________
Pgina 61 de 134 Manual Kit Arduino Iniciante
Agora para descobrirmos o valor do resistor que devemos utilizar para atender a nossa
necessidade, basta aplicarmos a formula a seguir:
()
=
()
3 ( )
=
0,02 ( = 20 0,02)
= 150
Em nossos clculos encontramos que o resistor deve ser de 150R para que o LED opere com
sua potncia mxima. Mas evitar que tivssemos muitos valores diferentes, um para cada projeto
podendo ocasionar dvidas e possveis confuses, utilizamos apenas trs valores, e para nosso
projetinho vamos utilizar o valor mais prximo que no caso o de 220R. Essa alterao no valor do
resistor no mudar o funcionamento de nosso projeto, isso apenas far com que o LED acenda um
pouco mais fraco (quase imperceptvel) j que a corrente do circuito ser menor, pois como j foi dito,
o resistor oferece resistncia passagem da corrente eltrica, e se aumentamos o valor do resistor,
menos corrente circular pelo circuito.
Vejamos ento quanto de corrente circular pelo circuito. Para isso usamos essa outra
frmula:
()
=
()
3 ( )
=
220 ( )
= 0,01363 13,63
Essa corrente de 13,63 mA suficiente para que nosso LED se acenda perfeitamente. Agora
que voc j sabe o porque da necessidade do resistor para ligar o LED, tente criar outros divisores de
tenso com os resistores que voc possui em seu kit para se familiarizar com esta ferramenta, pois ela
ser de extrema importncia para que voc crie seus prprios projetos.
____________________________________________________________________________________
Pgina 62 de 134 Manual Kit Arduino Iniciante
Vamos agora montagem do nosso circuito, primeiro, certifique-se de que seu Arduino esteja
desligado, desconectando-o do cabo USB. Agora, pegue seu protoboard, o LED, o resistor e os fios, e
conecte tudo como mostra a figura abaixo.
Importante:
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 63 de 134 Manual Kit Arduino Iniciante
18.1.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 1 - LED Piscante
==========================================================================*/
int ledPin = 10; //LED conectado ao pino 10
void setup()
{
pinMode(ledPin, OUTPUT); //Pino 10 do arduino como sada
}
void loop()
{
digitalWrite(ledPin, HIGH); //Liga o pino 10 e acende o LED
delay(1000); //Aguarda 1000ms (ou 1 segundo)
digitalWrite(ledPin, LOW); //Desliga o pino 10 e acende o LED
delay(1000); //Aguarda 1000ms (ou 1 segundo)
}
Pressione o boto Verify/Compile no topo do IDE para certificar-se de que no h erros em seu
cdigo. Se no houver erros, clique no boto Upload para fazer o upload do cdigo na sua placa
Arduino. Caso tudo tenha sido feito corretamente, agora voc dever ver o LED no protoboard,
acendendo e apagando em intervalos de um segundo.
____________________________________________________________________________________
Pgina 64 de 134 Manual Kit Arduino Iniciante
18.2 Projeto 2 ( Acendendo o LED com um boto )
Neste projeto iremos acender um LED atravs do comando por um boto, ao pressionar o
boto o LED acende e se soltar o boto o LED se apaga.
Protoboard
LED
Resistor 220R
Resistor 10K
Jumpers
Chave Tctil
____________________________________________________________________________________
Pgina 65 de 134 Manual Kit Arduino Iniciante
18.2.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 66 de 134 Manual Kit Arduino Iniciante
18.2.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 2 - Acendendo o LED com um boto
==========================================================================*/
void setup()
{
pinMode(ledPin, OUTPUT); //Pino 10 do arduino como sada
pinMode(botao, INPUT); //Pino com boto ser entrada
}
void loop()
{
estado_do_botao = digitalRead(botao); //Armazena o Estado do boto.
//Se sim grava LOW (0) na varivel
//Se no grava HIGH (1) na varivel
if (estado_do_botao == LOW) //Se boto estiver pressionado (LOW)
{
digitalWrite(ledPin, HIGH); //Acende o led conectado ao pino 13
}
else //se no estiver pressionado
{
digitalWrite(ledPin, LOW); //Apaga o led conectado ao pino 13
}
}
Agora faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
agora se voc pressionar o boto o LED no protoboard dever acender, e se soltar o boto o LED
dever se apagar.
____________________________________________________________________________________
Pgina 67 de 134 Manual Kit Arduino Iniciante
18.3 Projeto 3 ( Semforo )
Neste projeto faremos um semforo que ir do verde ao vermelho, passando pelo amarelo, e
que retornar depois de um intervalo de tempo igualzinho aos que vemos pelas ruas. Este projeto
poderia ser utilizado para criar um conjunto funcional de semforos para uma maquete ou para uma
pequena cidade de brinquedo. Primeiro, entretanto, crie o projeto conforme mostrado a seguir, e faa
as alteraes apenas depois de saber como tudo funciona.
Protoboard
LED Vermelho
LED Amarelo
LED Verde
3 Resistores 220R
Jumpers
____________________________________________________________________________________
Pgina 68 de 134 Manual Kit Arduino Iniciante
18.3.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 69 de 134 Manual Kit Arduino Iniciante
18.3.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 3 - Semforo
==========================================================================*/
void setup()
{
pinMode(Led_Vermelho, OUTPUT); //Pino 7 do arduino como sada
pinMode(Led_Amarelo, OUTPUT); //Pino 4 do arduino como sada
pinMode(Led_Verde, OUTPUT); //Pino 1 do arduino como sada
}
void loop()
{
digitalWrite(Led_Vermelho, HIGH); //Acende o led vermelho
delay(4000); //permanece 4s com o led vermelho aceso
digitalWrite(Led_Vermelho, LOW); //Apaga o led vermelho
Faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
agora se voc ver o seu semforo em funcionamento, ficando 4 segundos fechado no vermelho, 4
segundos aberto no verde e na transio de aberto para fechado, passar pelo amarelo sinalizando
ateno durante 2 segundos.
____________________________________________________________________________________
Pgina 70 de 134 Manual Kit Arduino Iniciante
18.4 Projeto 4 ( Controlando o LED RGB )
Neste projeto vamos controlar um led RGB atravs dos pinos PWM do Arduino. Como j
mostrado no captulo 1.4, o led RGB um tipo de led, com quatro terminais, capaz de emitir diversos
tipos de cores diferentes. Suas cores bsicas so vermelho, verde e azul, e a mistura dessas cores pode
formar diversas outras cores. Ento vamos fazer com que o LED RGB emita cada uma de suas cores
bsicas e cores resultantes da mistura das cores bsicas.
Protoboard
LED RGB
3 Resistores 220R
Jumpers
Primeiro vamos entender como ligar o LED RGB. Note que ele possui quatro terminais e que
cada terminal tem um tamanho diferente, isso para que possamos identificar o terminal referente a
cada cor do LED conforme mostrado a seguir:
____________________________________________________________________________________
Pgina 71 de 134 Manual Kit Arduino Iniciante
Agora, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 72 de 134 Manual Kit Arduino Iniciante
18.4.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 4 - Semforo
==========================================================================*/
void setup()
{
pinMode(Vermelho, OUTPUT); //Pino 11 do arduino como sada
pinMode(Azul, OUTPUT); //Pino 10 do arduino como sada
pinMode(Verde, OUTPUT); //Pino 9 do arduino como sada
}
void loop()
{
analogWrite(Vermelho, 255); //Apaga o led vermelho
analogWrite(Azul, 255); //Apaga o led azul
analogWrite(Verde, 255); //Apaga o led verde
____________________________________________________________________________________
Pgina 73 de 134 Manual Kit Arduino Iniciante
for(int i=0; i<255; i++)
{
analogWrite(Vermelho, i); //Neste ponto com azul e vermelho acesos, o
analogWrite(Azul, 0); //vermelho se apaga lentamente e fica apenas
analogWrite(Verde, 255); //o azul aceso
delay(tempo);
}
for(int i=255; i>0; i--)
{
analogWrite(Vermelho, 255); //Agora com apenas o azul aceso, o verde se
analogWrite(Azul, 0); //acende lentamente ficando novamente o verde
analogWrite(Verde, i); //e o azul acesos
delay(tempo);
}
for(int i=255; i>0; i--)
{
analogWrite(Vermelho, i); //E por fim o vermelho se acende lentamente
analogWrite(Azul, 0); //juntamente com o azul e o verde voltando
analogWrite(Verde, 0); //acender branco novamente iniciando novamente
delay(tempo); //o ciclo
}
}
Faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
agora se voc ver o led RGB se acendendo primeiramente branco e alternando sua cor lentamente
entre o branco inicial, verde, vermelho, azul e combinaes destas cores.
____________________________________________________________________________________
Pgina 74 de 134 Manual Kit Arduino Iniciante
18.5 Projeto 5 ( Detector de objetos )
Protoboard
Resistor 10K
Resistor 300R
Jumpers
____________________________________________________________________________________
Pgina 75 de 134 Manual Kit Arduino Iniciante
18.5.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 76 de 134 Manual Kit Arduino Iniciante
18.5.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 5 Detector de Objetos
==========================================================================*/
void setup()
{
pinMode(Sensor, INPUT); //Pino 7 do arduino como sada
Serial.begin(9600); //Indica ao Arduino que vamos enviar e receber dados
//com o mundo externo atravs da porta USB
}
void loop()
{
Objeto = digitalRead(Sensor); //Verifica sinal do sensor
Nesta etapa, para testar seu projeto, voc deve utilizar uma nova ferramenta para verificar o
funcionamento do seu projeto, o monitor serial.
Vamos primeiramente entender o que , e como funciona o monitor serial para ento darmos
sequncia em nossos testes.
O monitor serial uma ferramenta muito til, com ele voc pode exibir na tela do seu PC os
dados seriais enviados de seu Arduino (USB ou placa serial). Com ele voc pode ainda enviar dados de
volta ao Arduino.
Clique no boto Serial Monitor no canto superior direito do software IDE do Arduino conforme
imagem a seguir.
____________________________________________________________________________________
Pgina 77 de 134 Manual Kit Arduino Iniciante
Ao clicar abrir uma janela igual a janela mostrada na figura a seguir.
No topo, h uma caixa de texto em branco, para que voc digite o texto a ser enviado de volta
para o Arduino, e um boto Send, para enviar o texto. Note que o monitor serial no pode receber
nenhum dado serial, a menos que voc tenha preparado o cdigo em seu sketch para que isso ocorra.
Da mesma forma, o Arduino no receber nenhum dado, a menos que voc o tenha codificado para
tanto. Por fim, a rea central da janela o local em que seus dados seriais sero exibidos.
Para iniciar o monitor serial, pressione o boto Serial Monitor. Para interromp-lo, pressione o
boto Stop. Em um Mac ou Linux, a placa do Arduino reiniciar sozinha (reexecutando o cdigo desde
o incio), quando voc clicar no boto Serial Monitor.
Agora que voc j sabe como utilizar o monitor serial, faa o upload do cdigo em sua placa
Arduino, abra o serial monitor e aproxime objetos do sensor at que o objeto seja detectado. Para
verificar se foi ou no detectado, veja no serial monitor se o status muda de " Nenhum objeto
presente " para "Objeto detectado".
____________________________________________________________________________________
Pgina 78 de 134 Manual Kit Arduino Iniciante
18.6 Projeto 6 ( Piano )
Neste projeto, vamos montar um pequeno piano de 4 teclas com indicao visual de qual
teclas est sendo pressionada. Cada um dos 4 botes tocar uma nota musical diferente. Para emisso
do sinal sonoro do nosso piano usaremos o Buzzer. Um Buzzer conforme j descrito anteriormente,
um pequeno alto-falante que obviamente no consegue tocar msicas, mas consegue emitir sinais
sonoros similares aos de alarmes e sirenes. A maioria dos alarmes de pequenos equipamentos
eletrnicos so feitos com buzzers. Ele funciona da seguinte maneira: quando alimentado por uma
fonte, componentes metlicos internos vibram da frequncia da fonte, produzindo assim um som.
Protoboard
LED Vermelho
LED Amarelo
LED Verde
LED Azul
4 Resistores 10K
4 Resistores 220R
Buzzer
Jumpers
____________________________________________________________________________________
Pgina 79 de 134 Manual Kit Arduino Iniciante
18.6.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Importante:
! O Buzzer tem polaridade, o que significa que s pode ser ligado de uma
maneira. Se voc retirar o adesivo superior do buzzzer poder ver um sinal
de positivo (+). Este sinal mostra onde est o pino positivo do componente.
Sempre ligue este pino a uma sada digital do Arduino e o outro ao GND.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 80 de 134 Manual Kit Arduino Iniciante
18.6.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 6 - Piano
==========================================================================*/
void setup()
{
pinMode(Led_Vermelho, OUTPUT); //Pino 7 do arduino como sada
pinMode(Led_Amarelo, OUTPUT); //Pino 6 do arduino como sada
pinMode(Led_Verde, OUTPUT); //Pino 5 do arduino como sada
pinMode(Led_Azul, OUTPUT); //Pino 4 do arduino como sada
pinMode(Botao_1, INPUT); //Pino 3 do arduino como entrada
pinMode(Botao_2, INPUT); //Pino 2 do arduino como entrada
pinMode(Botao_3, INPUT); //Pino 1 do arduino como entrada
pinMode(Botao_4, INPUT); //Pino 0 do arduino como entrada
pinMode(Buzzer, OUTPUT); //Pino 11 do arduino como sada
}
void loop()
{
Estado_Botao_1 = digitalRead(Botao_1); //L o estado do boto 1
Estado_Botao_2 = digitalRead(Botao_2); //L o estado do boto 2
Estado_Botao_3 = digitalRead(Botao_3); //L o estado do boto 3
Estado_Botao_4 = digitalRead(Botao_4); //L o estado do boto 4
____________________________________________________________________________________
Pgina 81 de 134 Manual Kit Arduino Iniciante
/*CONTINUAO*/
Faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
agora se voc ver o seu semforo em funcionamento, ficando 4 segundos fechado no vermelho, 4
segundos aberto no verde e na transio de aberto para fechado, passar pelo amarelo sinalizando
ateno durante 2 segundos.
Veja que neste projeto do piano o cdigo ficou bem maior que os cdigos que j
havamos visto at aqui, mas no se assuste, analise com calma, tente entender o
que fizemos e veja que nada muito complexo aconteceu. Apenas tivemos uma
mesma estrutura repetida 4 vezes em funo de termos 4 teclas e 4 leds.
____________________________________________________________________________________
Pgina 82 de 134 Manual Kit Arduino Iniciante
18.7 Projeto 7 ( Medindo Temperatura com Sensor NTC )
Este projeto bem simples porm ser de grande valor para seu aprendizado, pois ele ser o
pontap inicial para seu aprendizado sobre projetos de aquisio de dados do mundo externo e
automao com o Arduino. Neste primeiro passo vamos apenas entender como realizar a leitura de
temperatura atravs do sensor NTC.
Protoboard
Resistor 10K
Jumpers
____________________________________________________________________________________
Pgina 83 de 134 Manual Kit Arduino Iniciante
18.7.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 84 de 134 Manual Kit Arduino Iniciante
18.7.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 7 Medindo Temperatura com Sensor NTC
==========================================================================*/
void setup()
{
Serial.begin(9600); //Indica ao Arduino que vamos enviar dados
// atravs da porta USB
}
void loop()
{
Para testar seu projeto voc deve fazer o upload do cdigo em sua placa Arduino e
abrir o serial monitor. Ao fazer isso, voc dever ver algo similar ao mostrado na imagem
abaixo.
____________________________________________________________________________________
Pgina 85 de 134 Manual Kit Arduino Iniciante
importante ressaltar que, como os componentes eletrnicos no so totalmente iguais e que
a temperatura ambiente em cada ponto do mundo diferente, voc no necessariamente vai ler
valores como 606. Esta a temperatura ambiente lida pelo sensor no local onde este material foi
desenvolvido. Para fazer um teste com o sensor de temperatura, podemos utilizar um ferro de solda,
ou um ferro de passar roupas, ou um secador de cabelo (qualquer coisa que esquente rapidamente)
ou tambm seus dedos, visto que a temperatura do seu corpo maior do que a temperatura
ambiente. Quando aproximamos um ferro de solda ao sensor de temperatura, fazemos leituras
diferentes.
Pronto, agora que voc j sabe como realizar a leitura dos valores do sensor, podemos integrar
este projeto a mais componentes para realizar algo mais interessante como por exemplo um alarme
de temperatura ou at mesmo um sistema para controlar a temperatura de um determinado
ambiente.
____________________________________________________________________________________
Pgina 86 de 134 Manual Kit Arduino Iniciante
18.8 Projeto 8 ( Alarme de temperatura )
Nesta etapa vamos integrar o projeto anterior ao Buzzer para criarmos um alarme de
temperatura, que vamos programar para emitir um sinal sonoro de alerta quando a temperatura
ultrapassar um determinado valor.
Protoboard
Resistor 10K
Buzzer
Jumpers
____________________________________________________________________________________
Pgina 87 de 134 Manual Kit Arduino Iniciante
18.8.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 88 de 134 Manual Kit Arduino Iniciante
18.8.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 8 Alarme de Temperatura
==========================================================================*/
void setup()
{
pinMode(Buzzer, OUTPUT); //Pino 10 do arduino como sada
}
void loop()
{
else
{
digitalWrite(Buzzer, LOW); // Caso contrrio desliga o alarme
}
}
Para testar seu projeto voc deve fazer o upload do cdigo e simular alteraes de
temperatura de forma similar experincia anterior, com um ferro de solda, ferro de passar,
secador de cabelos ou seus dedos.
Quando a temperatura ultrapassar o valor pr-definido por voc, o alarme soar e
quando ela baixar o alarme desligar. Este valor pr-definido, voc deve encontrar de acordo
com seu ambiente e as tolerncias de seus componentes, para isso voc deve aumentar ou
diminuir este valor conforme mostrado abaixo.
Quanto mais voc aumentar esse valor mais alta ter de ser a temperatura para que o
alarme toque, ento faa alteraes e descarregue o cdigo at encontrar o melhor ajuste.
Pronto, agora que j sabe como realizar uma tarefa de acordo com uma variao do
sensor de temperatura, voc pode construir projetos para diversas outras aplicaes, como
por exemplo um controlador de temperatura. Para isso basta substituir o buzzer por um
ventilador, a quando a temperatura subir de mais, ao invs de tocar um alarme, um ventilador
ligar para baixar a temperatura at que esta se estabilize e o ventilador se desligue e assim
sucessivamente.
____________________________________________________________________________________
Pgina 89 de 134 Manual Kit Arduino Iniciante
18.9 Projeto 9 ( Medindo Temperatura com LM35 )
Neste projeto vamos aprender a utilizar o LM35 que como j mostrado um sensor de
temperatura como o NTC que j estudamos, mas que mas preciso e j nos fornece um sinal de
medio na escala Celsius o que facilita bastante na criao do cdigo fonte .
Protoboard
Jumpers
____________________________________________________________________________________
Pgina 90 de 134 Manual Kit Arduino Iniciante
18.9.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Importante:
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 91 de 134 Manual Kit Arduino Iniciante
18.9.3 Cdigo fonte
Neste ponto de nossos estudos, veremos um pouco mais de teoria sobre o LM35 e sobre o
conversor analgico digital do Arduino para ento entendermos como o cdigo fonte foi criado.
O conversor AD do Arduino possui resoluo de 10 bits, isso significa que ele possui uma escala
de 2^10 valores, ou seja vai de 0 a 1023. Como nossa placa Arduino opera com 5V e nosso conversor
AD possui escala de 0 a 1023, podemos concluir que quando temos 0V na entrada analgica teremos o
valor 0 na varivel de leitura e quando tivermos 5V na entrada analgica teremos o valor 1023 na
varivel de leitura. Ento se dividirmos 5V por 1023 podemos encontrar quantos volts equivale cada
incremento de 1bit, veja:
5
= = 0.004887585533
1023
0.005887585533
=
0.01
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 9 Medindo Temperatura com LM35
==========================================================================*/
void setup()
{
Serial.begin(9600); //Indica que vamos enviar dados pela porta USB
}
void loop()
{
Valor_Sensor = analogRead(Pino_LM35); //L sinal do sensor
Temperatura = (Valor_Sensor * 0.004887585533)/0.01; //Converte valor
Serial.print ("Temperatura = "); //Escreve mensagem no monitor
Serial.print (Temperatura); //Escreve valor do sensor no monitor
Serial.println (" graus"); //Escreve mensagem no monitor
delay (1000); //Espera 1 segundo para mostrar novo valor
}
____________________________________________________________________________________
Pgina 92 de 134 Manual Kit Arduino Iniciante
Para testar seu projeto voc deve fazer o upload do cdigo em sua placa Arduino e abrir o
serial monitor. Ao fazer isso, voc dever ver algo similar ao mostrado na imagem abaixo.
Lembre-se que a porta COM no necessariamente 3, como est no topo da imagem acima.
cada computador tem sua numerao de portas.
____________________________________________________________________________________
Pgina 93 de 134 Manual Kit Arduino Iniciante
18.10 Projeto 10 ( Controle de iluminao automatizado )
Agora vamos aprender sobre um novo componente, o sensor de luminosidade LDR. Como j
vimos, este sensor varia sua resistncia de acordo com a incidncia de luz no mesmo. Sendo assim,
podemos verificar a luminosidade do ambiente e realizarmos diferentes tarefas de acordo com o valor
lido, da mesma forma que j fizemos com o sensor de temperatura.
Protoboard
LDR
LED
Resistor 220R
Resistor 10K
Jumpers
____________________________________________________________________________________
Pgina 94 de 134 Manual Kit Arduino Iniciante
18.10.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 95 de 134 Manual Kit Arduino Iniciante
18.10.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 10 - Controle de iluminao automatizado
==========================================================================*/
void setup()
{
pinMode(Pino_Led, OUTPUT); //Pino 2 do arduino como sada
Serial.begin(9600); //Indica que vamos enviar dados pela porta USB
}
void loop()
{
Luminosidade = analogRead(LDR); //verifica valor do LDR
Serial.print("Valor lido pelo LDR = "); //Escreve mensagem no monitor
Serial.println(Luminosidade); // Escreve valor do LDR no monitor
Agora faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
agora se voc tampar o LDR, o LED se acender, e se voc deixar que a luz incida sobre o LDR o LED se
apagar.
Como os componentes deste projeto podem sofrer variaes de valores entre eles, foram
inseridas no cdigo fonte as instrues de escrita dos valores no monitor. Desta forma, voc pode abrir
o monitor e verificar o valor que est sendo lido com luz e o valor que est sendo lido com luz, e assim
ajustar o ponto exato que voc quer que o sistema atue.
____________________________________________________________________________________
Pgina 96 de 134 Manual Kit Arduino Iniciante
No meu caso com luz o LDR apresenta valores entre 600 e 650 e sem luz o LDR apresenta
valores entre 150 e 200 conforme mostrado na figura a seguir.
Com Luz
Sem Luz
Ento para o meu caso o valor 400 est funcional, caso voc obtenha valores diferentes, ajuste
o valor de atuao conforme mostrado a seguir para que seu projeto funcione adequadamente.
____________________________________________________________________________________
Pgina 97 de 134 Manual Kit Arduino Iniciante
18.11 Projeto 11 ( Display BCD de 7 segmentos )
Neste experimento vamos aprender como funciona o display BCD de 7 segmentos. Este
componente bastante utilizado em relgios indicadores de temperatura entre outras aplicaes.
Este tipo de display nada mais que 8 leds dentro de um encapsulamento dispostos no
formato de um nmero 8 e um ponto conforme ilustrao a seguir.
Em seu kit voc possui um display BCD do tipo catodo comum, isso quer dizer que os LEDs
esto com os catodos conectados, dessa forma basta conectar o negativo ou GND ao pino catodo
comum e conectar os segmentos que deseja acender ao positivo de maneira a formar um nmero ou
letra.
Importante:
____________________________________________________________________________________
Pgina 98 de 134 Manual Kit Arduino Iniciante
Posio dos pinos do display BCD de 7 segmentos
Protoboard
Display BCD
Resistor 220R
Jumpers
____________________________________________________________________________________
Pgina 99 de 134 Manual Kit Arduino Iniciante
18.11.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 100 de 134 Manual Kit Arduino Iniciante
18.11.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 11 - Display BCD de 7 segmentos
==========================================================================*/
void setup()
{
pinMode(Pino_A, OUTPUT); //Pino 9 do arduino como sada
pinMode(Pino_B, OUTPUT); //Pino 8 do arduino como sada
pinMode(Pino_C, OUTPUT); //Pino 5 do arduino como sada
pinMode(Pino_D, OUTPUT); //Pino 6 do arduino como sada
pinMode(Pino_E, OUTPUT); //Pino 7 do arduino como sada
pinMode(Pino_F, OUTPUT); //Pino 10 do arduino como sada
pinMode(Pino_G, OUTPUT); //Pino 11 do arduino como sada
pinMode(Pino_PT, OUTPUT); //Pino 4 do arduino como sada
}
void loop()
{
digitalWrite(Pino_A, HIGH); //Acende segmento A
digitalWrite(Pino_B, HIGH); //Acende segmento B
digitalWrite(Pino_C, HIGH); //Acende segmento C
digitalWrite(Pino_D, HIGH); //Acende segmento D
digitalWrite(Pino_E, HIGH); //Acende segmento E
digitalWrite(Pino_F, HIGH); //Acende segmento F
digitalWrite(Pino_G, LOW); //Apaga segmento G
delay (1000); //Aguarda 1 segundo para exibir novo nmero
____________________________________________________________________________________
Pgina 101 de 134 Manual Kit Arduino Iniciante
/* CONTINUAO */
____________________________________________________________________________________
Pgina 102 de 134 Manual Kit Arduino Iniciante
Agora faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
agora voc ver o display indicar do nmero 0 ao 9 alterando em intervalo de 1 segundo.
Note que o cdigo fonte deste projeto ficou relativamente grande, mas note que mais uma vez
fizemos 10 cpias de uma mesma estrutura de cdigo mudando apenas os segmentos do display que
queramos acender afim de formar os algarismos em sequncia.
O cdigo funcionou perfeitamente, mas para realizar este projeto utilizamos oito pinos da
nossa placa Arduino. Isso no problema quando temos oito pinos disponveis para esta operao,
mas imagine que voc est realizando um projeto maior controlando, leds, buzzer, lendo sinais de
sensores entre outras coisas, talvez no sobrem o pinos disponveis para controlar o display. Neste
caso podemos utilizar um outro componente bastante interessante para diminuir a quantidade de
pinos necessrios para o controle do display de 8 para 4 pinos e ainda facilitar a escrita do cdigo
fonte. Este componente o circuito integrado 4511 (Conversor BCD para display de 7 segmentos).
Este circuito integrado converte um cdigo binrio para o display de 7 segmentos. A tabela a
seguir mostra os nmeros binrios correspondentes a cada dgito do display.
A partir da tabela acima podemos ento criar nosso cdigo fonte considerando que quando a
tabela indicar 0, o pino do Arduino est desligado, ou em nvel lgico 0 (utilizaremos para isso o
comando digitalWrite (Pino, LOW) ) e quando a tabela indicar 1, o pino do Arduino est
ligado, ou em nvel lgico 1 (utilizaremos para isso o comando digitalWrite (Pino, LOW) ).
Desta forma com apenas 4 pinos do nosso Arduino podemos controlar nosso display. Vamos
colocar isso em prtica no projeto a seguir.
____________________________________________________________________________________
Pgina 103 de 134 Manual Kit Arduino Iniciante
18.12 Projeto 12 ( Display BCD de 7 segmentos com 4511 )
Dando sequncia ao experimento anterior agora vamos montar o mesmo projeto montado
anteriormente, mas agora utilizando apenas 4 pinos digitais de nossa placa Arduino e enviando para o
display um cdigo binrio ao invs de controlar cada segmento de forma independente.
Protoboard
Display BCD
Resistor 220R
CI 4511
Jumpers
____________________________________________________________________________________
Pgina 104 de 134 Manual Kit Arduino Iniciante
18.12.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 105 de 134 Manual Kit Arduino Iniciante
18.12.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 12 - Display BCD de 7 segmentos com 4511
==========================================================================*/
void setup()
{
pinMode(Pino_D0, OUTPUT); //Pino 4 do arduino como sada
pinMode(Pino_D1, OUTPUT); //Pino 7 do arduino como sada
pinMode(Pino_D2, OUTPUT); //Pino 6 do arduino como sada
pinMode(Pino_D3, OUTPUT); //Pino 5 do arduino como sada
}
void loop()
{
____________________________________________________________________________________
Pgina 106 de 134 Manual Kit Arduino Iniciante
/* CONTINUAO */
Agora faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
agora voc ver o display indicar do nmero 0 ao 9 alterando em intervalo de 1 segundo.
Note que agora o cdigo fonte deste projeto ficou bem menor e ocupamos menos portas da
nossa placa Arduino.
Nesta configurao com o CI 4511, o ponto permanece apagado, caso voc queira acender o
segmento do ponto, necessrio que voc ligue-o a um pino da placa Arduino.
____________________________________________________________________________________
Pgina 107 de 134 Manual Kit Arduino Iniciante
18.13 Projeto 13 ( Escrevendo no display LCD 16x2 )
Nesta etapa do nosso aprendizado atravs deste manual, vamos aprender sobre o display de
cristal lquido 16x2. Este display bastante utilizado em equipamentos eletrnicos para possibilitar a
interao do usurio com o equipamento.
Este display conhecido com Display LCD 16x2 pois possui 16 colunas (posies para escrita de
caracteres ASCII) e duas linhas conforme figura a seguir.
Protoboard
Resistor 300R
Potencimetro 1K
Jumpers
____________________________________________________________________________________
Pgina 108 de 134 Manual Kit Arduino Iniciante
18.13.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 109 de 134 Manual Kit Arduino Iniciante
18.13.3 Cdigo fonte
O software IDE do Arduino possui uma imensa biblioteca de cdigos fonte de exemplo para
diversas aplicaes. Esta biblioteca muito interessante pois com ela podemos aprender como utilizar
um determinado componente. Para este projeto, utilizaremos um destes cdigos fonte de exemplo, o
Hello World. Desta forma veremos como utilizar este recurso.
Para abrir um cdigo exemplo, clique no menu: Arquivo > Exemplos > LiquidCrystal >
HelloWorld conforme imagem abaixo.
____________________________________________________________________________________
Pgina 110 de 134 Manual Kit Arduino Iniciante
Feito isso, o seguinte cdigo fonte se abrir na rea de trabalho do software IDE.
/*
LiquidCrystal Library - Hello World
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}
____________________________________________________________________________________
Pgina 111 de 134 Manual Kit Arduino Iniciante
Agora faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
agora voc ver o display indicar a mensagem hello world! na primeira linha e uma contagem de
segundos na segunda linha conforme imagem abaixo.
Utilizando este cdigo de exemplo voc j consegue escrever alguma coisa no seu display, caso
queira alterar a mensagem a ser escrita, basta alterar dentro do cdigo fonte, o que est entre aspas
na instruo lcd.print("hello, world!"); e descarregar o cdigo novamente em sua placa
Arduino.
Desta forma sua mensagem ser exibida no display de forma esttica, ou seja para alter-la
voc precisar alterar o cdigo fonte e descarregar novamente. No projeto a seguir vamos deixar esta
mensagem dinmica, ou seja, ela poder ser alterada em tempo real atravs do monitor serial.
____________________________________________________________________________________
Pgina 112 de 134 Manual Kit Arduino Iniciante
18.14 Projeto 14 ( Enviando mensagens para o LCD 16x2 )
Neste projeto vamos aprender a enviar uma mensagem para nossa placa Arduino atravs do
Serial Monitor e fazer com que esta mensagem seja exibida no display LCD 16x2.
Protoboard
Resistor 300R
Potencimetro 1K
Jumpers
____________________________________________________________________________________
Pgina 113 de 134 Manual Kit Arduino Iniciante
18.14.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 114 de 134 Manual Kit Arduino Iniciante
18.14.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
Projeto 14 Enviando mensagens para o LCD 16x2
==========================================================================*/
#include <LiquidCrystal.h>
void setup()
{
lcd.begin(16, 2);
void loop()
{
if (Serial.available())
{
delay(100);
lcd.clear();
while (Serial.available() > 0)
{
lcd.write(Serial.read());
}
}
}
Para testar seu projeto voc deve fazer o upload do cdigo em sua placa Arduino e abrir o
serial monitor.
____________________________________________________________________________________
Pgina 115 de 134 Manual Kit Arduino Iniciante
18.15 Projeto 15 ( Emitindo sons com o Piezo Buzzer )
Neste projeto vamos utilizar a funo de emissor de rudos do elemento piezoeltrico. Vamos
utilizar o piezobuzzer para ouvir a frequncia de 2Khz.
Elemento Piezoeltrico
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Importante:
! Tenha bastante ateno posio correta de ligar o piezo, pois o mesmo
possui polaridade, sendo o fio vermelho o positivo e o fio preto o negativo.
____________________________________________________________________________________
Pgina 116 de 134 Manual Kit Arduino Iniciante
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
Neste cdigo fonte vamos ver uma nova funo, a funo tone() do Arduino. Esta funo
muito til, pois permite gerar frequncias de maneira muito simples e rpida, e deixando ainda o
programa com boa performance de execuo.
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 15 Emitindo sons com o Piezo Buzzer
==========================================================================*/
void setup()
{
pinMode(Piezo, OUTPUT); // Pino 11 configurado como sada
}
void loop()
{
tone(Piezo, 2000) ; //Frequncia de 2kHz aplicada ao Buzzer
}
Para testar seu projeto voc deve fazer o upload do cdigo em sua placa Arduino e ento voc
dever ouvir um som agudo emitido pelo piezo buzzer.
____________________________________________________________________________________
Pgina 117 de 134 Manual Kit Arduino Iniciante
18.16 Projeto 16 ( Sensor de toque com o Piezo Buzzer )
Protoboard
Elemento Piezoeltrico
Resistor 10K
Jumpers
____________________________________________________________________________________
Pgina 118 de 134 Manual Kit Arduino Iniciante
18.16.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Importante:
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 119 de 134 Manual Kit Arduino Iniciante
18.16.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 16 Sensor de toque com o Piezo Buzzer
==========================================================================*/
int Piezo = A0; // Piezo conectado ao pino analgico 0
int sensibilidade = 30; // Valor de sensibilidade do toque
int pressao_toque = 0; // varivel para armazenar o valor lido no sensor
void setup()
{
Serial.begin(9600);
}
void loop()
{
pressao_toque = analogRead(Piezo); //l o valor analgico lido em (A0)
// e armazena na varivel pressao_toque
Para testar seu projeto voc deve fazer o upload do cdigo em sua placa Arduino e abrir o
serial monitor. Ento sempre que pressionar o piezo, voc dever ver a mensagem Toque detectado
conforme mostrado abaixo.
____________________________________________________________________________________
Pgina 120 de 134 Manual Kit Arduino Iniciante
18.17 Projeto 17 ( Controlando o Motor DC )
Neste experimento vamos aprender como funcionam dois novos componentes do nosso kit, o
motor DC e o Circuito integrado L239D. O experimento consiste em controlar o sentido e velocidade
do motor DC, o sentido de rotao ser controlado atravs de dois botes, onde ao apertar cada boto
individualmente vamos selecionar um sentido de rotao diferente, ao pressionar os dois botes ao
mesmo tempo o motor para, e a velocidade do motor ser controlada atravs de um potencimetro.
Protoboard
2 Chaves Tcteis
L293D
Potencimetro
Motor DC
Jumpers
____________________________________________________________________________________
Pgina 121 de 134 Manual Kit Arduino Iniciante
18.17.2 Montando o circuito
Exemplo: no kit existe um motor de 5V, isso quer dizer que com 5V ele vai rodar em sua rotao
mxima. Caso aplique 2,5V ele vai rodar com metade de sua rotao nominal.
Para variar a tenso no motor com o Arduino vamos utilizar o PWM. Esta sigla significa Pulse
Width Modulation, ou seja, modulao por largura de pulso. De uma maneira bem simples, esta
tcnica pode ser explicada como a mdia da tenso em um determinado espao de tempo. Veja nos
grficos a seguir:
Nos grficos acima a tenso est representada pela cor vermelha, note que a tenso fica em
zero durante todo o perodo, desta maneira a mdia ser 0.
____________________________________________________________________________________
Pgina 122 de 134 Manual Kit Arduino Iniciante
No segundo grfico, note que a tenso mantida em VCC por metade do perodo e depois
mantida em zero volts a outra metade, desta forma temos uma mdia de 50% do valor de tenso de
VCC (no caso do nosso Arduino que VCC representa 5V teremos uma tenso resultante de 2,5V).
E neste outro grfico a tenso mantida no mximo por todo o perodo, desta forma temos
uma mdia de 100% de VCC.
Vamos ver agora como isso ocorre em nossa placa Arduino. Imagine que nosso motor de 5 V est
sendo alimentado por uma tenso PWM que fica metade do perodo ligado e metade desligado, isso
vai resultar numa tenso de 2,5V, desta forma nosso motor ir funcionar na metade de sua velocidade,
pois a mdia ser 50% do valor de VCC. Veja isso exemplificado no grfico abaixo.
Agora que vimos o que o PWM, e para que serve, precisamos conhecer o circuito integrado
L298D. Este circuito integrado, bastante conhecido como ponte H, utilizado para facilitar o controle
do motor DC. Ele possui uma sada para conectar o motor, e trs entradas digitais para controle do
motor, as quais ligamos aos pinos do Arduino para realizar o controle do motor.
____________________________________________________________________________________
Pgina 123 de 134 Manual Kit Arduino Iniciante
Agora, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 124 de 134 Manual Kit Arduino Iniciante
18.17.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
PROJETO 17 - Controlando o Motor DC
==========================================================================*/
int botao1 = 8;
int botao2 = 9;
int horario = 5;
int anti_horario = 6;
int pwm = 3;
int potenciometro = 0;
int Velocidade = 0;
int valor_botao1 = 0;
int valor_botao2 = 0;
void setup()
{
pinMode(horario, OUTPUT);
pinMode(anti_horario, OUTPUT);
pinMode(pwm, OUTPUT);
pinMode(botao1, INPUT);
pinMode(botao2, INPUT);
Serial.begin(9600);
}
void loop()
{
valor_botao1 = digitalRead (botao1);
valor_botao2 = digitalRead (botao2);
Velocidade = analogRead(potenciometro) / 4;
____________________________________________________________________________________
Pgina 125 de 134 Manual Kit Arduino Iniciante
Agora faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
ao pressionar um dos botes, o motor deve rodar em um sentido e se variar o potencimetro, a
velocidade do motor deve variar proporcionalmente.
____________________________________________________________________________________
Pgina 126 de 134 Manual Kit Arduino Iniciante
18.18 Projeto 18 ( Movimentos com Micro Servo 9g )
Para voc iniciante em eletrnica que est tendo seu primeiro contato com este universo de
possibilidades, este sem dvida um projeto bastante empolgante e que desperta muitas ideias, pois
vamos controlar os movimentos do micro servo 9g com o Arduino. Junto ao micro servo 9g
acompanham 3 diferentes acoplamentos plsticos para poder acopl-lo facilmente ao seu projeto,
escolha um deles e instale no eixo do micro servo para facilitar a visualizao dos movimentos
realizados. Este projeto poderia ser utilizado para criar um pequeno rob, um brao eletrnico para
movimentao de objetos, entre outras muitas aplicaes. Mas como j dito anteriormente, crie o
projeto conforme mostrado a seguir, e faa as alteraes apenas depois de saber exatamente como
tudo funciona.
Micro Servo 9g
Jumpers
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 127 de 134 Manual Kit Arduino Iniciante
18.18.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
Projeto 18 Movimentos com Micro Servo 9g
==========================================================================*/
#include <Servo.h>
Servo myservo;
int posicao = 0;
int dado_novo = 0;
int dado_anterior = 0;
int pino_controle = 11;
void setup()
{
Serial.begin(9600);
Serial.println("Envie a posicao em graus de 0 a 180!");
myservo.attach(pino_controle);
myservo.write(posicao);
delay(500);
myservo.detach();
}
void loop()
{
if (Serial.available() > 0)
{
dado_novo = Serial.parseInt();
if(posicao < dado_novo)
{
myservo.attach(pino_controle);
for(posicao = dado_anterior; posicao <= dado_novo; posicao += 1)
{
myservo.write(posicao);
delay(5);
}
myservo.detach();
dado_anterior = dado_novo;
}
Serial.print("Posicao = ");
Serial.println(dado_novo, DEC);
}
}
____________________________________________________________________________________
Pgina 128 de 134 Manual Kit Arduino Iniciante
Faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente,
agora voc ver o seu servo movimentar sozinho para a posio inicial (0). Aps este movimento abra
o serial monitor e voc deve ter a seguinte mensagem:
Para controlar a posio absoluta do motor basta enviar a posio desejada (de 0 a 180) na
linha de comandos na parte superior do serial monitor. Ao enviarmos 180, o microservo deve realizar
uma meia volta (180) e voc deve receber a nova posio do motor como mostrado a seguir.
____________________________________________________________________________________
Pgina 129 de 134 Manual Kit Arduino Iniciante
18.19 Projeto 19 ( Automao com mdulo Rel )
O mdulo rel bastante utilizado em projetos de automao residencial para ligar e desligar
lmpadas, ventiladores entre outros aparelhos que funcionem com tenso alternada por exemplo
110V ou 220V. Ele funciona como um intrprete entre o Arduino que opera em 5V e o dispositivo ou
equipamento de 110V ou 220V.
Como trabalhar com estes valores de tenso alternada pode ser perigoso vamos simular o
funcionamento da lmpada 110V com o motor DC para exemplificar, onde o motor ligado significa a
lmpada acesa e o motor desligado significa lmpada apagada.
Mdulo Rel
Resistor 10K
Chave Tctil
Motor DC
Jumpers
____________________________________________________________________________________
Pgina 130 de 134 Manual Kit Arduino Iniciante
18.19.2 Montando o circuito
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue os componentes e conecte tudo como mostra a figura abaixo.
Quando voc estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e
conecte o cabo USB.
____________________________________________________________________________________
Pgina 131 de 134 Manual Kit Arduino Iniciante
18.19.3 Cdigo fonte
/*==========================================================================
Ba da Eletrnica Componentes Eletrnicos
www.baudaeletronica.com.br
Projeto 19 Automao com mdulo Rel
==========================================================================*/
Faa o upload do cdigo na sua placa Arduino e caso tudo tenha sido feito corretamente, ao
pressionar o boto, o motor liga e ao pressionar o boto novamente o motor desliga. Note que
possvel ouvir o rudo do funcionamento do mdulo rel ao fechar o contato e acionar o motor.
____________________________________________________________________________________
Pgina 132 de 134 Manual Kit Arduino Iniciante
19 Prximos passos
Chegamos ao fim de nossa jornada, agora convidamos voc a pensar em como melhorar estes
cdigos e a criar seus prprios cdigos e projetos.
____________________________________________________________________________________
Pgina 133 de 134 Manual Kit Arduino Iniciante
____________________________________________________________________________________
Pgina 134 de 134 Manual Kit Arduino Iniciante