Vous êtes sur la page 1sur 25

Introduo ao Arduino

Grupo de Robtica UFMS 2012

SUMRIO 1. Introduo ao Arduino ______________________________________ 3 1.1 1.2 Histria do Arduino _______________________________________ 3 O que um Arduino? _____________________________________ 3

1.3 Por que usar Arduino? ______________________________________ 4 2. Modelos de Arduino ________________________________________ 4 2.1 Arduino UNO ______________________________________________ 4 2.2 2.3 2.4 Arduino 2009 ____________________________________________ 5 Arduino Mega 2560 _______________________________________ 5 Arduino Nano ___________________________________________ 5

3. Arduino Mega ______________________________________________ 6 3.1 Definies: _______________________________________________ 6 3.2 Especificaes ____________________________________________ 7 3.3 Alimentao ______________________________________________ 7 3.4 Entrada e Sada ___________________________________________ 8 3.5 LED 13 __________________________________________________ 8 3.6 Memria _________________________________________________ 8 3.7 Caractersticas Fsicas do Arduino MEGA 2560 ___________________ 9 4. Descrio do funcionamento de uma Protoboard _______________ 10 5. Resistores _______________________________________________ 14 5.1 5.2 5.3 5.4 O que so resistores? ____________________________________ 14 Tipos de resistores ______________________________________ 14 Resistores em srie e em paralelo: __________________________ 16 Cdigos de cores _______________________________________ 16

6. Ambiente de Desenvolvimento Arduino _______________________ 18 7. Programando para o Arduino: Conceitos e Sintaxe da Linguagem de Programao _____________________________________________ 20 7.1 Setup e Loop _____________________________________________ 20 7.2 7.3 7.4 HIGH e LOW ___________________________________________ 21 INPUT e OUTPUT _______________________________________ 21 Funes ______________________________________________ 22 Funes de Entrada e Sada Digital ______________________ 22 Funes de Entrada e Sada Analgica ___________________ 23 Tempo ____________________________________________ 24
2

7.4.1 7.4.2 7.4.3

1. Introduo ao Arduino
1.1 Histria do Arduino O Arduino surgiu em 2005, na Itlia, com um professor chamado Massimo Banzi, que queria ensinar eletrnica e programao de computadores a seus alunos de design, para que eles usassem em seus projetos de arte, interatividade e robtica. Porm, ensinar eletrnica e programao para pessoas que no so da rea no era uma tarefa simples, e outra dificuldade era a inexistncia de placas poderosas e baratas no mercado. Foi pensando nisso que Massimo e David Cuartielles decidiram criar sua placa prpria, com a ajuda do aluno de Massimo, David Mellis, que ficou responsvel por criar a linguagem de programao do Arduino. Vrias pessoas conseguiram utilizar o Arduino e fazer coisas incrveis, surgindo assim essa febre mundial da eletrnica. 1.2 O que um Arduino? Arduino uma placa de controle de entrada de dados (IN), como sensores, e sada de dados (OUT), como motores e leds, com cristal oscilador de 16 Mhz, um regulador de tenso de 5 V, boto de reset, plugue de alimentao, pinos conectores, e alguns LEDs para facilitar a verificao do funcionamento. A porta USB j fornece alimentao enquanto estiver conectado ao computador, e a tenso de alimentao quando desconectado pode variar de 7 V a 12 V, graas ao regulador presente na placa. No Arduino, informaes ou ordens so transmitidas de um computador para a placa atravs de Bluetooth, wireless, USB, infravermelho, etc. Essas informaes devem ser traduzidas utilizando a linguagem Wiring baseada em C/C++.

Figura 1. Caixa do arduino

1.3 Por que usar Arduino? Baixo custo - Uma pessoa pode comprar um Arduino pagando em torno de R$ 50,00. Software para vrias plataformas - Microsoft Windows, Mac OS X e Linux. Linguagem simples - Os desenvolvedores do Arduino tentam manter sua linguagem fcil de usar para iniciantes, mas flexvel o bastante para usurios avanados. Software livre - O Arduino completamente um software livre. Se quiser construir seu prprio software ou modificar um, voc livre para isso. Alm disso, o Web site oficial do Arduino contm um wiki extensivo no qual amostras de cdigo e exemplos so compartilhados livremente. Existe uma comunidade ativa para usurios, por isso, existe uma quantidade enorme pessoas que podem te ajudar.

2. Modelos de Arduino
2.1 Arduino UNO

Figura 2. Arduino UNO

uma placa com micro controlador Atmega328. Possui 14 entradas/sadas digitais, 6 entradas analgicas, um cristal oscilador de 16MHz, conexo USB, uma entrada para fonte, soquetes para ICSP, e um boto de reset. A placa contm todo o necessrio para usar o micro controlador. Simplesmente conecte-a a um computador com o cabo USB ou ligue a placa com uma fonte
4

AC-DC (ou bateria). O Uno seleciona automaticamente a fonte de alimentao (USB ou fonte externa).

2.2 Arduino 2009

Figura 3. Arduino 2009

Praticamente igual ao Arduino Uno. 2.3 Arduino Mega 2560

Figura 4. Arduino Mega

Possui uma considervel quantidade de portas, o que viabiliza a implementao de projetos mais complexos garantindo a eficincia e o baixo custo.

2.4 Arduino Nano

Figura 5. Arduino Nano

O Arduino Nano uma pequena verso de Arduino parecida com o Arduino UNO, pois tambm possui um chip ATMega328, na verso SMD. Possui um conector para cabos Mini-USB para gravao. Uma das diferenas entre esta placa e a Arduino UNO ou Arduino 2009, que esta placa possui 2 entradas analgicas a mais e um jumper de +5V AREF. Esta placa no possui um conector para fonte externa, mas possvel aliment-la pelo pino Vin. O Arduino Nano automaticamente seleciona a maior alimentao fornecida.

3. Arduino Mega
O Arduino Mega 2560 uma placa de micro controlador baseada no ATmega2560 (datasheet). Ele possui 54 pinos de entradas/sadas digitais, 16 entradas analgicas, 4 UARTs (portas seriais de hardware), um oscilador de cristal de 16 MHz, uma conexo USB, uma entrada de alimentao, uma conexo ICSP e um boto de reset. Ele contm tudo o que necessrio para dar suporte ao micro controlador; basta conectar a um computador com um cabo USB ou a uma fonte de alimentao e j est pronto para comear. O mega compatvel com a maioria dos shields desenhados para os Arduino Uno, Duemilanove e para o Diecimila. Possui ainda o dobro de memria do antigo Arduino Mega.

3.1 Definies: Memria flash : capaz de preservar os dados armazenados por um longo tempo sem a presena de corrente eltrica. EEPROM : memria no voltil, pode ser programada e apagada vrias vezes, eletricamente. SRAM: memria de acesso aleatrio que mantm os dados armazenados desde que seja mantida sua alimentao eltrica Micro controlador: um computador-num-chip, contendo um processador, memria e perifricos de entrada/sada. um micro processador que pode ser programado para funes especficas, em contraste com outros micro processadores de propsito gerais (como os utilizados nos PCs). Eles so embarcados no interior de algum
6

outro dispositivo (geralmente um produto comercializado) para que possam controlar as funes ou aes do produto. Outro nome para o micro controlador, portanto, controlador embutido. Shields: so placas de circuito impresso com uma funo especfica.

3.2 Especificaes Micro controlador Tenso de operao Tenso de entrada (recomendada) Tenso de entrada (limites) Pinos de entrada e sada (I/O) digitais Pinos de entradas analgicas Corrente DC por pino I/O Corrente DC para pino de 3,3V Memria Flash ATmega2560 5V 7-12V

