Escolar Documentos
Profissional Documentos
Cultura Documentos
Arduino para Iniciantes PDF
Arduino para Iniciantes PDF
Autor:
Vinícius Neves de Figueiredo
Estudante de Engenharia Elétrica - UFF
O arduino
O Arduino UNO é um microcontrolador em que possui 13 entradas do tipo digital 5
do tipo analógica, sendo que 6 das digitais possuem o recurso de PWM, que conta também
com 2 pinos de comunicação RX/TX, e mais saídas de 3,3V e 5V, e alguns outros recursos
que serão comentados durante o curso.
Portas digitais
Portas Analógicas
Logo neste início foram falados muitos conceitos que são comuns dentro do mundo
da eletrônica, vamos começar definindo-os.
No gráfico acima em t ϵ [0,2] não existe corrente elétrica, logo o estado é igual a
LOW, enquanto que em t ϵ [2,4] está passando uma corrente de 1A.
Temos que , como ele só lê valor positivo, então o arduino irá te fornecer o
número 716.
A Protoboard (breadboard)
A protoboard é um ambiente de prototipagem que faz com que seja fácil a
montagem e a desmontagem de circuitos elétricos, não precisando assim de soldas, junções
e “gambiarras” no circuito.
O botão funciona de maneira muito simples, ele é na verdade uma chave que está sempre
aberta até que alguém o aperte. Quando isso acontece, ele vai deixar fluir corrente por
todas as suas quatro “pernas” permitindo, por exemplo, controlar se vai passar corrente em
um local ou não!
Exercícios Propostos
1. Ligue dois LEDs em série.
2. Ligue 4 LEDs em paralelo.
3. Porque não é possível ligar 3 LEDs em série?
4. Quantos LEDs são possíveis ligar em paralelo? (quantidade teórica)
Rápida;
Fácil Uso;
Portável (aceito em Linux, Windows, Mac e outras plataformas);
Aceita em chips e microcontroladores (Esse é o nosso caso!);
TIPO DE DADOS
Vamos Começar Falando sobre os tipos de dados, que nada mais são que as variáveis
ou onde você vai poder armazenar seus dados. Neste curso trataremos apenas de 4 tipos de
dados: um para tratar de números inteiros, dois para tratar de números não inteiros e um
para caracteres.
TIPO CHAR
O tipo ‘char’ é utilizado para armazenar um caractere, com ele podemos armazenar
símbolos do teclado segundo a tabela ASCII.
Segundo essa tabela, as duas linhas de código acima significam a mesma coisa.
PRIMEIRA PARTE:
A primeira parte é onde normalmente as variáveis são inicializadas, caso você
inicialize as variáveis neste ponto, você pode utiliza-las em qualquer parte do código
chamamos isso de variáveis globais.
Além das variáveis, é possível adicionar nesta parte do código as bibliotecas que
ajudarão a utilizar outros dispositivos e assim facilitará a nossa vida ao programar, este
assunto abordaremos mais a frente neste curso.
Obs.: Não é possível colocar qualquer tipo de comando para o Arduino executar
nesta parte de código.
QUAIS DISPOSITIVOS A SEGUIR É ENTRADAS (INPUT) E QUAIS SÃO DE SAÍDAS (OUTPUT) DE DADOS?
1. Um sensor de temperatura 5. Uma Tela LCD
2. Um botão 6. Uma tela LCD
3. Um LED 7. Um Ventilador
4. Um sensor de toque
Nesta parte de código, o Arduino passará lendo apenas uma única vez, então você
deve colocar o que acha interessante para este caso. Existe um exemplo clássico que é de
fácil observação dentro das nossas casas, muitos eletrodomésticos assim que são ligados na
energia elétrica dão um “beep” para indicar que estão funcionando corretamente ou
simplesmente para avisar que estão ligados.
TERCEIRA PARTE
Esta será a parte em que deverá conter o seu algoritmo, quando o arduino começa a
ler este trecho, ele entra em um loop infinito e não sai mais da parte do código até que a
energia seja cortada ou se o botão do RESET seja pressionado. Todos os micros
controladores fazem isso, por exemplo, a sua TV tem um sensor de infravermelho (módulo
bluetooth nas mais modernas) que fica esperando vir o sinal de seu controle remoto, na
verdade ele fica “rodando” um código em loop infinito de leitura do sensor infravermelho.
Obs.: Não se esqueça do “ponto e virgula” no final de cada comando que você der, isso vem
da herança da linguagem C++ que utiliza este caractere para dizer ao compilador do
programa que o comando acabou. Em C++ a sintaxe é do tipo Case Sensitivity, o que
significa que para ele a variável “int Arduino;” é diferente da variável “int arduino;” sendo
assim, tome bastante cuidado na sintaxe, pois é fácil confundir pinmode ao invés de
pinMode.
O DELAY
O comando de delay() é muito utilizado nos projetos do arduino, com ele podemos
dizer por quanto tempo tal ação será executada. Tudo o que ele faz é travar o processador
em um loop até que complete certa quantidade de tempo. O comando delay é contado em
milissegundos, ou seja, se eu quero parar o meu processador durante um tempo de meio
segundo, podemos escrever:
O DIGITALWRITE
O comando digitalWrite() serve para energizarmos os pinos digitais ou não. Esse
comando será o responsável pelo controle de quase tudo dentro do seu código, para que
funcione é necessário dizer em qual pino está querendo “escrever” e se deseja liga-lo ou
desliga-lo (HIGH ou LOW). Por exemplo:
Neste exemplo estamos dizendo para o arduino para ligar o pino onde está o led1.
Agora estamos dizendo ao arduino para desligar o pino onde está localizado o led1.
Lembre-se que a posição do resistor não é importante, ele pode estar à frente do LED ou
atrás do LED no circuito.
O código a seguir vai fazer com que o LED acenda e apague a cada meio segundo:
Exercícios Propostos
1. Faça 3 LEDs ligarem em sequência.
2. Faça uma simulação de um cruzamento de transito, utilizando os LEDs de cor
vermelha, verde e amarelo.
Então com isso podemos ter até 1024 opções para descrever valores de 0 até 5 Volts
com o arduino. Graças a isso podemos utilizar sensores no arduino, porque em geral tudo o
que um sensor faz é variar a sua resistência ou a sua impedância sobre a corrente.
Você pode pensar... Bom, se estamos falando que ele lê a tensão de 0 a 5 Volts, então
significa que o Arduino pode atuar como um voltímetro? E a resposta é SIM! As portas
analógicas podem sim atuar como voltímetro, com a restrição que ele precisa estar dentro
de um range (faixa) de tensão de até 5V, caso ultrapasse isso você pode queimar o arduino,
então tome cuidado antes de plugar o fio neste local.
Caso precise medir uma tensão em um circuito que tenha mais do que 5V deverá construir
um circuito divisor de tensão assunto importante dentro do “mundo” da eletricidade e de
fácil implementação e aplicação.
Já que estamos falando sobre a variação de tensão em um circuito, podemos falar sobre um
resistor que é capaz de variar a sua resistência, chamado de POTÊNCIOMETRO.
O que há por trás destes botões circulares é um potenciômetro, ele que faz com que você
tenha um ajuste fino sobre alguma coisa. O potenciômetro também é muito estudado junto
com a aula de física em eletricidade, o representamos desenhando da seguinte maneira:
Obs.: Daqui para frente, não será mais colocado o arduino dentro no desenho quando não
for utilizado alguma das portas de comunicação, podemos observar onde sendo utilizado o
5V ou o GND pela cor dos fios.
Exercícios Propostos
1. Por que colocamos a resistência junto ao potenciômetro se ele já é uma
resistência?
2. Desenhe o esquema do circuito acima.
MULTÍMETRO
O multímetro é um aparelho capaz de realizar medições em um circuito elétrico.
Neste curso ele será fundamental ter fluidez em seu manuseio, com ele iremos medir a
Tensão, Corrente e a resistência.
A PORTA ANALÓGICA
A porta analógica do arduino se comporta como um voltímetro, porém não temos a
presença de dois fios como é utilizado o voltímetro normalmente, isso ocorre porque o
arduino deixa a “perna” do negativo aterrada, ou seja, na referencia de 0. Se formos medir a
tensão do resistor R2 como mostrado na imagem acima ficaria:
analogRead(Porta);
PRÁTICA
Agora iremos controlar a velocidade que o LED irá piscar utilizando um potenciômetro, um
arduino, um resistor e alguns cabos.
OBS.: Colocamos o resistor em série com o potenciômetro apenas para evitar o curto circuito caso giremos o
cursor até a resistência zero.
PROGRAMANDO
Observações:
Neste código foram utilizadas constantes para descrever o led e o pot, logo não é possível
reescrever estas variáveis durante o código.
if(condição)
{
...
}
else
{
...
}
No caso de uma condição determinada (não dual), é possível suprimir o else e selecionar
apenas um caso.
OPERADORES
Para fazer o controle das condições que queremos impor, devemos utilizar os operadores, a
seguir é encontrada uma lista de operadores que podemos utilizar:
Operador Função
== Igual à
!= Diferente de
> Maior que
< Menor que
>= Maior ou igual que
<= Menor ou igual que
% Resto da divisão
|| Or
&& And
Os comandos ‘or’ e o ‘and’ fazem com que seja possível a sobre carga do comando if, ou
seja, com ele podemos testar mais de uma condição. Por exemplo:
No primeiro exemplo, ele irá assumir como verdade se qualquer um dos casos der
verdadeiro. No segundo, ele irá assumir como verdade se e somente se os dois casos forem
verdadeiros.
PRÁTICA
Neste exemplo prático, vamos detectar se o potenciômetro está tendendo para a esquerda
ou para a direita. Tudo o que iremos fazer é ler a tensão em cima de um potenciômetro com
a porta analógica pegando o número 1023 (5V) e dividir por 2, ou seja, 511 (2,5V), se for
maior do que 511 o LED ‘D1’ irá acender, caso contrário o LED ‘D2’ irá acender.
Obs.: tome cuidado para não deixar o potenciômetro chegar à resistência igual a zero.
Repare que não é preciso dizer que o caso contrário da condição é <= 511, ele já subentende
isso.
O Piezoelétrico
O Piezoelétrico é um dos mais interessantes componentes elétricos que podemos
encontrar no mercado, suas aplicações são praticamente infinitas, podemos encontra-los
em sensores de toque, alarmes, caixa de som, ultrassom hospitalar, fones de ouvido, dentre
outros.
PRÁTICA
O funcionamento do Buzzer é muito simples, basta aplicar uma corrente em uma
determinada frequência em seus terminais que ele começa a emitir sons. A resistência
colocada em série com ele fará controlar a potência do dispositivo.
OBS.: Tome cuidado com o lado positivo e negativo do buzzer, a perna com maior comprimento é o polo
positivo.
PROGRAMANDO
O arduino já possui uma função para gerar os pulsos elétricos chamada de tone, sua
sintaxe funciona da seguinte maneira:
noTone(Porta Digital);
Desta maneira conseguimos “escrever” musicas com o buzzer, associar determinada nota
musical com determinada frequência, criar teclados eletrônicos utilizando botões, etc.