Professional Documents
Culture Documents
Autor:
Vincius Neves de Figueiredo
Estudante de Engenharia Eltrica - UFF
O arduino
O Arduino UNO um microcontrolador em que possui 13 entradas do tipo digital 5
do tipo analgica, sendo que 6 das digitais possuem o recurso de PWM, que conta tambm
com 2 pinos de comunicao RX/TX, e mais sadas de 3,3V e 5V, e alguns outros recursos
que sero comentados durante o curso.
Portas digitais
Portas Analgicas
Logo neste incio foram falados muitos conceitos que so comuns dentro do mundo
da eletrnica, vamos comear definindo-os.
A Protoboard (breadboard)
A protoboard um ambiente de prototipagem que faz com que seja fcil a
montagem e a desmontagem de circuitos eltricos, no precisando assim de soldas, junes
e gambiarras no circuito.
O boto funciona de maneira muito simples, ele na verdade uma chave que est sempre
aberta at que algum 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 no!
Exerccios Propostos
1. Ligue dois LEDs em srie.
2. Ligue 4 LEDs em paralelo.
3. Porque no possvel ligar 3 LEDs em srie?
4. Quantos LEDs so possveis ligar em paralelo? (quantidade terica)
Rpida;
Fcil Uso;
Portvel (aceito em Linux, Windows, Mac e outras plataformas);
Aceita em chips e microcontroladores (Esse o nosso caso!);
TIPO DE DADOS
Vamos Comear Falando sobre os tipos de dados, que nada mais so que as variveis
ou onde voc vai poder armazenar seus dados. Neste curso trataremos apenas de 4 tipos de
dados: um para tratar de nmeros inteiros, dois para tratar de nmeros no inteiros e um
para caracteres.
TIPO CHAR
O tipo char utilizado para armazenar um caractere, com ele podemos armazenar
smbolos do teclado segundo a tabela ASCII.
Segundo essa tabela, as duas linhas de cdigo acima significam a mesma coisa.
PRIMEIRA PARTE:
A primeira parte onde normalmente as variveis so inicializadas, caso voc
inicialize as variveis neste ponto, voc pode utiliza-las em qualquer parte do cdigo
chamamos isso de variveis globais.
Alm das variveis, possvel adicionar nesta parte do cdigo as bibliotecas que
ajudaro a utilizar outros dispositivos e assim facilitar a nossa vida ao programar, este
assunto abordaremos mais a frente neste curso.
Nesta parte de cdigo, o Arduino passar lendo apenas uma nica vez, ento voc
deve colocar o que acha interessante para este caso. Existe um exemplo clssico que de
fcil observao dentro das nossas casas, muitos eletrodomsticos assim que so ligados na
energia eltrica do um beep para indicar que esto funcionando corretamente ou
simplesmente para avisar que esto ligados.
TERCEIRA PARTE
Esta ser a parte em que dever conter o seu algoritmo, quando o arduino comea a
ler este trecho, ele entra em um loop infinito e no sai mais da parte do cdigo at que a
energia seja cortada ou se o boto do RESET seja pressionado. Todos os micros
controladores fazem isso, por exemplo, a sua TV tem um sensor de infravermelho (mdulo
bluetooth nas mais modernas) que fica esperando vir o sinal de seu controle remoto, na
verdade ele fica rodando um cdigo em loop infinito de leitura do sensor infravermelho.
Obs.: No se esquea do ponto e virgula no final de cada comando que voc der, isso vem
da herana 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 varivel int Arduino; diferente da varivel int arduino; sendo
assim, tome bastante cuidado na sintaxe, pois fcil confundir pinmode ao invs de
pinMode.
O DELAY
O comando de delay() muito utilizado nos projetos do arduino, com ele podemos
dizer por quanto tempo tal ao 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 no. Esse
comando ser o responsvel pelo controle de quase tudo dentro do seu cdigo, para que
funcione necessrio 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 posio do resistor no importante, ele pode estar frente do LED ou
atrs do LED no circuito.
O cdigo a seguir vai fazer com que o LED acenda e apague a cada meio segundo:
Exerccios Propostos
1. Faa 3 LEDs ligarem em sequncia.
2. Faa uma simulao de um cruzamento de transito, utilizando os LEDs de cor
vermelha, verde e amarelo.
Ento com isso podemos ter at 1024 opes para descrever valores de 0 at 5 Volts
com o arduino. Graas a isso podemos utilizar sensores no arduino, porque em geral tudo o
que um sensor faz variar a sua resistncia ou a sua impedncia sobre a corrente.
Voc pode pensar... Bom, se estamos falando que ele l a tenso de 0 a 5 Volts, ento
significa que o Arduino pode atuar como um voltmetro? E a resposta SIM! As portas
analgicas podem sim atuar como voltmetro, com a restrio que ele precisa estar dentro
de um range (faixa) de tenso de at 5V, caso ultrapasse isso voc pode queimar o arduino,
ento tome cuidado antes de plugar o fio neste local.
Caso precise medir uma tenso em um circuito que tenha mais do que 5V dever construir
um circuito divisor de tenso assunto importante dentro do mundo da eletricidade e de
fcil implementao e aplicao.
J que estamos falando sobre a variao de tenso em um circuito, podemos falar sobre um
resistor que capaz de variar a sua resistncia, chamado de POTNCIOMETRO.
O que h por trs destes botes circulares um potencimetro, ele que faz com que voc
tenha um ajuste fino sobre alguma coisa. O potencimetro tambm muito estudado junto
com a aula de fsica em eletricidade, o representamos desenhando da seguinte maneira:
Obs.: Daqui para frente, no ser mais colocado o arduino dentro no desenho quando no
for utilizado alguma das portas de comunicao, podemos observar onde sendo utilizado o
5V ou o GND pela cor dos fios.
Exerccios Propostos
1. Por que colocamos a resistncia junto ao potencimetro se ele j uma
resistncia?
2. Desenhe o esquema do circuito acima.
MULTMETRO
O multmetro um aparelho capaz de realizar medies em um circuito eltrico.
Neste curso ele ser fundamental ter fluidez em seu manuseio, com ele iremos medir a
Tenso, Corrente e a resistncia.
A PORTA ANALGICA
A porta analgica do arduino se comporta como um voltmetro, porm no temos a
presena de dois fios como utilizado o voltmetro normalmente, isso ocorre porque o
arduino deixa a perna do negativo aterrada, ou seja, na referencia de 0. Se formos medir a
tenso do resistor R2 como mostrado na imagem acima ficaria:
analogRead(Porta);
PRTICA
Agora iremos controlar a velocidade que o LED ir piscar utilizando um potencimetro, um
arduino, um resistor e alguns cabos.
OBS.: Colocamos o resistor em srie com o potencimetro apenas para evitar o curto circuito caso giremos o
cursor at a resistncia zero.
PROGRAMANDO
Observaes:
Neste cdigo foram utilizadas constantes para descrever o led e o pot, logo no possvel
reescrever estas variveis durante o cdigo.
if(condio)
{
...
}
else
{
...
}
No caso de uma condio determinada (no dual), possvel suprimir o else e selecionar
apenas um caso.
OPERADORES
Para fazer o controle das condies que queremos impor, devemos utilizar os operadores, a
seguir encontrada uma lista de operadores que podemos utilizar:
Operador Funo
== Igual
!= Diferente de
> Maior que
< Menor que
>= Maior ou igual que
<= Menor ou igual que
% Resto da diviso
|| Or
&& And
Os comandos or e o and fazem com que seja possvel a sobre carga do comando if, ou
seja, com ele podemos testar mais de uma condio. 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.
PRTICA
Neste exemplo prtico, vamos detectar se o potencimetro est tendendo para a esquerda
ou para a direita. Tudo o que iremos fazer ler a tenso em cima de um potencimetro com
a porta analgica pegando o nmero 1023 (5V) e dividir por 2, ou seja, 511 (2,5V), se for
maior do que 511 o LED D1 ir acender, caso contrrio o LED D2 ir acender.
Obs.: tome cuidado para no deixar o potencimetro chegar resistncia igual a zero.
Repare que no preciso dizer que o caso contrrio da condio <= 511, ele j subentende
isso.
O Piezoeltrico
O Piezoeltrico um dos mais interessantes componentes eltricos que podemos
encontrar no mercado, suas aplicaes so praticamente infinitas, podemos encontra-los
em sensores de toque, alarmes, caixa de som, ultrassom hospitalar, fones de ouvido, dentre
outros.
PRTICA
O funcionamento do Buzzer muito simples, basta aplicar uma corrente em uma
determinada frequncia em seus terminais que ele comea a emitir sons. A resistncia
colocada em srie com ele far controlar a potncia 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 funo para gerar os pulsos eltricos 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 frequncia, criar teclados eletrnicos utilizando botes, etc.