6-20V 54 (dos quais 14 podem ser sadas PWM) 16 40mA 50mA 256KB (dos quais 8KB so usados para o bootloader) 8KB 4KB 16MHz

SRAM EEPROM Velocidade de Clock

Tabela 1: Caractersticas da placa Arduino MEGA 2560

3.3 Alimentao O Arduino Mega2560 pode ser alimentado pela conexo USB ou com uma fonte externa. A entrada de alimentao selecionada automaticamente. Alimentao externa (no USB) pode ser tanto de uma fonte como de baterias. A fonte pode ser conectada plugando um conector de 2,1mm, positivo no centro, na entrada de alimentao. Cabos vindos de uma bateria podem ser

inseridos nos pinos terra (Gnd) e entrada de voltagem (Vin) do conector de energia. A placa pode operar com alimentao externa entre 6 e 20 volts. No entanto, se menos de 7 volts forem fornecidos o pino de 5V pode fornecer menos de 5 volts e a placa pode ficar instvel. Com mais de 12V o regulador de voltagem pode superaquecer e danificar a placa. A faixa recomendvel de 7 a 12 volts. Os pinos de alimentao so os seguintes: VIN. Relacionado entrada de voltagem da placa Arduino quando se est usando alimentao externa (em oposio aos 5 volts fornecidos pela conexo USB ou outra fonte de alimentao regulada). possvel fornecer alimentao atravs deste pino ou acess-la se estiver alimentando pelo conector de alimentao. 5V. Fornecimento de alimentao regulada para o micro controlador e outros componentes da placa. 3V3. Uma alimentao de 3,3 volts gerada pelo chip FTDI. A corrente mxima de 50 mA. GND. Pinos terra.

3.4 Entrada e Sada

Cada um dos 54 pinos digitais do Mega2560 pode ser usado como entrada ou sada. Eles operam a 5 volts. Cada pino pode fornecer ou receber um mximo de 40 mA e possui um resistor interno de 20-50 K.

3.5 LED 13 H um LED conectado ao pino digital 13. Quando o pino est em HIGH o led se acende.

3.6 Memria

O Atmega2560 tem 256 KB de memria flash para armazenamento de cdigo(dos quais 8KB so usados pelo bootloader), 8 KB de SRAM e 4 KB de EEPROM.
8

3.7 Caractersticas Fsicas do Arduino MEGA 2560 Na figura 6 est representada a localizao dos pinos de Entrada/Sada Digital, as entradas analgicas, as portas de alimentao, entradas de comunicao serial, entre outros.

Figura 6. Caracterizao do Arduino Mega

4. Descrio do funcionamento de uma Protoboard


A protoboard (ou breadboard) uma base de construo de prottipos eletrnicos. Ela muito utilizada, pois no requer solda, ou seja, reutilizvel. Isto torna mais fcil de usar para criao de prottipos temporrios. A utilizao de uma protoboard em montagem com projetos de Arduino torna possvel a construo de circuitos mais complexos. A ligao de circuitos feita atravs de jumpers (basicamente pequenos fios), que so utilizados para ligar temporariamente componentes eletrnicos na protoboard. A faixa central tem o tamanho especifico para componentes eletrnicos pequenos. Normalmente, uma protoboard possui quatro matrizes, mas este nmero pode variar.

Figura 7. Exemplo de uma protoboard

10

Nos exemplos de protoboard j com circuito (figuras 8 e 9), pode-se notar que o encaixe dos circuitos torna-se bastante complexo com acrscimo de muitos jumpers (fios) e circuitos.

Figura 8. Circuito simples poucos jumpers

Figura 9. Circuito complexo muitos jumpers

11

Figura 10. Protoboard diviso por matrizes

A protoboard composta de dois tipos de matrizes principais: uma com duas colunas, chamada de matriz 2 e outra com cinco colunas, chamada de matriz 5. Elas se diferem no modo de transmisso de energia e dados. A matriz 2 geralmente usada para ligao inicial de energia, e a 5 usada na utilizao de componentes no circuito.A matriz de 2 tem sua transmisso de coluna em coluna, enquanto a matriz 5 tem a transmisso de linha em linha.

Figura 11. Protoboard transmisso nas matrizes

12

Um exemplo de energizao da protoboard, na figura 12 a cor vermelha corresponde a parte energizada da protoboard e a parte azul so jumpers (fios). Como se pode ver, a matriz 2 esquerda tem ligao com a fonte de energia. Toda essa coluna que est interligada na fonte por um jumper est energizada, caracterstica da matriz 2. Ao colocarmos um jumper dessa matriz 2 interligando-a com a linha cinco da matriz esquerda de cinco colunas, energizamos esta linha. Ao colocarmos um jumper da linha cinco da matriz esquerda de cinco colunas para a linha cindo da matriz direita de cinco colunas, tambm energizamos essa linha. E assim por diante.

Fonte de energia

Saida

Figura 12. Exemplo do funcionamento das matrizes em uma protoboard

13

5. Resistores
5.1 O que so resistores? So elementos que apresentam resistncia passagem de corrente eltrica, quanto maior a sua resistncia, menor a corrente eltrica que passa num condutor. Os resistores possuem um formato cilndrico e faixas coloridas que definem o seu valor em Ohms. Servem para opor-se a passagem de corrente, ficando assim certa tenso retida no mesmo. Um resistor ideal um componente com uma resistncia eltrica que permanece constante independentemente da tenso ou corrente eltrica que circular pelo dispositivo. O valor de um resistor pode ser facilmente identificado analisando as cores que apresenta em torno dele ou ento usando um ohmmetro (instrumento de medio de resistores). O material do resistor uma pelcula fina de carbono (filme), depositada sobre um pequeno tubo de cermica. O filme resistivo enrolado em hlice por fora do tubinho at que a resistncia entre os dois extremos fique to prxima quanto possvel do valor que se deseja. So acrescentados terminais (um em forma de tampa e outro em forma de fio) em cada extremo. Em seguida o resistor recoberto com uma camada isolante, e no fim suas faixas coloridas transversais so pintadas para indicar o valor da sua resistncia.

Figura 13. O resistor internamente

5.2 Tipos de resistores Os resistores podem ser de resistncia fixa ou varivel. Resistor fixo: um resistor que possibilita um nico valor de resistncia. Resistor varivel: Seus valores podem ser ajustados por um movimento mecnico, ou seja, rodando manualmente.

14

O reostato um resistor varivel com dois terminais, sendo um fixo e o outro deslizante. Geralmente so utilizados com altas correntes.

Figura 14. Reostato

O potencimetro um tipo de resistor varivel comum, sendo comumente utilizado para controlar o volume em amplificadores de udio. Geralmente, um resistor de trs terminais onde a conexo central deslizante e manipulvel. Se todos os trs terminais so usados, ele atua como um divisor de tenso.

Figura 15. Potencimetro

Varistor um tipo especial de resistor que tem dois valores de resistncia muito diferentes, um valor muito alto em baixas voltagens. usado geralmente para proteo contra curtos-circuitos em extenses ou para-raios usados nos postes de ruas, ou como "trava" em circuitos eletromotores. No caso de picos de tenso de maior durao, a alta corrente que circula pelo componente faz com que o dispositivo de proteo, disjuntor ou fusvel, desarme, desconectando o circuito da fonte de alimentao.

15

Figura 16. Metal Oxido Varistor 385 volt

