manual umr arduino

23
INICIANDO EM MICROCONTROLADORES R botic ROBÓTICA EDUCACIONAL www.robotic.com.br

Upload: edilson-cardoso

Post on 25-Jul-2015

137 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Manual Umr Arduino

INICIANDO EM MICROCONTROLADORES

R botic

ROBÓTICA EDUCACIONAL

www.robotic.com.br

Page 2: Manual Umr Arduino

Ultrasom

Placa Shield ArduinoNavigator

UNIDADE MÓVEL ROBOTIC

Servos

Sensor de Trilha

Arduino Atmega 328

Expansor de I/O

Page 3: Manual Umr Arduino

Arduino Duemilanove Atmega 328

O Arduino é uma placa simples que contém tudo o que você precisa para começar a

trabalhar com eletrônica e programação de microcontroladores. Este diagrama ilustra os

principais componentes da placa

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 4: Manual Umr Arduino

Arduino Duemilanove Atmega328

Resumo

Os pinos de alimentação são os seguintes:

VIN.

5V.

3V3.

Ground pinos

Memória

Entrada e Saída

O Arduino Duemilanove é uma placa baseada no microcontrolador Atmega328.

Tem 14 pinos de entrada e saida digital (dos quais 6 podem ser utilizados como saídasPWM), 6 entradas analógicas. (Com a biblioteca Mega Servos pode se ligar servos em qualquer saida digital).

Microcontrolador ATmega328Tensão 5VTensão de entrada (recomendado) 7-12VTensão de entrada (limites) 6-20VDigital pinos de I / O 14 (dos quais 6 oferecem saída PWM)Analog Input Pins 6DC atual por I / O Pin 40 mACorrente DC 3.3V para Pin 50 mAMemória Flash 32 KB de que 2 KB utilizado pelobootloader SRAM 2 KBEEPROM 1 KBA velocidade do clock 16 MHz

O Duemilanove pode ser alimentado através da conexão USB ou com fonte de alimentação externa,

A fonte de energia é selecionado automaticamente.

A tensão de entrada para a placa Arduino, quando se está usando uma fonte externa de energia(ao contrário de 5 volts a partir da conexão USB). Você pode fornecer a tensão através desse pino.

A fonte de alimentação regulada usada para alimentar o microcontrolador e outros componentes na placa.Isto pode vir tanto de VIN através de um regulador de bordo, ou seja alimentado por USB ou outra fonte de 5Vregulados.

é gerada pelo chip FTDI-on. Máximo consumo de corrente é de 50 mA.

GND..

O ATmega168 tem 16 KB de memória flash para armazenar o código (de 2 KB que é usado para o gerenciadorde inicialização).

ATmega328 tem 32 KB, (também com 2 KB utilizado para obootloader). O ATmega168 tem 1 KB de SRAM e 512 bytes deEEPROM (que pode ser lido e escrito com a biblioteca EEPROM ), oATmega328 tem 2 KB de SRAM e 1 KB de EEPROM.

Cada um dos 14 pinos digital no Duemilanove pode ser usado comouma entrada ou saída, usando pinMode () , digitalWrite () , edigitalRead () funções. Eles operam em 5 volts. Cada pino podefornecer ou receber um máximo de 40 mA e tem um resistor pull-upinterno (desligado por padrão) de 20-50 kOhms.

"Duemilanove" significa emitaliano 2009 foi nomeado após o ano de seu lançamento. O Duemilanove é o último de uma série deplacas Arduino USB.

Arduinoadaptador AC para DC ou bateria (7-12v). O plug do adaptador 2,1 mm com centro-positivo.

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 5: Manual Umr Arduino

Pinos com funções específicas:

Serial: 0 (RX) e 1 (TX).

Interrupções externas: 2 e 3.

PWM: 3, 5, 6, 9, 10 e 11.

LED: 13.

Usado para receber (RX) e transmitir (TX TTL série de dados). Esses pinos são ligadosaos pinos correspondentes do chip FTDI USB-to-TTL Serial.

Estes pinos podem ser configurados para disparar uma interrupção em umvalor baixo, um aumento ou diminuição de ponta, ou uma alteração no valor. (Veja a função attachInterrupt )

