Tecnologia

Ξ Deixe um comentário

Arduino pra que te quero

publicado por Márcio Pulcinelli

Arduino pra que te queroNeste artigo, vou abordar o assunto dos micro controladores, mais especificamente o Arduino.

Diversas áreas precisam controlar o funcionamento de máquinas e aparelhos diversos e não podem se dar ao luxo de gastar muito dinheiro com produtos caros, pois podem inviabilizar um determinado projeto. Por esse (e outros motivos) utilizam placas com micro controladores em seus projetos. Neste artigo falarei sobre a plataforma de prototipagem eletrônica de hardware livre chamada “Arduino”.

O Hardware

A placa do Arduino consiste em um microcontrolador Atmel AVR de 8 bits, com componentes complementares para facilitar a programação e incorporação para outros circuitos.

Existem várias placas Arduino, sendo que a mais difundida é a Arduino UNO que apresento conforme as imagens abaixo:

Arduino Uno 2Arduino Uno 1

“Uno” significa “um” em italiano e foi o nome dado para marcar o lançamento do Arduino 1.0.

Esta placa contem 14 pinos digitais de entrada e saída (todos podem ser utilizados como entrada e saída conforme programação efetuada pelo usuário da placa) sendo que 6 podem ser utilizados como saída PWM. Além disso, contém 6 entradas analógicas, um clock de 16 MHz, uma porta para conexão USB, uma entrada de força e outros atributos mais técnicos.

Esta placa (assim como as outras) passa por revisões e atualizações. Atualmente o Arduino UNO está no rev3.

Visão geral do Hardware

MicrocontrollerATmega328
Operating Voltage5V
Input Voltage (recommended)7-12V
Input Voltage (limits)6-20V
Digital I/O Pins14 (of which 6 provide PWM output)
Analog Input Pins6
DC Current per I/O Pin40 mA
DC Current for 3.3V Pin50 mA
Flash Memory32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM2 KB (ATmega328)
EEPROM1 KB (ATmega328)
Clock Speed16 MHz

A imagem abaixo está apresentado o esquema da placa Arduino UNO para os mais interessados em eletrônica.

Imagem está apresentado o esquema da placa Arduino UNO para os mais interessados em eletrônica.

Alimentação da Placa

O Arduino Uno pode ser alimentado através de uma conexão USB ou com uma fonte de alimentação externa. A fonte de alimentação é selecionada automaticamente conforme o fornecimento da energia pelas fontes. Fonte externa (não-USB) de energia pode vir com um adaptador AC-DC ou bateria.

O adaptador pode ser conectado através de um plugue centro positivo 2,1 milímetros na tomada de energia da placa. Além disso, cargas de uma bateria podem ser inseridas nos pinos Gnd e Vin do conector de alimentação.

Entradas do Arduino

A placa pode operar a partir de um fornecimento externo de 6 a 20 volts. Se fornecido com menos de 7V, no entanto, o pino de 5V pode fornecer menos de cinco volts e a placa pode se tornar instável. Se usar mais do que 12V, o regulador de voltagem pode superaquecer e danificar a placa. Sendo assim, o intervalo recomendado é de 7 a 12 volts.
Os pinos de energia são os seguintes:

  • VIN – A tensão de entrada para a placa Arduino quando se está usando uma fonte de alimentação externa (ao contrário de 5 volts a partir da conexão USB ou outra fonte de alimentação regulada). Você pode fornecer tensão por este pino ou, se o fornecimento de tensão se der através da tomada de energia, acessá-lo através deste pino.
  • 5V – Este pino gera uma tensão regulada de 5V na placa. A placa pode ser alimentada com energia a partir da tomada de energia DC (7 – 12V), do conector USB (5V), ou do pino VIN da placa (7-12V). Fornecimento de tensão através dos pinos 5V e/ou 3.3V ignora o regulador, e pode danificar sua placa. Este procedimento não é nenhum pouco recomendado.
  • 3.3V – Este pino gera uma tensão de 3,3 volts gerado pelo regulador on-board. A corrente máxima é de 50 mA.
  • GND – São os pinos de aterramento.
  • IOREF – Este pino na placa Arduino fornece a referência de tensão com que o microcontrolador está operando. Um determinado circuito configurado corretamente pode ler a tensão do pino IOREF e selecione a fonte de alimentação adequada ou habilitar tradutores de tensão nas saídas para trabalhar com o 5V ou 3.3V.

Memória do Arduino UNO

O chip ATmega328 tem 32 KB (com 0,5 KB utilizada para o bootloader). Ele também tem 2 KB de SRAM e 1 KB de EEPROM (que pode ser lido e escrito com a biblioteca EEPROM).

Entrada e Saida