5.3 Resistores em srie e em paralelo Em um circuito srie constatam-se as seguintes propriedades: A corrente que passa por todos os componentes a mesma; A soma das tenses sobre todos os componentes deve ser igual tenso total aplicada; A resistncia total da associao em serie igual soma das resistncias dos componentes individuais. Em um circuito paralelo constatam-se as seguintes propriedades: Todos os componentes suportam a mesma tenso eltrica; A soma de todas correntes nos componentes individuais deve ser igual corrente total; A resistncia total da associao calculada pelo quociente entre o produto das resistncias individuais e a soma delas (CUIDADO: isso vale s para 2 resistores em paralelo)

5.4 Cdigos de cores Por ter um tamanho muito reduzido, invivel imprimir nos resistores as suas respectivas resistncias. Optou-se ento pelo cdigo de cores, que consiste em faixas coloridas no corpo do resistor. As primeiras trs faixas servem para indicar o valor nominal de sua resistncia e a ltima faixa, a porcentagem na qual a resistncia pode variar seu valor nominal (tolerncia). Para encontrar a resistncia de um resistor e sua tolerncia, usa-se a equao e a tabela abaixo: Restistncia = (10*faixa 1 + faixa 2) * 10^(faixa 3) % de tolerncia
16

Obs. 1: Na faixa 3, so permitidos valores somente at 7, o dourado passa a valer -1 e o prateado -2. Obs. 2: A ausncia de uma quarta faixa, indica uma tolerncia de 20%.

Tabela 2. Cores e valores das faixas de resistores

Alguns websites disponibilizam uma pgina que podemos inserir as cores de um resistor (em sua devida ordem) e ele nos mostra qual a resistncia imposta por ele.

Figura 17. Pgina da web <http://www.areaseg.com/sinais/resistores.html>

17

6. Ambiente de Desenvolvimento Arduino


O ambiente de desenvolvimento Arduino contm um editor de texto para a escrita de cdigo, uma rea de mensagens, um console de texto, uma barra de ferramentas com botes para variadas funes, e uma srie de menus. Ele se conecta ao hardware do Arduino, permitindo o upload de programas e a comunicao com eles. Os programas escritos usando Arduino so chamados sketches. Essas sketches so escritas no editor de texto, e so salvas com a extenso de arquivo.ino. Elas permitem funcionalidades como recortar/colar e procurar/substituir texto. Na rea de mensagem, temos retorno de aes como salvar e exportar, alm da exibio de erros. O console mostra a sada de texto do Arduino, incluindo mensagens de erro completas e outras informaes. O canto inferior direito mostra a board atual e a portal serial. Os botes da barra de ferramentas permitem que voc verifique e faa upload de programas, crie, abra e salve sketches, e abra o monitor serial.

Figura 18: Ambiente de desenvolvimento (IDE) do Arduino.

18

Principais comandos disponveis atravs dos botes:

(a) Verify: Verifica se o cdigo contm erros.

(b) Upload: Compila o cdigo a faz o upload para o Arduino.

(c) New: Cria uma nova sketch.

(d) Open: Exibe um menu com todas as sketches no seu sketchbook. Ao clicar em uma, a mesma ser aberta na janela atual.

(e) Save: Salva sua sketch.

(f) Serial Monitor: Abre o monitor serial.

Comandos adicionais so encontrados atravs dos menus: File, Edit, Sketch, Tools, Help. As funes disponveis pelos menus File, Edit e Help so semelhantes a outros programas bem conhecidos e, por isso, no iremos detalh-las aqui. menu Sketch Verify/Compile - Verica se seu cdigo tem erros Import Library - Adiciona bibliotecas ao seu programa Show sketchfolder - Abre a pasta onde o programa est salvo Add File... - Adiciona um arquivo fonte ao programa. O novo arquivo aparece em uma nova aba

menu Tools Auto format - Formata o cdigo para uma melhor leitura, alinhando as chaves e indentando seu contedo. Board - Seleciona o kit de desenvolvimento onde se deseja realizar o projeto. Serial Port - Mostra todas as portas seriais que o computador possui. Burn Bootloader - Permite gravar um bootloader no kit de desenvolvimento do Arduino.
19