Pinos de saída PWM

Há um built-in LED conectado ao pino digital 13.Quando o pino está em valor alto , o LED está ligado, quando o pino é baixo, ele está desligado

O Duemilanove tem 6 entradas analógicas, cada uma das quaisfornecem 10 bits de resolução (ou seja, 1.024 valores diferentes).Por padrão, elas medem do GND para 5 volts, mas é possívelmudar a extremidade superior de sua escala com o pino AREF eanalogReference () função.

AREF.

Reset.

Comunicação

Programação

Tensão de referência para as entradas analógicas. Usado com analogReference ().

Traga esta linha baixa para redefinir o microcontrolador. Tipicamente usado para adicionar um botãode reset de escudos.

O Duemilanove tem uma série de facilidades para se comunicar com um computador, outro Arduino, ou outrosmicrocontroladores. O ATmega168 e ATmega328 fornecer UART TTL (5V), comunicação serial,que está disponível nos pinos digitais 0 (RX) e 1 (TX). Um FT232RL FTDI os canais de comunicaçãoserial de USB e os drivers FTDI (incluído com o software Arduino) oferecem uma porta virtual com o software nocomputador. O software inclui um monitor Arduino serial que permite que dados simples de texto a ser enviadoe da placa Arduino. O RX e TX LEDs na placa pisca quando dados estão sendo transmitidos através do chipFTDI e conexão USB para o computador (mas não para comunicação serial nos pinos 0 e 1).

A biblioteca Software Serial permite a comunicação serial em qualquer um dos pinos digitais do Duemilanove o.O apoio também ATmega328 I2C (TWI) e comunicação SPI.

O software inclui uma biblioteca Arduino Wire para simplificar o uso do barramento I2C, veja a documentaçãopara mais detalhes. Para usar a comunicação SPI, consulte o datasheet ou ATmega328

O Duemilanove pode ser programado com o software IDE Arduino. Selecione "Arduino Duemilanove Atmega328no menu Ferramentas (de acordo com o microcontrolador na placa).

O Arduino ATmega328 vem com um gerenciador (BOOTLOADER) que permite que você façao upload do novo código para ele sem a utilização de um programador de hardware externo.

Ele se comunica utilizando o protocolo STK500 original ( de referência , arquivos de cabeçalho C ).Você também pode ignorar o bootloader e programar o microcontrolador através do ICSP(In-Circuit Serial Programming),

O Duemilanove tem um polyfuse resettable que protege as portas USB do seu computadora partir de shorts e sobrecorrente. Embora a maioria dos computadores fornecem sua própria proteção

Duemilanove

Arduino

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 6: Manual Umr Arduino

Instalando o Programa

1 Faça o download do ambiente de desenvolvimento do Arduino em: www.robotic.com.br

Ao conectar a Placa Arduino na Porta USB e caso for solicitado drives localize os drivers USB

Para programar uma placa Arduino você precisa do ambiente de desenvolvimento.

Quando o download terminar descompacte (unzip) os arquivos. Certifique-se de preservar a estrutura das pastas.Abra a pasta. Dentro você vai encontrar alguns arquivos e sub-pastas. O aplicativo “Arduino” é seu programaambiente de desenvolvimento.

2para o chip FTDI da placa na pasta da distribuição do Arduino.drivers/FTDI USB Drivers

Certifique-se que o "Arduino Duemilanove Atmega 328 " está selecionado em: Tools > Board

Configurando:

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 7: Manual Umr Arduino

Escolhendo a Porta Serial Tools | Serial Port.Selecione a porta serial menu No Windows deveria ser:COM3, COM4 ou COM5 para uma placa USB. Para descobrir qual é abra o Gerenciador de Dispositivos doWindows (na aba Hardware do painel de controle do sistema). Procure por "USB Serial Port" na seção de Portas;

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 8: Manual Umr Arduino

Os programas em Arduino podem ser divididos em três partes principais: estrutura, valores (variáveis e constantes)e funções. A linguagem Arduino é baseada em C/C++.

)

Estrutura

Estruturas de controle

Elementos de sintaxe

Operadores aritméticos

Operadores de comparação

Operadores booleanos

* void setup ()* void loop ()

* if* if...else* for* switch case* while* do... while* break* continue* return* goto

* ; (ponto e vírgula)* {} (chaves)* // (linha de comentário)* /* */ (bloco de comentário)* #define* #include

* = (igualdade)* + (adição)* - (subtração)* * (multiplicação)* / (divisão)* % (resto da divisão

* == (igual a)* != (diferente de)* < (menor que)* > (maior que)* <= (menor ou igual a)* >= (maior ou igual a)

* && (e)* || (ou)* ! (Não)

Obs: As referencias da linguágem de programação do arduino voce pode ver no site:http://arduino.cc/en/Reference/HomePage

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 9: Manual Umr Arduino

Operadores de bits

Operadores compostos

Variáveis

Constantes

Tipos de dados

Variáveis podem ser de vários tipos:

Conversão

* & (operador de bits AND)* | (operador de bits OR)* ^ (operador de bits XOR)* ~ (operador de bits NOT)* << (desvio à esquerda)* >> (desvio à direita)

* &=(de bits composto AND)* |=(de bits composto OR)

* ++ (incrementar)* -- (decrementar)* += (adição composta)* -= (subtração composta)* *= (multiplicação composta)* /= (divisão composta)

Variáveis são expressões que você pode usar em programas para armazenar valores como a leitura de umsensor em um pino analógico.

Constantes são valores particulares com significados específicos.

* HIGH | LOW* INPUT | OUTPUT* true | false* Constantes inteiras

* boolean* char* byte* int* unsigned int* long* unsigned long* float* double* string* array* void

* char()* byte()* int()* long()* float()

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 10: Manual Umr Arduino

ConectorServo 2

ConectorServo 1

Sinal de Controledo Servo 2 - Ligar paraos pinos digitais do Arduino

ConectorSensor de Trilha

Ativa e Desativa os Emissoresde Infravermelho

Conector p/ Ultrasom

Pino TRIG do ultrasom

Pino ECHO do ultrasom

ConectorSensoresEsquerdoCentralDireitodo sensorde linha

Sinal de controle dosensor infravermelhoesquerdo e direito

Conectores para outrosservos ou sensores

Emissor de infravermelhodireito (IR-D)

Módulo de Controle Remoto38Khz

Arduino Shield Navigation

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 11: Manual Umr Arduino

Ligando um servo motor

Ligue um fio jumperpara um dos pinos digitaisdo arduino P0 - P13

Shield Arduino Navigation

PROGRAMA EXEMPLO// Sweep// by BARRAGAN <http://barraganstudio.com>//

#include < >

myservo; // criar objeto servo para controlar um servo// Um máximo de oito objetos servo pode ser criado

pos = 0; // variável para armazenar a posição do servo

p(){myservo (9); // servo ligado no pino 9.

}

loop(){

(pos = 0; pos < 180; pos += 1) // vai de 0 a 180 graus, incrementa com passos de 1{myservo. (pos); // diz ao servo para ir para a posição da variável 'POS'

(15); // aguarda 15ms para o servo para chegar à posição}

(pos = 180; pos>=1; pos-=1) // vai de 180 a 0 graus{myservo. (pos); //

(15); //}

}

Este exemplo de código é de domínio público.

diz ao servo para ir para a posição da variável 'POS'aguarda 15ms para o servo para chegar à posição

Servo.h

Servo

int

void setu

.attach

void

for

writedelay

for

writedelay

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 12: Manual Umr Arduino

NAVEGAÇÃO COM INFRAVERMELHO

Conecte o jumperpara ligar o emissorde infravermelho

Shield Arduino Navigation

Conecte o cabo jumper do IR-D ao pin 7 e IR-Epara o pino 6 do arduino

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 13: Manual Umr Arduino

#include <MegaServo.h> //Inclue a biblioteca MegaServos#define NBR_SERVOS 12 // Numero de Servos. Maximo de 48 arduino MEGA, 12 para outros arduinos#define FIRST_SERVO_PIN 8MegaServo Servos[NBR_SERVOS] ;

motor_d = 9;motor_e = 10;ir_receptor_d = 7;ir_receptor_e = 6;status_d; // variavel para quardar o valor no ir receptor direitostatus_e;

//int status_c; //status para comparar a distancia

(){Servos[1]. (motor_d,880,2400) ;Servos[2]. (motor_e,880,2400) ;

(ir_receptor_d,INPUT);(ir_receptor_e,INPUT);

para();}

() {

status_d = (ir_receptor_d); //verifica cada sensor e guarda seu statusstatus_e = (ir_receptor_e);

(status_d == and status_e== ){frente();}(status_d == and status_e== ){para();}(status_d == and status_e== ){direita();}(status_d == and status_e== ){esquerda();}}

frente(){Servos[1]. (180) ;Servos[2]. (0) ;

(15); }

para() {Servos[1]. (70) ;Servos[2]. (70) ;

(300); }

direita() {Servos[1]. (0);Servos[2]. (0);

(30);}

esquerda() {Servos[1]. (180);Servos[2]. (180);

(30); }

intintintintintint

voidattachattach

pinModepinMode

void

digitalReaddigitalRead

ifififif

void

writewrite

delay

voidwritewrite

delay

voidwritewrite

delay

voidwritewrite

delay

setup

loop

HIGH HIGHLOW LOWHIGH LOWLOW HIGH

PROGRAMA PARA NAVEGAÇÃO COM INFRAVERMELHO

//Servo motor direito no pin 9//servo motor esquerdo pin 10//IR-D pin 7// IR-E pin 6

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 14: Manual Umr Arduino

Navegando com Ultrasom

Conecte o sensor deultrasom

Ligue um fio JUMPER do TRIG aoP6 do arduino e ECHO ao P7

Ligue um fio jumperpara um dos pinos digitaisdo arduino P0 - P13

Ligue o servo do sonar no pino 8 do arduinoLigue o servo esquerdo no pino 9Ligue o servo direito no pino 10

Ligue o TRIG ao pin 6Ligue o ECHO ao pin 7

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 15: Manual Umr Arduino

PROGRAMA DE NAVEGAÇÃO COM ULTRASOM

#include <MegaServo.h> //Inclue a biblioteca MegaServos#define NBR_SERVOS 12 // Numero de Servos ligados. Maximo de 48 arduino MEGA, 12 para outros arduinos#define FIRST_SERVO_PIN 8MegaServo Servos[NBR_SERVOS] ;

cm;st;trig = 6;echo = 7;

microseconds;

() {st=2;

(trig, OUTPUT);(echo, INPUT);

Servos[1]. (8,880,2400);Servos[2]. (9,880,2400);Servos[3]. (10,880,2400);Servos[1]. (90);Servos[2]. (70); //enviando um ângulo de 70 graus os servos paramServos[3]. (70);

(5000);}

() {

duration, cm;(trig, LOW);

(2);(trig, HIGH);

(10);(trig, LOW);

(2);

duration = (echo, HIGH);cm = microsecondsToCentimeters(duration);

(cm > 25 and st==1){alinha();}(cm <= 25 and st==1){Sonar2();}(cm <= 25 and st==2){pare();}(cm > 25 and st==2){frente();}(cm > 25 and st==3){frente();}(cm <= 25 and st==3){alinha2();}

}microsecondsToCentimeters(long microseconds) { return microseconds / 29 / 2;}

intintintintlong

void setup

pinModepinMode

attachattachattachwritewritewrite

delay

void loop

longdigitalWritedelayMicrosecondsdigitalWritedelayMicrosecondsdigitalWritedelayMicroseconds

pulseIn

ifififififif

long

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 16: Manual Umr Arduino

PROGRAMA DE NAVEGAÇÃO COM ULTRASOM - CONTINUAÇÃO

voidwritewriteMicrosecondswriteMicroseconds

delay

voidwritewrite

delay

voidwrite

delay

voidwrite

delay

voidwrite

forwriteMicrosecondswriteMicroseconds

delay

voidwrite

forwriteMicrosecondswriteMicroseconds

delay

frente() {Servos[1]. (90);Servos[2]. (1000);Servos[3]. (2000);

(15); }

pare() {Servos[2]. (70); //enviando um ângulo de 70 graus os servos paramServos[3]. (70);st = 1;

(200);Sonar();}

Sonar() {Servos[1]. (0);

(2000); }

Sonar2() {Servos[1]. (180);st=3;

(2000);}

alinha() { //alinhar o sonar com e motoresServos[1]. (90);

(int i=0;i<=10;i++) {Servos[2]. (2000);Servos[3]. (2000);st = 2;

(30);}}

alinha2() {Servos[1]. (90);

(int i=0;i<=10;i++) {Servos[2]. (1000);Servos[3]. (1000);st = 2;

(30);}}

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 17: Manual Umr Arduino

ACIONANDO UM LED PELO CONTROLE REMOTO

Material Necessário:

1 - Placa Arduino Navigation1 - Controle Remoto Sony

Obs: Pode-se usar um dos leds do Shield Expansor de I/O

Obs: O controle Sony é o mais apropriado, devido ao seu protocolo maissimples; portanto, os comandos neste manual só funcionam emcontroles de TV SONY.

Procedimentos:

- Encaixe a placa Shield Navigation nos conectores do arduino.- Ligue um LED com seu resistor apropriado nos pinos P7 do arduino e GND.- Ligue um fio Jumper do pino P2 do arduino ao IR-D ou IR-E- Conecte o cabo USB no arduino-Abra a IDE de programação do arduino-Digite o programa da próxima página-Carregue o programa para o arduino

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 18: Manual Umr Arduino

Retire o jumper para desabilitaro emissor de infravermelho, evitandoqualquer interferência no módulo receptor de infrared

Utilizando o Controle Remoto

//Robotic.com.br -

ir_pin = 2; //Sensor de 38khz ligado na porta p2led_pin = 13; //Led do pin13 status de recebimentoled = 7; //Led de teste ligado no pin7

debug = 0;//A conexao serial deve ser iniciado para depurarstart_bit = 2000;//Limiar - Start bit (microssegundos)bin_1 = 1000;//Binario 1 limiar (microssegundos)bin_0 = 400;//Binario 0 limiar (microssegundos)

() {(led_pin, OUTPUT);//O led do p13 acende e mostra que estamos prontos para receber(led, OUTPUT); // Led no p7 para teste

(ir_pin, INPUT); // pino do infrare como entrada ligado no pin2(led_pin, LOW); //se não tiver pronto para receber apaga o led do p13(9600);

}

() {key = getIRKey(); //Busca o botão do controle(que foi precionado)

("Botão Precionado: "); //Mostra na tela a palavra "Botão Precionado"(key); //Mostra o valor do botão

// *******************DIGITE SEU CÓDIGO AQUI******************************************(key == 144) // tecle a chave up do controle

(led, HIGH); //acende o led do pin7

(key == 145) // tecle a chave dw do controle(led, LOW); //apaga o led

}//************FIM DOS SEUS COMANDOS**************************************************

intintint

intintintint

void setuppinModepinMode

pinModedigitalWriteSerial.begin

void loopintSerial.printSerial.println

ifdigitalWrite

ifdigitalWrite

PROGRAMA:

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 19: Manual Umr Arduino

intintdigitalWritewhile pulseIn

pulseInpulseInpulseInpulseInpulseInpulseInpulseInpulseInpulseInpulseIn

pulseInpulseIn

digitalWrite

ifSerial.println

for intif

Serial.println

if

if

else

for intif

return

intintforif

result

seed

return result

getIRKey() {data[12];

(led_pin, HIGH); //Ok, Esta pronto para receber os comandos( (ir_pin, LOW) < 2200) { //Espera o start bit

}data[0] = (ir_pin, LOW);//Começa a medir os bitsdata[1] = (ir_pin, LOW);data[2] = (ir_pin, LOW);data[3] = (ir_pin, LOW);data[4] = (ir_pin, LOW);data[5] = (ir_pin, LOW);data[6] = (ir_pin, LOW);data[7] = (ir_pin, LOW);data[8] = (ir_pin, LOW);data[9] = (ir_pin, LOW);data[10] = (ir_pin, LOW);data[11] = (ir_pin, LOW);

(led_pin, LOW);

(debug == 1) {("-----");

}( i=0;i<11;i++) { //Analisando(debug == 1) {

(data[i]);}(data[i] > bin_1) { //É 1?

data[i] = 1;} else {

(data[i] > bin_0) {//É 0?data[i] = 0;

} {}

}}

( i=0;i<11;i++) { //Checar se há dados com erros(data[i] > 1) {

-1; //Retorna 1 se os dados forem errados}

}

result = 0;seed = 1;(int i=0;i<11;i++) { //Convert bits em numero inteiro(data[i] == 1) {

+= seed;}

= seed * 2;}

; //Retorna o numero do botão precionado

}

Utilizando o Controle Remoto

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 20: Manual Umr Arduino

Seguindo Trilha

Conecte o sensor de trilha,no conector do shield NavigationLigue cabos Jumpers do SD ao P7 do arduino, SC ao P6 e SE ao P5.

SD => Sensor direitoSC => Sensor CentralSE => Sensor Esquerdo

Faça uma trilha usando fita isolante ou pintada na cor preta,com 20mm de largur em uma superfície branca

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 21: Manual Umr Arduino

#include <MegaServo.h> //Inclue a biblioteca MegaServos#define NBR_SERVOS 12 // Numero de Servos ligados. Maximo de 48 arduino MEGA, 12 para outros arduinos#define FIRST_SERVO_PIN 8MegaServo Servos[NBR_SERVOS] ;

motor_d = 9;motor_e = 10;ir_d = 7;ir_c = 6;ir_e = 5;st_d; // variavel para quardar o valor no ir receptor direitost_c;st_e;

