Arduino Uno Rev3

Programação

O Arduino Uno pode ser programado com o (Arduino Software (IDE)). Seleccione “Arduino Uno Uno a partir das Ferramentas > Menu da placa (de acordo com o microcontrolador na sua placa). Para detalhes, ver a referência e tutoriais.

O ATmega328 no Arduino Uno vem pré-programado com um bootloader que lhe permite carregar um novo código sem a utilização de um programador de hardware externo. Comunica usando o protocolo STK500 original (referência, ficheiros de cabeçalho C).

P>Pode também contornar o bootloader e programar o microcontrolador através do cabeçalho ICSP (In-Circuit Serial Programming) usando o Arduino ISP ou similar; veja estas instruções para mais detalhes.

O código fonte do firmware ATmega16U2 (ou 8U2 nas placas rev1 e rev2) está disponível no repositório Arduino. O ATmega16U2/8U2 é carregado com um bootloader DFU, que pode ser activado por:

  • Em placas Rev1: ligando o jumper de solda na parte de trás da placa (perto do mapa de Itália) e depois voltando a ligar o 8U2.
  • Em placas Rev2 ou posteriores: há uma resistência que puxa a linha 8U2/16U2 HWB para terra, facilitando a colocação em modo DFU.

Pode então usar o software FLIP da Atmel (Windows) ou o programador DFU (Mac OS X e Linux) para carregar um novo firmware. Ou pode usar o cabeçalho ISP com um programador externo (substituindo o bootloader DFU). Veja este tutorial com contribuições do utilizador para mais informações.

Avisos

O Arduino Uno tem um polifusível reinicializável que protege as portas USB do seu computador contra curtos e sobre-correntes. Embora a maioria dos computadores forneça a sua própria protecção interna, o fusível proporciona uma camada extra de protecção. Se forem aplicados mais de 500 mA à porta USB, o fusível quebrará automaticamente a ligação até que o curto ou a sobrecarga seja removida.

Diferenças com outras placas

O Uno difere de todas as placas anteriores na medida em que não utiliza o chip driver FTDI USB-para-série. Em vez disso, apresenta o Atmega16U2 (Atmega8U2 até à versão R2) programado como um conversor USB para série.

Power

A placa Arduino Uno pode ser alimentada através da ligação USB ou com uma fonte de alimentação externa. A fonte de energia é seleccionada automaticamente.

A energia externa (não USB) pode vir quer de um adaptador AC-to-DC (wall-wart) ou bateria. O adaptador pode ser ligado ligando uma ficha de 2,1mm de centro-positivo na tomada de alimentação da placa. Os cabos de uma bateria podem ser inseridos nos cabeçalhos dos pinos GND e Vin do conector POWER.

A placa pode funcionar com uma alimentação externa de 6 a 20 volts. Se fornecido com menos de 7V, contudo, o pino de 5V pode fornecer menos de 5 volts e a placa pode tornar-se instável. Se utilizar mais de 12V, o regulador de voltagem pode sobreaquecer e danificar a placa. A gama recomendada é de 7 a 12 volts.

Os pinos de potência são os seguintes:

  • Vin. A tensão de entrada para a placa Arduino quando está a utilizar uma fonte de alimentação externa (em oposição a 5 volts da ligação USB ou outra fonte de alimentação regulada). Pode fornecer tensão através deste pino, ou, se fornecer tensão através da tomada de alimentação, acedê-la através deste pino.
  • 5V. Este pino emite 5V regulados a partir do regulador da placa. A placa pode ser fornecida com alimentação através da tomada de alimentação DC (7 – 12V), do conector USB (5V), ou do pino VIN da placa (7-12V). A alimentação de tensão através dos pinos de 5V ou 3,3V ultrapassa o regulador, e pode danificar a placa. Não o aconselhamos.
  • 3V3. Uma alimentação de 3,3 volts gerada pelo regulador de bordo. O consumo máximo de corrente é de 50 mA.
  • GND. Pinos de terra.
  • IOREF. Este pino na placa Arduino fornece a referência de tensão com que o microcontrolador funciona. Um escudo devidamente configurado pode ler a tensão dos pinos IOREF e seleccionar a fonte de alimentação apropriada ou permitir que os tradutores de tensão nas saídas trabalhem com os 5V ou 3.3V.

Memória

O ATmega328 tem 32 KB (com 0.5 KB ocupado pelo carregador de inicialização). Tem também 2 KB de SRAM e 1 KB de EEPROM (que pode ser lido e escrito com a biblioteca da EEPROM).

Entrada e Saída

Veja o mapeamento entre os pinos Arduino e as portas ATmega328P. O mapeamento para os Atmega8, 168, e 328 é idêntico.

P>PIN MAPPING ATmega328P