7. Programando para o Arduino: Conceitos e Sintaxe da Linguagem de Programao


A plataforma de implementao dos programas em Arduino baseada nas linguagens C/C++, preservando sua sintaxe na declarao de variveis, na utilizao de operadores, na manipulao de vetores, na conservao de estruturas, bem como uma linguagem sensvel ao caso (case-sensitive) Contudo, ao invs de uma funo main( ), o Arduino necessita de duas funes elementares: setup( ) e loop( ).

7.1 Setup e Loop Pode-se dizer que todo cdigo criado para o Arduino deve obrigatoriamente possuir duas funes para que o programa funcione corretamente: a funo setup( ) e a funo loop( ). Essas duas funes no utilizam parmetros de entrada e so declaradas como void. No necessrio invocar a funo setup() ou a funo loop(). Ao compilar um programa para o Arduino, o compilador ir, automaticamente, inserir uma funo main que invocar ambas as funes. setup( ) A funo setup utilizada para inicializar variveis, configurar o modo dos pinos e incluir bibliotecas. Esta funo executada automaticamente uma nica vez, assim que o kit Arduino ligado ou resetado. Sintaxe: void setup() { . : }

loop( ) A funo loop faz exatamente o que seu nome sugere: entra em looping (executa sempre o mesmo bloco de cdigo), permitindo ao seu programa executar as operaes que esto dentro desta funo. A funo loop( ) deve ser declarada aps a funo setup( ) Sintaxe: void loop() { . : }

20

7.2 HIGH e LOW Quando estamos lendo ou escrevendo em um pino digital h apenas dois valores que um pino pode ter: HIGH (alto) e LOW (baixo). HIGH O significado de HIGH (em referncia a um pino) pode variar um pouco dependendo se este pino uma entrada (INPUT) ou sada (OUTPUT). Quando um pino configurado como INPUT com a funo pinMode, e lido com a funo digitalRead, o micro controlador considera como HIGH se a voltagem for de 3 Volts ou mais. Um pino tambm pode ser configurado como um INPUT com o pinMode, e posteriormente receber um HIGH com um digitalWrite, isto vai levantar o resistor interno de 20 KOhms que vai manter a leitura do pino como HIGH a no ser que ela seja alterada para LOW por um circuito externo. Quando um pino configurado como OUTPUT com o pinMode, e marcado como HIGH com o digitalWrite, ele est a 5 Volts. Neste estado ele pode enviar corrente para, por exemplo, acender um LED que est conectado com um resistor em srie ao terra, ou a outro pino configurado como OUTPUT e marcado como LOW. LOW O significado de LOW tambm pode variar dependendo do pino ser marcado como INPUT ou OUTPUT. Quando um pino configurado como INPUT com a funo pinMode, e lido com a funo digitalRead, o micro controlador considera como LOW se a voltagem for de 2 Volts ou menos. Quando um pino configurado como OUTPUT com a funo pinMode, e marcado como LOW com a funo digitalWrite, ele est a 0 Volts. Neste estado ele pode drenar corrente para, por exemplo, acender um LED que est conectado com um resistor em srie ao +5 Volts, ou a outro pino configurado como OUTPUT e marcado como HIGH.

7.3 INPUT e OUTPUT Pinos digitais podem ser tanto de INPUT como de OUTPUT. Mudar um pino de INPUT para OUTPUT com pinMode() muda drasticamente o seu comportamento eltrico. INPUT Os pinos do Arduino (Atmega) configurados como INPUT com a funo pinMode() esto em um estado de alta impedncia. Pinos de entrada so vlidos para ler um sensor, mas no para energizar um LED. OUTPUT Pinos configurados como OUTPUT com a funo pinMode() esto em um estado de baixa impedncia. Isto significa que eles podem fornecer grandes quantidades de corrente para outros circuitos. Os pinos do Atmega podem fornecer corrente positiva ou drenar corrente negativa at 40 mA (milliamperes)
21