Cada um dos 14 pinos digitais do Arduino Uno pode ser utilizado como uma entrada ou uma saída, usando as funções pinMode(), digitalWrite() e digitalRead().Eles operam com 5 volts. 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 kOhms. Além disso, alguns pinos têm funções especializadas:

  • Serial: 0 (RX) and 1 (TX): Usado para receber (RX) e transmitir (TX) dados seriais TTL. Estes pinos são ligados aos pinos correspondentes do USB-TTL chip serial ATmega8U2.
  • External Interrupts (2 and 3): Estes pinos podem ser configurados para disparar uma interrupção por um “low value”, uma “rising” ou “falling edge”, ou uma mudança de valor. Caso tenha interesse, acesse a documentação da função attachInterrupt() para mais detalhes.
  • PWM: 3, 5, 6, 9, 10 e 11: Assegura a saída PWM de 8-bit com a função analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): Estes pinos suportam comunicação SPI usando a biblioteca SPI.
  • LED 13: Há um LED pré-montado conectado ao pino digital 13. Quando o pino está com o status HIGH, o LED está ligado, quando o pino é LOW, ele está desligado.

O Arduino Uno tem 6 entradas analógicas, rotuladas A0 a A5, cada uma das quais com 10 bits de resolução (1024 valores diferentes). Por padrão elas medem até 5 volts, embora seja possível mudar o limite superior de sua faixa usando o pino AREF e a função analogReference().Além disso, alguns pinos tem funcionalidades especializadas:

  • TWI (A4 ou SDA pin e A5 ou SCL pin): Suporta Comunicação TWI usando a biblioteca Wire.
  • AREF: Tensão de referência para as entradas analógicas. Usado com analogReference().
  • Reset: Traz essa linha LOW para resetar o microcontrolador. Tipicamente usado para adicionar um botão de reset para “Shields” que bloqueiam o que está na placa.

Comunicação do Arduino

Muita coisa no Arduino não faria sentido se não houvesse comunicação dele com o mundo externo e do mundo externo para ele.

O Arduino Uno tem uma série de facilidades para se comunicar com um computador, outro Arduino ou outros microcontroladores. O chip ATmega328 fornece UART TTL (5V) de comunicação serial, que está disponível nos pinos digitais 0 (RX) e 1 (TX). Um ATmega16U2 direciona esta comunicação serial através de USB que aparece como uma porta COM virtual para o software no computador. O firmware ’16U2 usa os drivers COM USB padrão, e nenhum driver externo é necessário, no entanto, no Windows, um arquivo (inf) se faz necessário.

O software do Arduino inclui um monitor serial que permite que dados simples de texto sejam enviados de e para a placa Arduino. Os LEDs RX e TX da placa piscam quando os dados estão sendo transmitidos através do chip “USB-to-Serial” e conexão USB para o computador (mas não para comunicação serial nos pinos 0 e 1). Além disso, o ATmega328 também suporta I2C (TWI) e comunicação SPI. Inclui ainda uma biblioteca Wire para simplificar o uso do bus I2C.

Programando Para Arduino

Talvez uma das partes mais interessantes do Arduino, seja a possibilidade de escrever seus próprios comandos para a placa, facilitando muito a automação de qualquer atividade que se tenha em mente.

O Arduino Uno pode ser programado com o software Arduino que pode ser baixado aqui.

O ATmega328 no Arduino Uno vem precarregado com um bootloader que permite o envio de novos códigos sem o uso de um programador de hardware externo, o que é muito bom, pois facilita enormemente a vida do programador. Ele se comunica utilizando o protocolo original STK500.

Também é possível ignorar o bootloader e programar o microcontrolador através do ICSP (In-Circuit Serial Programming), porém é necessário conhecimentos específicos que, não necessariamente o programador precisa ter para tocar seus projetos.

Uma vez que você tenha feito o download do software, você deve instala-lo no seu computador para começar a programar. Basta rodar o arduino.exe e a IDE dele será aberta. É uma IDE bastante simples e sem qualquer tipo de “intellisense”.

Vide abaixo a imagem da IDE com um exemplo do LED na porta 13 piscando a cada 1 segundo.

Vide a imagem da IDE com um exemplo do LED na porta 13 piscando a cada 1 segundo.

No próximo artigo sobre Arduino, falarei sobre a parte de programação da placa e como configurar os drivers para Windows 8.

Artigo publicado originalmente em blog.marcio-pulcinelli.com

[Crédito da Imagem: Circuito Eletrônico – ShutterStock]

Autor

Márcio Pulcinelli é consultor da área de Tecnologia a mais de dez anos. Os últimos oito anos foram voltados para projetos na área de gestão de sistemas em Gás & Energia e Petróleo junto aos clientes Petrobras S.A e Gas de France (GdF Suez E&P Norge AS) sendo o último, projeto no exterior (Noruega) ambos pela empresa Accenture do Brasil. Alguns anos em projetos de crédito junto ao cliente Caixa Econômica pela empresa UNISYS Outsourcing. Experiência em gestão de projetos de tecnologia, mapeamento de processos, modelagem organizacional de negócio, Implantação de Enterprise Project Management (EPM) com foco em gestão de projetos de manutenção de plataforma de petróleo e perfuração de poços exploratórios, modelagem de painéis de indicadores para CLPs (Computador Lógico Programável) em malha de gasodutos, responsável pela modelagem de sistemas de intervenções e paradas para malha de gasoduto, dentre outras áreas de atuação. Visite meu site: blog.marcio-pulcinelli.com

Márcio Pulcinelli

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes