Blocos do Arduino
Entradas e sadas digitais
Conversor
Serial USB
Jack
USB
Cristal
Fonte de
alimentao
Microcontrolador
CPU
Atmel
Jack
Alimentao
Terminais de alimentao
5V 3,3V e Terra (0 V)
http://www.prof2000.pt/users/lpa
Entradas analgicas
ou sadas digitais
http://www.prof2000.pt/users/lpa
Arquitetura do Arduino
http://www.prof2000.pt/users/lpa
O microcontrolador
Um microcontrolador, ao contrrio de um microprocessador, desenhado e
construdo de forma a integrar diversos componentes (CPU, RAM, ROM,
Porta srie, Porta paralela, etc.) num nico circuito integrado.
http://www.prof2000.pt/users/lpa
Microcontrolador: ATmega328
Tenso de operao: 5V
Tenso recomendada (entrada): 7-12V
Limite da tenso de entrada: 6-20V
Pinos digitais: 14 (seis pinos com sada PWM)
Entrada analgica: 6 pinos
Corrente contnua por pino de entrada e sada: 40 mA
Corrente para o pino de 3.3 V: 50 mA
Quantidade de memria FLASH: 32 KB (ATmega328) onde
0.5 KB usado para o bootloader
Quantidade de memria SRAM: 2 KB (ATmega328)
Quantidade de memria EEPROM: 1 KB (ATmega328)
Velocidade de clock (cristal): 16 MHz
http://www.prof2000.pt/users/lpa
Software
O 1 passo consiste em efectuar o download do respectivo software de
desenvolvimento, o Arduino IDE 1.0.5, atravs do site oficial Arduino
O 2 passo consiste em descompactar o ficheiro .ZIP para uma pasta sua
escolha.
O 3 passo consiste em ligar a placa Arduino ao computador atravs do cabo
USB e instalar os drivers FTDI, para permitir uma converso de USB para srie.
O 4 passo consiste em configurar a porta
srie a ser utilizada e qual o tipo de modelo
Arduino, que nos encontramos a utilizar. Para
tal, necessitamos de abrir o Software de
desenvolvimento e escolher na barra de
separadores a opo Tools.
Arduino IDE
O monitor serial utilizado para
comunicao entre o Arduino e
o computador (PC).
http://www.prof2000.pt/users/lpa
Ciclo de desenvolvimento
http://www.prof2000.pt/users/lpa
10
Funes base
void setup() - Esta funo apenas executada uma vez e normalmente utilizada para
executar a inicializao de variveis, a inicializao da utilizao bibliotecas, a definio dos
pinos (como input ou output), o incio do uso de comunicao srie, entre outros. Esta funo
apenas volta a ser executada novamente ao ser efectuado o reset ou quando se desligar e
volta a ligar a placa de desenvolvimento Arduino.
void loop() - Esta funo faz um loop sucessivo (como o prprio nome indica), ou seja,
todos os comandos existentes no interior desta funo so sucessivamente repetidos, o que
pode permitir a leitura sucessiva de portas, a leitura sucessiva de parmetros provenientes de
sensores externos e actuar de acordo com as condies estabelecidas.
http://www.prof2000.pt/users/lpa
11
Programar no Arduino
Comentrios
Muitas vezes importante comentar alguma parte do cdigo do programa.
Existem duas maneiras de adicionar comentrios a um programa em
Arduino.
A primeira usando //, como no exemplo abaixo:
// Este um comentrio de linha
12
Programar no Arduino
Constantes
No Arduino existem algumas constantes previamente definidas e so
consideradas palavras reservadas.
As constantes definidas so:
true indica valor lgico verdadeiro
false indica valor lgico falso
HIGH indica que uma porta est ativada, ou seja, est em 5V.
LOW indica que uma porta est desativada, ou seja, est em 0V.
INPUT indica que uma porta ser de entrada de dados.
OUTPUT indica que uma porta ser de sada de dados.
http://www.prof2000.pt/users/lpa
13
http://www.prof2000.pt/users/lpa
14
Sadas PWM
O que PWM?
PWM, do ingls Pulse Width Modulation,
uma tcnica utilizada por sistemas
digitais para variao do valor mdio de
uma forma de onda peridica. A tcnica
consiste em manter a frequncia de uma
onda quadrada fixa e variar o tempo que
o sinal fica em nvel lgico alto. Esse
tempo chamado de duty cycle, ou seja,
o ciclo ativo da forma de onda. No
grfico ao lado so exibidas algumas
modulaes PWM.
http://www.prof2000.pt/users/lpa
15
Entradas analgica
Portas Analgicas
As portas analgicas so utilizadas para entrada de
dados.
O Arduino UNO possui 6 (seis) portas analgicas.
As portas analgicas no Arduino UNO so
identificadas como A0, A1, A2, A3, A4 e A5. Estas
portas tambm podem ser identificadas por 14 (A0),
15 (A1), 16 (A2), 17 (A3), 18 (A4) e 19 (A5).
Por padro todas as portas analgicas so definidas
como entrada de dados, desta forma no
necessrio fazer esta definio na funo setup().
Os valores lidos numa porta analgica variam de 0V
a 5V.
Para ler uma valor numa porta analgica basta
utilizar a funo analogRead(pin).
http://www.prof2000.pt/users/lpa
16
Programar no Arduino
Para definir uma porta como entrada ou sada necessrio explicitar
essa situao no programa.
A funo pinMode(pin, estado) utilizada para definir se a porta ser de
entrada ou sada de dados.
Exemplo:
Define que a porta 13 ser de sada
pinMode(13, OUTPUT)
Define que a porta 7 ser de entrada
pinMode(7, INPUT)
http://www.prof2000.pt/users/lpa
17
Programa explicado
/*
----------------------------------1 Exerccio
----------------------------------Ligar e desligar um LED por um segundo
*/
//-----------------------------------//Funo principal
//-----------------------------------void setup() // Executa-se quando o arduino ligado
{
pinMode(13,OUTPUT); // Inicializa o pin 13 como uma sada
}
//-----------------------------------//Funo repetitiva
//-----------------------------------void loop() // Esta funo executa-se o instante todo
// quando est ligado o Arduino
{
digitalWrite(13,HIGH); // Liga o LED
delay(1000); // Temporiza um segundo (1s = 1000ms)
digitalWrite(13,LOW); // Desliga o LED
delay(1000); // Temporiza um segundo (1s = 1000ms)
}
http://www.prof2000.pt/users/lpa
18
Programar no Arduino
Numa linguagem de programao existem vrios operadores que
permitem operaes do tipo: Aritmtica, Relacional, Lgica e Composta.
http://www.prof2000.pt/users/lpa
19
Programar no Arduino
http://www.prof2000.pt/users/lpa
20
Programar no Arduino
http://www.prof2000.pt/users/lpa
21
Programar no Arduino
http://www.prof2000.pt/users/lpa
22
Shields
possvel agregar novas
funcionalidades a uma placa do
Arduino.
As extenses das placas do Arduino
so chamadas de shields.
Existem shields para as mais diversas
funcionalidades, por exemplo:
Comunicao ethernet
Comunicao wifi
Comunicao bluethooth
Ponte H
Banco de rels
http://www.prof2000.pt/users/lpa
Ethernet Shield
24
Por fim, vamos verificar se a biblioteca foi mesmo detectada pelo IDE. V a Files
> Examples e verifique se a biblioteca que acabamos de adicionar est ali. Se
sim, a instalao ocorreu bem e j pode comear a utilizar a sua nova biblioteca.
Agora s cham-la no seu cdigo, que neste caso ficaria: #include
<MsTimer2.h>. Vale a pena destacar que na prpria pgina onde baixou a
biblioteca, possui as instrues de como utilizar a mesma.
http://www.prof2000.pt/users/lpa
25
Exerccios propostos
1.Faa um circuito onde trs LEDs acendam em sequncia, com um atraso
de um segundo entre eles, e depois apaguem igualmente em sequncia.
2.Usando um LED vermelho, um amarelo e um verde, crie um semforo de
transito ou seja, o LED verde deve ficar ligado por um determinado
intervalo de tempo, seguido pelo amarelo, depois o vermelho, voltando
para o verde.
3.Crie um LED inteligente: ou seja, utilizando um sensor de luminosidade,
faa-o ligar se o ambiente estiver escuro demais.
4.Projete o prottipo de uma fechadura com senha - ou seja, a porta s
abre se a senha digitada for correta. Para facilitar, utilize um LED
vermelho para representar a porta fechada e um LED verde para indicar
que a senha digitada foi aceite.
5.Melhore seu prottipo adicionando um atuador sonoro, que avisa caso a
senha esteja errada, caso ela esteja certa, e denuncie caso algum erre a
senha mais de trs vezes Utilize sons diferentes para cada caso.
http://www.prof2000.pt/users/lpa
26
Fontes de informao
Site oficial Arduino
http://www.arduino.cc
Para comandos, consultar o guia de referncias em
http://arduino.cc/en/Reference/HomePage
Biblioteca MsTimer2
http://arduino.cc/playground/Main/MsTimer2
http://www.prof2000.pt/users/lpa
27