de/para outros dispositivos ou circuitos. Isto faz com que eles sejam teis para energizar um LED mas disfuncionais para a leitura de sensores. Pinos configurados como OUTPUT tambm podem ser danificados ou destrudos por curto-circuitos com o terra ou com outros pontos de 5 Volts. A quantidade de corrente fornecida por um pino do Atmega tambm no suficiente para ativar muitos rels e motores e, neste caso, algum circuito de interface ser necessrio.

7.4 Funes 7.4.1 Funes de Entrada e Sada Digital pinMode( ) Configura o pino especificado para que se comporte ou como uma entrada ou uma sada. Deve-se informar o nmero do pino que se deseja configurar e em seguida, se o pino ser determinado como uma entrada(INPUT) ou uma sada(OUTPUT). Sintaxe: pinMode(pino, modo); digitalWrite( ) Escreve um valor HIGH ou LOW em um pino digital. Se o pino foi configurado como uma sada, sua voltagem ser determinada ao valor correspondente: 5V para HIGH e 0V para LOW. Se o pino est configurado como uma entrada, HIGH levantar o resistor interno de 20KOhms e LOW rebaixar o resistor. Sintaxe: digitalWrite(pino, valor); digitalRead( ) L o valor de um pino digital especificado e retorna um valor HIGH ou LOW. Sintaxe: Int digitalRead(pino);
/* Exemplo de funo sobre de Entrada e Sada Digital */ int ledPin = 13; // LED conectado ao pino digital 13 int bot = 7; // boto conectado ao pino digital 7 int val = 0; // varivel para armazenar o valor lido void setup() { pinMode(ledPin, OUTPUT); // seta o pino digital 13 como uma sada pinMode(bot, INPUT); // seta o pino digital 7 como uma entrada } void loop() { val = digitalRead(bot); // l o pino de entrada digitalWrite(ledPin, val); // acende o LED de acordo com o boto 22

Essa funo transfere para o pino 13, o valor lido no pino 7 que uma entrada. 7.4.2 Funes de Entrada e Sada Analgica analogWrite( ) - PWM Pulse Width Modulation ou Modulao por Largura de Pulso (MLP) um mtodo para obter resultados analgicos com meios digitais. Essa funo basicamente escreve um sinal analgico. Ela pode ser usada para acender um LED variando o seu brilho, ou girar um motor com velocidade varivel. Depois de realizar um analogWrite( ), o pino gera uma onda quadrada estvel com o ciclo de rendimento especificado at que um analogWrite( ), um digitalRead( ) ou um digitalWrite( ) seja usado no mesmo pino. Em kits Arduino com o chip ATmega168, esta funo est disponvel nos pinos 3,5,6,9,10 e 11. Kits Arduino mais antigos com um ATmega8 suportam o analogWrite( ) apenas nos pinos 9,10 e 11. As sadas PWM geradas pelos pinos 5 e 6 tero rendimento de ciclo acima do esperado. Isto se deve s interaes com as funes millis( ) e delay( ), que compartilham o mesmo temporizador interno usado para gerar as sadas PWM. Para usar esta funo deve-se informar o pino ao qual deseja escrever e em seguida informar um valor entre 0 (pino sempre desligado) e 255 (pino sempre ligado). Sintaxe: analogWrite(pino, valor); analogRead( ) L o valor de um pino analgico especificado. O kit Arduino contm um conversor analgico-digital de 10 bits com 6 canais. Com isto ele pode mapear voltagens de entrada entre 0 e 5 Volts para valores inteiros entre 0 e 1023. Isto permite uma resoluo entre leituras de 5 Volts / 1024 unidades ou 0,0049 Volts (4.9 mV) por unidade Sintaxe: int analogRead(pino);
/* Exemplo de funo sobre Entrada e Sada Analgica */ int ledPin = 9; // LED conectado ao pino digital 9 int analogPin = 3; // potencimetro conectado ao pino analgico 3 int val = 0; // varivel para armazenar o valor lido void setup() { pinMode(ledPin, OUTPUT); // pr-determina o pino como sada } void loop() { val = analogRead(analogPin); // l o pino de entrada analogWrite(ledPin, val/4); // }

