Professional Documents
Culture Documents
DUEMILANOVE
0
SUMARIO
1. DEFINIÇÃO DE ARDUINO................................................................................... 04
2.2. Alimentação.......................................................................................... 07
2.3 Memória................................................................................................ 08
2.5. Comunicação......................................................................................... 09
3. PROGRAMAÇÃO................................................................................................ 10
3.7. Loop.................................................................................................. 23
3.8. Array................................................................................................. 23
4. APLICAÇÕES ARDUINO..................................................................................... 24
1
LISTA FIGURAS
2
Lista de Tabelas
3
1. DEFINIÇÃO DE ARDUINO
4
É possível utilizar esta configuração para controlar uma lâmpada num
armário. Você pode estender este conceito, ligando um sensor, como um PIR, para
ligar a lâmpada quando for acionado.
Estes são alguns exemplos simples de como utilizar um Arduino.
Também é possível desenvolver projetos autônomos interativos: conectá-lo a um
computador, uma rede, ou mesmo a Internet para obter e enviar dados para o mesmo
e depois agir sobre esses dados.
Em outras palavras, ele pode enviar um conjunto de dados recebidos dos
sensores de um site, apresentá-los sob a forma de um gráfico. O Arduino pode ser
conectado aos LEDs, display de matriz de pontos (ver Figura 2), botões, interruptores,
motores, sensores de temperatura, sensores de pressão, sensores de distância,
receptores GPS, módulos Ethernet, ou apenas sobre quaisquer saídas de dados.
Arduino Duemilanove
Microcontrolador ATmega328
Tensão de operação 5V
Tensão de entrada (recomendada) 7 - 12 V
Tensão de entrada (limite) 6 - 20 V
Pinos de Entrada/Saída digital 14 (dos quais 6 provêm PWM)
Entradas analógicas 6
Corrente CC por pino 40 mA
Corrente CC para o pino de 3,3 V 50 mA
Memória Flash 32 KB (2 KB ocupados pelo bootloader)
SRAM 2 KB
EEPROM 1 KB
Velocidade de clock 16 MHz
Tabela 1: Características elétricas
2.2. Alimentação
7
2.2.1. pinos de alimentação:
Vin Entrada de alimentação para a placa Arduino quando uma fonte externa for
utilizada. Você pode fornecer alimentação por este pino, ou, se usar o
conector de alimentação, acessar a alimentação pelo o mesmo;
5V A fonte de alimentação utilizada para o microcontrolador e para outros
componentes da placa. Pode ser proveniente do pino Vin através de um
regulador on-board ou ser fornecida pelo USB ou outra fonte de 5 V
3 V3 Alimentação de 3,3 V fornecida pelo circuito integrado FTDI (controlador
USB). A corrente máxima é de 50 mA
GND Pino terra
(ground)
Tabela 2. Pinos de alimentação
2.3. Memória
Cada um dos 14 pinos digitais do Duemilanove pode ser usado como entrada
ou saída usando as funções de pinmode( ), digitalWrite( ), e digitalRead( ). Eles operam
com 5 V. Cada pino pode fornecer ou receber um máximo de 40 mA e tem um resistor
pull-up interno (desconectado por padrão) de 20-50 k. Além disso, alguns pinos têm
funções especializadas:
Serial 0 (RX) e 1 (TX). Usados para receber (RX) e transmitir (TX) dados seriais TTL.
Estes pinos são conectados aos pinos correspondentes do chip serial FTDI USB-
to-TTL.
PWM 3, 5, 6, 9, 10, e 11. Fornecem uma saída analógica PWM de 8-bit com a função
analogwrite( )
SPI 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estes pinos suportam comunicação
SPI, que embora compatível com o hardware, não está incluída na linguagem
do Arduino
LED 13. Há um LED já montado e conectado ao pino digital 13
Tabela 3: Tabela de pinos
8
O Duemilanove tem 6 entradas analógicas, cada uma delas está ligada a um
conversor analógico-digital de 10 bits, ou seja, transformam a leitura analógica em um
valor dentre 1024 possibilidades (exemplo: de 0 a 1023). Por padrão, elas medem de 0
a 5 V, embora seja possível mudar o limite superior usando o pino AREF e um pouco de
código de baixo nível.
Adicionalmente alguns pinos têm funcionalidades especializadas:
I2C 4 (SDA) e 5 (SCL). Suportam comunicação I2C (TWI) usando a biblioteca Wire
AREF Referência de tensão para entradas analógicas. Usados com analogreference( )
Reset Envie o valor LOW para reiniciar o microcontrolador. Tipicamente utilizados
para adicionar um botão de reset aos shields( placas que podem ser plugadas
ao Arduino para extender suas capacidades) que bloqueiam o que há na placa.
Tabela 4: Funcionalidades dos pinos
2.5. Comunicação
9
bootloader pode ter um timeout mais curto, já que a ativação do DTR (sinal baixo)
pode ser bem coordenada com o início do upload.
Estas configurações têm outras implicações. Quando o Duemilanove está
conectado a um computador rodando Mac OS X ou GNU/Linux, ele reinicia toda vez
que a conexão é feita por software (via USB). No próximo meio segundo
aproximadamente, o bootloader estará rodando no Duemilanove. Considerando que é
programado para ignorar qualquer coisa a não ser um upload de um novo código, ele
interceptará os primeiros bytes de dados sendo enviados para a placa depois que a
conexão é aberta. Se um sketch rodando na placa recebe configurações de uma vez ou
outros dados ao iniciar, assegure-se que o software está se comunicando e aguarde
um segundo depois de aberta a conexão antes de enviar estes dados.
O Duemilanove tem uma trilha que pode ser cortada para desabilitar o auto-
reset e pode ser ressoldada para reativá-lo, é chamada de RESET-EN, você pode
também desabilitar o auto-reset conectando um resistor de 110 dos +5 V até o sinal de
reset.
3. PROGRAMAÇÃO
Esta seção explica como configurar o “Arduino” e o IDE pela primeira vez. As
instruções para Windows são dadas. Se você usa Linux, consulte o Guia de Introdução
no site do Arduino no www.arduino.cc.playground / Aprendizagem / Linux.
Para a versão Duemilanove (ver figura 4), consulte a página correspondente no
Guia de Introdução do site do Arduino.
10
Faça o download do Arduino IDE. Este software grava os programas (ou
esboços) e os envia para a placa. Para as últimas IDE vá para a página de download no
Arduino http://arduino.cc/en/Main/Software e obtenha a versão apropriada para seu
sistema operacional.
Uma vez que você abrir o IDE, ele terá uma aparência semelhante à Figura 5.
Agora vá ao menu Tools e clique em OK. Em seguida, clique Board (ver Figura
6).
12
Figura 6: menu Tools
Será apresentado uma lista de placas (ver Figura 7). Clique em Arduino
Duemilanove or Nano w/Atmega328.
13
Figura 8: A lista de Serial Port
Agora que você tem instalado os drivers e o IDE com a placa correta e portas
selecionadas, faça o upload de um esboço exemplo para o Arduino testar se tudo está
funcionando corretamente antes de passar para o primeiro projeto.
Primeiro, clique no menu File (Figura 9) e clique em Exemplos.
14
Você terá uma lista enorme de exemplos para experimentar. Vamos tentar um
simples. Clique em Basics, e, em seguida, Blink (Figura 10). O esboço Blink será
carregado para o IDE.
Quando você abrir a IDE Arduino, será muito semelhante à imagem da Figura
12. Se você estiver usando Windows ou Linux, haverá algumas diferenças pequenas,
mas o IDE é quase a mesma coisa, não importa qual sistema operacional você usa.
16
Os botões da barra de ferramentas e suas funções são listados na Tabela
Usado para verificar se o código está correto e livre
Verify/compile (Verifique) de erros antes de enviá-lo para sua placa Arduino
O monitor de série para a partir do funcionamento.
Stop (parar) Ele também destaca outros não-selecionados.
Enquanto o monitor serial está funcionando, você
pode pressionar o botão Stop para obter dados para
examiná-lo instantaneamente. Isto é
particularmente útil se você estiver enviando dados
para fora do Serial Monitor e mais rápido do que
você lê-lo.
Cria um novo desenho em branco para você digitar o
New (novo) seu código. O IDE pergunta um nome e um local para
o desenho (tente usar o local padrão, se possível) e,
em seguida, dá-lhe um esboço em branco para ser
codificado. O guia na parte superior do desenho
mostra o nome que você atribuiu ao seu novo
desenho.
Apresenta uma lista de esboços armazenados dentro
Open (abra) de uma pasta, bem como uma lista de esboços de
exemplo que você pode experimentar com vários
periféricos.Abra o desenho apropriado para o
dispositivo, quando conectado modifique o código
para suas próprias necessidades.
Salva o código dentro da janela de desenho para seu
Save(salvar) arquivo de seu projeto. Uma vez completo, você vai
ter uma mensagem "Done Saving" na parte inferior
da janela do seu código.
O código dentro da janela de seus desenhos atuais
Upload do Arduino. Certifique-se de que você tem a placa e
a porta correta (no menu Tools) antes do upload. É
essencial que você salve o seu desenho antes de
carregá-lo, no caso do sistema travar ou o IDE falhar.
Também é aconselhável utilizar o botão Verify antes
de você fazer o upload para garantir que não haja
erros que precisem ser eliminados em primeiro
lugar.
É uma ferramenta muito útil, especialmente para
Monitor Serial eliminar erros do seu código. Ele permite enviar para
fora do seu Arduino (USB ou placa de série). Você
também pode enviar dados de volta ao Arduino
usando o Serial Monitor, como na Figura 14. No lado
inferior direito, você pode selecionar a taxa de
transmissão de dados da série a ser enviada para o
Arduino. A taxa de transmissão é a taxa por segundo
17
que as mudanças de estado ou de bits (dados) são
enviadas para a placa. A configuração padrão é 9600,
isto significa que se você enviar um novo texto sobre
a série comunicações de linha (neste caso, o cabo
USB), então 1200 letras ou símbolos serão enviados
por segundo (9600 bits / 8 bits por caractere = 1200
bytes ou caracteres).
Tabela 5: As funções dos botões da barra de ferramentas
No topo está uma caixa de texto em branco para você digitar e enviar de volta
para o Arduino através botão Send. Note-se que o monitor de série receberá dados
seriais se você tenha configurado o código dentro de seu esboço para fazê-lo. Da
mesma forma, o Arduino não receberá os dados enviados a menos que tenha
codificado para enviá-los.
Finalmente, a área preta é onde os dados de série serão exibidos. Na imagem
acima, o Arduino executa o esboço ASCIITable (a partir do exemplo das
Comunicações). Este programa envia os caracteres do Arduino via porta serial (cabo
USB) ao computador onde o monitor as exibe.
Para iniciar o monitor serial, pressione o botão serial monitor. Para pará-lo,
pressione o botão Stop. No Mac ou Linux, quando você clica no botão serial monitor, a
placa Arduino vai reiniciar-se (execute novamente o código desde o início).
Uma vez que você esteja acostumado a transmitir dados via serial com o
Arduino, é possível utilizar outros programas como o Processing, Flash, MaxMSP, etc
para se comunicar com o Arduino e o computador.
18
Você irá fazer uso do monitor serial mais tarde, quando você lê os dados a
partir de sensores obtidos do Arduino e os envia para o monitor serial, num formato
legível.
A parte inferior da janela do IDE é o lugar onde você verá mensagens de erro
(em vermelho): conectar a sua placa, faça o upload do código, ou verificar o código. No
canto inferior esquerdo do IDE você vai ver um número. Esta é a localização atual do
cursor dentro do programa. Se você tiver o código em sua janela, mova para baixo as
linhas de código (usando a tecla ↓ do seu teclado), isso é ú]l para encontrar bugs
destaque por erro de mensagens. Na parte superior da janela do IDE (ou na parte
superior da tela se estiver usando um Mac), você vai ver os vários menus que você
pode clicar para acessar itens do mesmo (veja Figura 15).
O menu File (ver Figura 16), permite acessar as opções para criar um novo
desenho, dar uma olhada nos esboços armazenados, bem como os exemplos de
esboços, salvar o seu desenho ou usar o Save as como opção para dar um nome
diferente, fazer upload de seu esboço para a placa I / O (Arduino), ou imprimir seu
código.
O menu Edit (ver Figura 17) oferece opções para deixá-lo cortar, copiar e colar
seções de código. Você também pode selecionar todo o código ou localizar certas
palavras ou frases dentro do código. O Undo(fazer) e Redo(refazer) são uteis para
quando você cometer um erro.
19
Figura 17: menu Edit
Figura 20: Um chip Atmel ATmega, o coração de seu Arduino. (Cortesia da imagem de
Earthshine Eletrônica)
O menu final, Help (figura 21), é onde você pode encontrar mais informações
sobre o IDE ou links para os páginas de referência do site do Arduino e outras páginas
úteis. O IDE Arduino é bastante básico e você vai aprender como usá-lo com rapidez e
facilidade nos projetos. Como você se tornar mais proficientes no uso de um Arduino e
programação em C (a linguagem de programação utilizada para o código no Arduino).
Se você quer algo com melhor funcionalidade, você pode tentar um dos programas
profissionais IDE (alguns dos que são livres), tais como Eclipse, ArduIDE, GNU / Emacs,
AVR-GCC, AVR Studio, e até mesmo da Apple XCode.
21
Figura 21: Menu Help
• Declaração Condicional
O “if” (), é a mais básica de todas as estruturas de controle de programação. Ele
permite que você faça algo acontecer ou não dependendo de uma determinada
condição: verdadeira ou não. É parecido com este:
if (algumaCondição) {
/ / executar funçao, se a condição for verdadeira
}
[Código]
if (algumaCondição) {
/ / executar função, se a condição for verdadeira
}
else {
/ / executar função, se a condição for falsa
}
[Código]
Há também o outro “if”, onde você pode verificar uma segunda condição se a primeira
é falsa:
if (algumaCondição) {
/ / fazer o material, se a condição for verdadeira
}
Else if (outraCondição) {
/ / executar função apenas se a primeira condição é falsa
22
/ / e a segunda condição é verdadeira
}
[Código]
Você pode iterar uma série de pinos e fazer alguma coisa para cada um. Por
exemplo, um pisca de 6 LEDs ligados ao Arduino usando um loop for () para o ciclo e
para trás através de pinos digital 2-7. Os LEDs são ligados e desligados, em seqüência,
usando tanto digitalWrite () e delay () funções.
Um bom exemplo é "Knight Rider" em memória a série de TV dos anos 80, onde
David Hasselhoff tinha uma máquina AI chamado KITT dirigindo seu Pontiac. O carro
tinha sido aumentado com abundância de LEDs em todos os tamanhos e efeitos
possíveis para realizar chamativo.
3.8. Array: uma variação do Loop, demonstra como usar uma matriz.
Esta variação do For Loop mostra como usar uma matriz. Uma matriz é uma
variável com várias partes. Se você pensar em uma variável como um copo que
contém valores, você poderia pensar em uma matriz como uma bandeja de cubos de
gelo. É como uma série de copos de alternância, os quais podem conter o valor
máximo dos mesmos.
O exemplo Loop mostra como acender uma série de LEDs ligados aos pinos de 2
a 7 do Arduino, com certas limitações (os pinos devem ser numeradas de forma
contígua, e os LEDs têm que ser ligado em seqüência).
Este exemplo mostra como você pode ativar uma seqüência de pinos, cujos
números não são contíguas, nem necessariamente seqüencial. Para fazer isso, você
pode colocar os números dos pinos em uma matriz e depois usar loops para iterar
sobre a matriz.
Este exemplo faz uso de 6 LEDs ligados à 2 pinos - 7 na placa com 220 ohms,
assim como no For Loop. No entanto, aqui a ordem dos LEDs é determinada pela sua
ordem da matriz, não por sua forma física.
Esta técnica de colocar os pinos em uma matriz é muito útil. Você não tem que
ter os pinos seqüencial para um outro, ou até na mesma ordem. Você pode
reorganizá-los como quiser.
3.9. While Loop: como usar um loop para calibrar um sensor, enquanto um botão
estiver sendo lido.
23
Às vezes, você quer parar tudo no programa enquanto uma determinada
condição é verdadeira. Você pode fazer isso usando um loop while. Este exemplo
mostra como usar um loop while para calibrar o valor de um sensor analógico.
No circuito principal, o esboço abaixo lê o valor de um fotoresistor no pino
analógico 0 e usa-a desvanecer-se um LED no pino 9. Mas enquanto um botão ligado
ao pino digital 2 é pressionado, o programa é executado num método chamado
calibrar () que olha para os valores mais altos e mais baixos do sensor analógico.
Quando você soltar o botão, o desenho continua com o loop principal.
Esta técnica permite você atualizar os valores máximo e mínimo para o
photoresistor quando a iluminação e as condições mudam.
Equivalente a vários comandos if. Este exemplo mostra como dividir uma faixa
do sensor num conjunto de quatro bandas e tomar quatro ações diferentes
dependendo em qual banda o resultado está dentro.
Uma declaração que permite escolher entre duas opções distintas, verdadeiro
ou falso. Quando há mais de duas opções, você pode usar vários comandos if, ou você
pode usar a instrução switch. Switch permite que você escolha entre diversas opções
discretas. Este tutorial mostra como usá-lo para alternar entre os quatro estados
desejados de um resistor foto: realmente escuro, turvo, médio e brilhante.
Este primeiro programa lê o fotoresistor. Em seguida, ele usa o mapa () para
mapear sua saída para um dos quatro valores: 0, 1, 2 ou 3. Finalmente, ele usa o switch
() para imprimir uma declaração de quatro mensagens para o computador,
dependendo de qual dos quatro valores é retornado.
4. APLICAÇÕES DO ARDUINO
O arduino permite uma imensa variedade de aplicações tais como: robôs; roupas
eletrônicas; máquinas de corte e modelagem 3D de baixo custo; segway open-source;
24
desenvolvimento de celulares customizados; instrumentos musicais; paredes
interativas; automação comercial e residencial; monitoramento de condições
ambientais; circuit bending entre outros.
25