Tut Arduino

  • View
    494

  • Download
    0

Embed Size (px)

Transcript

Universidade Federal Fluminense Centro Tecnologico Escola de Engenharia Curso de Engenharia de Telecomunica oes c Programa de Educa ao Tutorial c

Apostila Arduino

Autores: Erika Guimaraes Pereira da Fonseca Mathyan Motta Beppu Orientador: Prof. Alexandre Santos de la Vega Niteroi-RJ Dezembro / 2010

Sumrio a1 Introduo ao Arduino ca 2 Caracter sticas do Duemilanove 2.1 Caracter sticas . . . . . . . . . . . 2.2 Alimentao . . . . . . . . . . . . . ca 2.3 Memria . . . . . . . . . . . . . . . o 2.4 Entrada e Sa . . . . . . . . . . . da 2.5 Comunicao . . . . . . . . . . . . ca 2.6 Programaao . . . . . . . . . . . . c 2.7 Reset Automtico . . . . . . . . . . a 2.8 Proteo contra sobrecorrente USB ca 2 4 4 4 5 5 6 6 6 7 8 8 9 10

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

3 Referncias da linguagem usada na programao e ca 3.1 Linguaguem de referncia . . . . . . . . . . . . . e 3.2 Funoes . . . . . . . . . . . . . . . . . . . . . . . c 3.3 Bibliotecas . . . . . . . . . . . . . . . . . . . . . .

do Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Instalao da IDE e suas bibliotecas ca 12 4.1 Arduino para Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2 Arduino para GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5 Desenvolvimento 5.1 Exemplo 1 . . 5.2 Exemplo 2 . . 5.3 Exemplo 3 . . 5.4 Exemplo 4 . . de . . . . . . . . Projetos . . . . . . . . . . . . . . . . . . . . . . . . 14 14 16 18 20 22

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

6 Referncias Bibliogrcas e a

1

Cap tulo 1 Introduo ao Arduino caO Arduino faz parte do conceito de hardware e software livre e est aberto para uso e contribuia ao de toda sociedade. O conceito Arduino surgiu na Itlia em 2005 com o objetivo de criar um c a dispositivo para controlar projetos/prottipos constru o dos de uma forma menos dispendiosa do que outros sistemas dispon veis no mercado. Arduino uma plataforma de computao f e ca sica (so sistemas digitais ligados a sensores e a atuadores, que permitem construir sistemas que percebam a realidade e respondem com aoes c f sicas), baseada em uma simples placa de Entrada/Sa microcontrolada e desenvolvida sobre da uma biblioteca que simplica a escrita da programaao em C/C++. O Arduino pode ser usado c para desenvolver artefatos interativos stand-alone ou conectados ao computador atravs de e Adobe Flash, Processing, Max/MSP, Pure Data ou SuperCollider. Um microcontrolador (tambm denominado MCU) um computador em um chip, que cone e tm processador, memria e perifricos de entrada/sa e o e da. E um microprocessador que pode ser programado para funoes espec c cas, em contraste com outros microprocessadores de propsito o geral (como os utilizados nos PCs). Eles so embarcados no interior de algum outro dispositivo, a no nosso caso o Arduino, para que possam controlar suas funes ou aoes. co c E um kit de desenvolvimento capaz de interpretar variveis no ambiente e transform-las em a a sinal eltrico correspondente, atravs de sensores ligados aos seus terminais de entrada, e atuar e e no controle ou acionamento de algum outro elemento eletro-eletrnico conectado ao terminal o de sa da. Ou seja, uma ferramenta de controle de entrada e sa de dados, que pode ser e da acionada por um sensor (por exemplo um resistor dependente da luz - LDR) e que, logo aps o passar por uma etapa de processamento, o microcontrolador, poder acionar um atuador (um a motor por exemplo). Como podem perceber, como um computador, que tm como sensores e e de entrada como o mouse e o teclado, e de sa da, impressoras e caixas de som, por exemplo, s que ele faz interface com circuitos eltricos, podendo receber ou enviar informaoes/tenses o e c o neles. Para um melhor entendimento, abaixo na gura 1 poss identicar os elementos princie vel pais do circuito atravs de diagrama em blocos. e

Figura 1.1: Diagrama de Blocos

2

O Arduino baseado em um microcontrolador (Atmega), e dessa forma logicamente proe e gramvel, ou seja, poss a criaao de programas, utilizando uma linguagem prpria baseada a e vel c o em C/C++, que, quando implementadas fazem com que o hardware execute certas aoes. Dessa c forma, estamos congurando a etapa de processamento. O grande diferencial desta ferramenta que ela desenvolvida e aperfeioada por uma e e c comunidade que divulga os seus projetos e seus cdigos de aplicaao, pois a concepao dela o c c e open-source, ou seja, qualquer pessoa com conhecimento de programaao pode modic-lo e c a ampli-lo de acordo com a necessidade, visando sempre a melhoria dos produtos que possam a ser criados aplicando o Arduino. Ele foi projetado com a nalidade de ser de fcil entendimento, programaao e aplicaa c ao, alm de ser multiplataforma, ou seja, podemos congura-lo em ambientes Windows, c e GNU/Linux e Mac OS. Assim sendo, pode ser perfeitamente utilizado como ferramenta educacional sem se preocupar que o usurio tenha um conhecimento espec a co de eletrnica, mas pelo o fato de ter o seu esquema e software de programaao open-source, acabou chamando a atenao c c dos tcnicos de eletrnica, que comearam a aperfeio-la e a criar aplicaoes mais complexas. e o c c a c

3

Cap tulo 2 Caracter sticas do DuemilanoveO Arduino Duemilanove (2009 em italiano) uma placa baseada no microcontrolador ATe mega168 ou ATmega328. Tem 14 pinos de entrada ou sa digital (dos quais 6 podem ser da utilizados como sa das PWM), 6 entradas analgicas, um oscilador de cristal 16 MHz, controo lador USB, uma tomada de alimentaao, um conector ICSP, e um boto de reset. Para sua c a utilizaao basta conect-lo a um computador com um cabo USB ou lig-lo com um adaptador c a a AC para DC ou bateria.

2.1

Caracter sticas

Microcontrolador ATmega328 ou ATmega168 Tenso operacional a 5V Tenso de alimentaao (recomendada) a c 7-12 V Tenso de alimentaao (limites) a c 6-20 V Pinos I/O digitais 14 (dos quais 6 podem ser Sa das PWM) Pinos de entrada analgica o 6 Corrente cont nua por pino I/O 40 mA Corrente cont nua para o pino 3.3 V 50 mA Memria ash o 32 KB (2KB usados para o bootloader) / 16KB SRAM 2 KB EEPROM 1 KB Frequncia de clock e 16 MHz Tabela com as caracter sticas bsicas do arduino Duemilanove. a

2.2

Alimentao ca

O Arduino Duemilanove pode ser alimentado pela conexo USB ou por qualquer fonte de a alimentao externa. A fonte de alimentao selecionada automaticamente. ca ca e A alimentao externa (no-USB) pode ser tanto de uma fonte ou de uma bateria. A fonte ca a pode ser conectada com um plug de 2,1 mm (centro positivo) no conector de alimentaao. c Cabos vindos de uma bateria podem ser inseridos nos pinos GND (terra) e Vin (entrada de tenso) do conector de alimentao. a ca A placa pode operar com uma alimentao externa de 6 a 20 V. Entretanto, se a alimentaao ca c for inferior a 7 V o pino 5 V pode fornecer menos de 5 V e a placa pode car instvel. Se a a alimentao for superior a 12 V o regulador de tenso pode superaquecer e avariar a placa. A ca a alimentao recomendada de 7 a 12 V. ca e

4

Os pinos de alimentaao so: c a Vin : entrada de alimentaao para a placa Arduino quando uma fonte externa for utilizada. c Voc pode fornecer alimentaao por este pino ou, se usar o conector de alimentaao, e c c acessar a alimentaao por este pino; c 5 V: A fonte de alimentao utilizada para o microcontrolador e para outros componentes ca da placa. Pode ser proveniente do pino Vin atravs de um regulador on-board ou ser e fornecida pelo USB ou outra fonte de 5 V; 3 V3: alimentaao de 3,3 V fornecida pelo circuito integrado FTDI (controlador USB). A c corrente mxima de 50 mA; a e GND (ground): pino terra.

2.3

Memria o

O ATmega328 tem 32 KB de memria ash (onde armazenado o software), alm de 2 KB o e e de SRAM (onde cam as variveis) e 1 KB of EEPROM (esta ultima pode ser lida e escrita a atravs da biblioteca EEPROM e guarda os dados permanentemente, mesmo que desliguemos e a placa). A memria SRAM apagada toda vez que desligamos o circuito. o e

2.4

Entrada e Sa da

Cada um dos 14 pinos digitais do Duemilanove pode ser usado como entrada ou sa usando da as funes de pinMode(), digitalWrite(), e digitalRead(). Eles operam com 5 V. co Cada pino pode fornecer ou receber um mximo de 40 mA e tem um resistor pull-up interno a (desconectado por padro) de 20-50 k. Alm disso, alguns pinos tm funoes especializadas: a e e c Serial: 0 (RX) e 1 (TX). Usados para receber (RX) e transmitir (TX) dados seriais TTL. Estes pinos so conectados aos pinos correspondentes do chip serial FTDI USB-to-TTL. a PWM: 3, 5, 6, 9, 10, e 11. Fornecem uma sa analgica PWM de 8-bit com a funao da o c analogWrite(). SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estes pinos suportam comunicao SPI, ca que embora compat com o hardware, no est inclu na linguagem do Arduino. vel a a da LE