Torna o brilho de um LED proporcional ao valor lido em um potencimetro.

23

7.4.3 Tempo millis( ) Retorna o nmero de milisegundos desde que o kit Arduino comeou a executar o programa. Este nmero extrapolar (voltar a zero) depois de aproximadamente 50 dias. Sintaxe: unsigned long tempo; void loop { . : tempo = millis() } delay( ) Suspende a execuo do programa pelo tempo (em milisegundos) especificado. Em um segundo h 1.000 milisegundos. Sintaxe: delay(tempo);

7.4.4 Comunicao serial Serial.begin( ) Ajusta o taxa de transferncia em bits por segundo para uma transmisso de dados pelo padro serial. Para comunicao com um computador use uma destas taxas: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 57600, 115200. Pode-se, entretanto, especificar outras velocidades por exemplo, para comunicao atravs dos pinos 0 e 1 com um componente que requer uma taxa especfica. Sintaxe: Serial.begin(taxa);
/* Este programa mostra uma aplicao das funes millis( ) e delay( ) e Comunicao Serial */ unsigned long time; void setup() { Int Time = 0; // varivel Serial.begin(9600); // ajusta a taxa de transferncia } void loop() { Serial.print("O tempo eh: "); //imprime O tempo eh: na tela Time = millis(); // varivel Time guarda o valor retornado por millis() Serial.println(time); //imprime o tempo desde que o programa comeou delay(1000); // espera 1 segundo } 24

REFERNCIAS BIBLIOGRFICAS
Ambiente de Desenvolvimento Arduino Descrio do Funcionamento de uma Protoboard Programando para o Arduino: Conceitos e Sintaxe da Linguagem de Programao

http://lscad.facom.ufms.br/wiki/index.php/Downloads
http://arduino.cc/ http://en.wikipedia.org/wiki/Breadboard

Responsveis: Riccieli Minakawa, Luiz Eduardo Tiosso, Wellington Oliveira dos Santos, Lucas Tsutsui da Silva
Introduo Modelos de Arduino Resistores http://www.sabereletronica.com.br/secoes/leitura/1307 http://arduino.cc/en/Guide/Environment http://www.garotascpbr.com.br/2011/10/04/introducao-ao-arduinoprimeira-parte/ http://projeto39.wordpress.com/o-arduino/ http://www.arduino.cc/ http://pt.wikipedia.org/wiki/Arduino http://www.labdegaragem.com.br/wiki/index.php?title=Qual_Arduino_%C3 %A9_o_certo_para_mim%3F http://4.bp.blogspot.com/_pGsJFsc5Buc/TNePByaIHGI/AAAAAAAAA1w/q2Dt WB-DynU/s1600/Arduino+Uno+Unboxing.JPG https://sites.google.com/site/marceloboeirajr/tutoriais/eletronicasenai/arduino/hardware/1-3-tipos-de-arduino http://www.electronica-pt.com/ http://leandrocodorna.vilabol.uol.com.br/segunda.html http://pt.wikipedia.org/wiki/Resistor http://www.feiradeciencias.com.br/ http://www.sabereletronica.com.br/ http://brasilrobotics.blogspot.com.br/2011/02/pisca-led-o-primeiroexemplo-para.html

Responsveis: Jefferson Rios, Rodrigo Santiago, Angelo Maggioni e Paulo Tiene


Arduino Mega

http://lscad.facom.ufms.br/wiki/index.php/Downloads Responsveis: Lucas Rodrigues, Eliseu Sartori, Bruno Gouveia

25