(){Servos[1]. (motor_d,880,2400) ;Servos[2]. (motor_e,880,2400) ;

(ir_d, );(ir_c, );(ir_e, );

para();}

() {

st_d = (ir_d); //verifica cada sensor e guarda seu statusst_c = (ir_c);st_e = (ir_e);

(st_e == and st_c== and st_d==HIGH){frente();}(st_e == and st_c== and st_d==HIGH){para();}(st_e == and st_c== and st_d==HIGH){esquerda();}(st_e == and st_c== and st_d==HIGH){esquerda();}(st_d == and st_c== and st_e==HIGH){direita();}(st_d == and st_c== and st_e==HIGH){direita();}}

frente(){Servos[1]. (180) ;Servos[2]. (0) ;

(15); }

para() {Servos[1]. (70) ;Servos[2]. (70) ;

(300); }

direita() {Servos[1]. (0);Servos[2]. (0);

(30);}

esquerda() {Servos[1]. (180);Servos[2]. (180);

(30); }

intintintintintintintint

void setupattachattach

pinModepinModepinMode

void loop

digitalReaddigitalReaddigitalRead

ifififififif

writewrite

delay

voidwritewrite

delay

voidwritewrite

delay

voidwritewrite

delay

INPUTINPUTINPUT

HIGH LOWHIGH HIGHLOW HIGHLOW LOWLOW HIGHLOW LOW

void

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 22: Manual Umr Arduino

Expansor de I/O Shield

#include < Expande.h >Expande saida = Expande();

() {}

() {saida. (22, HIGH);

(200);saida. (22, LOW);

(200);}

//Inclui a biblioteca Expande// Cria o objeto saida

void setup

void loopdigitalWrite

delaydigitalWrite

delay

Este shield aumenta o número de saídas digitais do arduino para um total de 27 saídas.

Utilizando 3 saídas (Pin 8, 12 e 13) para gerar mais 16 saídas digitais.

Exemplo de programa: Piscar um LED na porta 22

Experimento: Ligue um fio jumper da porta 22 para o conector do LED, o LED deverá ficar aceso,inicialmente, devido a polarização do mesmo. (Um dos pinos do led está ligado ao +5v e o outro emaberto aguardando o sinal do arduino; como as portas de 14 a 29 estão em nível baixo, o led fica aceso.

Obs: Os pinos do 14 ao 29 só funcionam como saídas digitais

Faça o download da biblioteca “Expande I/O no site: www.robotic.com.br e faça aextração dos arquivos na pasta “Libraries” no diretório do programa arduino.

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br

Page 23: Manual Umr Arduino

Unidade Móvel Robotic - Microcontrolador

www.robotic.com.br