Cada um dos 14 pinos digitais no Uno pode ser usado como entrada ou saída, usando as funções pinMode(),digitalWrite(), e digitalRead(). Funcionam a 5 volts. Cada pino pode fornecer ou receber 20 mA como condição de funcionamento recomendada e tem uma resistência de tracção interna (desligada por defeito) de 20-50k ohm. Um máximo de 40mA é o valor que não deve ser excedido em nenhum pino I/O para evitar danos permanentes no microcontrolador.

Além disso, alguns pinos têm funções especializadas:

O Uno tem 6 entradas analógicas, rotuladas de A0 a A5, cada uma das quais fornece 10 bits de resolução (i.e. 1024 valores diferentes). Por defeito medem de terra a 5 volts, embora seja possível alterar a extremidade superior da sua gama utilizando o pino AREF e a função analogReference(). Há um par de outros pinos no quadro:

  • AREF. Tensão de referência para as entradas analógicas. Utilizado com analogReference().
  • Reset. Traga esta linha BAIXA para reiniciar o microcontrolador. Tipicamente usado para adicionar um botão de reset aos escudos que bloqueiam o da placa.

Comunicação

O Arduino Uno tem várias facilidades para comunicar com um computador, outra placa Arduino, ou outros microcontroladores. O ATmega328 fornece comunicação em série UART TTL (5V), que está disponível nos pinos digitais 0 (RX) e 1 (TX). Um ATmega16U2 na placa canaliza esta comunicação em série através de USB e aparece como uma porta com virtual para software no computador. O firmware 16U2 utiliza os controladores padrão USB COM, e não é necessário qualquer controlador externo. No entanto, no Windows, é necessário um ficheiro .inf. O Arduino Software (IDE) inclui um monitor de série que permite o envio de dados textuais simples de e para a placa. Os LEDs RX e TX na placa piscarão quando os dados estiverem a ser transmitidos através do chip USB para série e ligação USB ao computador (mas não para comunicação série nos pinos 0 e 1).

A biblioteca SoftwareSerial permite comunicação série em qualquer um dos pinos digitais do Uno.

O ATmega328 também suporta comunicação I2C (TWI) e SPI. O Arduino Software (IDE) inclui uma biblioteca Wire para simplificar a utilização do autocarro I2C; ver a documentação para detalhes. Para comunicação SPI, utilizar a biblioteca SPI.

Automatic (Software) Reset

Rather than requiring a physical press of the reset button before an upload, the Arduino Uno board is designed in a way that allows it to be reset by software running on a connected computer. Uma das linhas de controlo de fluxo de hardware (DTR) do ATmega8U2/16U2 está ligada à linha de reset do ATmega328 através de um condensador de 100 nanofarad. Quando esta linha é afirmada (tomada baixa), a linha de reset cai o tempo suficiente para reiniciar o chip. O Arduino Software (IDE) utiliza esta capacidade para lhe permitir carregar o código premindo simplesmente o botão de carregamento na barra de ferramentas da interface. Isto significa que o bootloader pode ter um tempo limite mais curto, uma vez que a descida do DTR pode ser bem coordenada com o início do carregamento.

Esta configuração tem outras implicações. Quando o Uno é ligado a um computador com Mac OS X ou Linux, é reiniciado cada vez que é feita uma ligação a partir de software (via USB). Durante os cerca de meio segundo seguintes, o carregador de inicialização está a funcionar no Uno. Enquanto está programado para ignorar dados mal formados (ou seja, qualquer coisa para além de um carregamento de novo código), interceptará os primeiros bytes de dados enviados para a placa depois de uma ligação ser aberta. Se um esboço em execução na placa receber uma configuração de uma só vez ou outros dados quando inicia, certifique-se de que o software com o qual comunica espera um segundo após abrir a ligação e antes de enviar estes dados.

A placa Uno contém um traço que pode ser cortado para desactivar a reinicialização automática. As almofadas de cada lado do traço podem ser soldadas umas às outras para voltar a ligá-lo. Está etiquetado “RESET-EN”. Também pode ser capaz de desactivar o reset automático ligando uma resistência de 110 ohm de 5V à linha de reset; ver este tópico do fórum para detalhes.

Revisões

Revisão 3 da placa tem as seguintes novas características:

  • 1.0 pinoout: foram adicionados pinos SDA e SCL que estão próximos do pino AREF e dois outros pinos novos colocados perto do pino RESET, o IOREF que permite que os escudos se adaptem à tensão fornecida pela placa. No futuro, os escudos serão compatíveis tanto com a placa que utiliza o AVR, que funciona com 5V, como com o Arduino Due, que funciona com 3,3V. O segundo é um pino não ligado, que é reservado para fins futuros.
  • circuito RESET mais forte.
  • Atmega 16U2 substitui o 8U2.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *