Pesquisar este blog

segunda-feira, 17 de maio de 2010

Programação - Acender LED Arduino

Na interface de programação (levemente introduzida em posts passados) é possível programar o Arduino e linguagem C/C++.

Para quem conhece essa linguagem, aqui é as mesma coisa em termos de estrutura (inclusão de bibliotecas, funções, estrutura...).

Antes de começar, a programação do Arduino é dividida em 2 blocos: void setup() e void loop().
  • void setup(): bloco de inicialização, ou seja, é aqui se coloca os valores iniciais de variáveis, condições de entradas e saídas dos pinos, entre outras. Esse bloco é executado somente uma vez quando a placa é ligada e toda vez que a mesma é "resetada".
  • void loop(): popularmente é o programa principal, depois de passar pelo void setup() o microcontrolador vai ficar executando esse bloco em loop infinito, por isso é aqui "que se faz as mágicas" de controle e programação.
Pode parecer meio confuso de inicio mas quem já tem prática em programação de microprocessadores e microcontroladores vai entender e se acostumar facilmente.

Programa Piscar LED

Para entender melhor a programação, segue abaixo um exemplo comentado.

Descrição: acende e apaga (pisca) um LED num determinado período de tempo. O LED é ligado na porta 13 (digital) do Arduino.

Observação: o LED não pode receber tensão diretamente entre seus terminais, uma vez que a corrente deve ser limitada. Assim, usa-se um resistor em série com o LED. Para calcular o valor do resistor usa-se a seguinte fórmula: R = (Vfonte - Vled) / Iled.

A tensão de um LED varia de 1,8-3V com c orrentes entre 12-30mA. Nesse exemplo o LED trabalha com VLed = 2V, Iled = 15mA:

R = (5 - 2) / 0,015
R = 200 Ohms

Com isso a ligação fica da seguinte forma:


Programação:

// pino digital de controle do LED
int ledPin = 13;
// tempo de delay
int tempo;

void setup()
{
// configura ledPin como saída
pinMode(ledPin, OUTPUT);
tempo = 1000; // 1000ms = 1s
}

void loop()
{
// ledPin vai para nível alto (acende LED)
digitalWrite(ledPin, HIGH);
// espera 1s
delay(tempo);
// ledPin vai para nível baixo (apaga LED)
digitalWrite(ledPin, LOW);
// espera 1s
delay(tempo);
}

Para fazer o download do programa clique aqui

quinta-feira, 13 de maio de 2010

Tutorial - Interface de Programação Arduino

O Arduino tem como linguagem padrão de programação o C/C++, e também já possui uma interface gráfica amigável para se programar, compatível com todas as versões de hardware fabricadas.

Vou ensinar nesse rápido tutorial como mexer nessa interface, assim como algumas funções e descrições de alguns objetos.

Primeiro baixe e instale a versão mais atual do software (clique aqui).

Assim que instalado, abra o programa.

A imagem demonstra o ambiente de programação (no meu caso Windows), e a versão do programa usada é a 0018.

Antes de começar a programar, vá em "Tools -> Board" e selecione a placa respectiva a sua aplicação, após isso vá em "Tools -> Serial Port" e selecione a porta na qual o Arduino está conectado. Feito isso você já está pronto para começar a fazer seus programa e carrega-los na placa.

OBS.: É aconselhável sempre antes de se fazer o upload compilar.

quarta-feira, 12 de maio de 2010

Arduino - Visão Geral

Como primeira postagem vou falar de uma placa de desenvolvimento livre que acabei de adquirir: Arduino.

Bem para os leigos no assunto o Arduino nada mais é que um computador físico baseado numa simples plataforma de hardware livre, projetada com um microcontrolador de placa única, com suporte de entrada/saída embutido e linguagem de programação padrão C/C++. O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar por artistas e amadores. Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas (sábias palavras da WIKI - http://pt.wikipedia.org/wiki/Arduino).
No site oficial do Arduino (www.arduino.cc) é possível obter informações técnicas, assim como os PDFs relacionados ao esquema de montagem da placa, datasheet dos microcontrolares, esquema de tensão e corrente, entre outros.
Abaixo disponibilizo alguns links chaves do site oficial:
Arduino Duemilanove (página em inglês)
O Duemilanove seleciona automáticamente a fonte de alimentação (USB ou fonte externa). Esta placa vem com os micros ATMega168 (datasheet) ou ATMega328 (datasheet) pré-carregados com "bootloader" .

Características:
  • Tamanho: 5,3cm x 6,8cm x 1,0cm
  • Microcontrolador: ATmega168 ou ATmega328
  • Tensão de operação: 5V
  • Tensão de entrada (recomendada): 7-12V
  • Tensão de entrada (limites): 6-20V
  • Pinos de entrada/saída (I/O) digitais: 14 (dos quais 6 podem ser saídas PWM)
  • Pinos de entrada analógicas: 6
  • Corrente DC por pino I/O: 40mA
  • Corrente DC para pino de 3,3V: 50mA
  • Memória Flash: 16KB (ATmega168) ou 32KB (ATmega328) sendo 2KB usados pelo bootloader
  • SRAM: 1KB (ATmega168) ou 2KB (ATmega328)
  • EEPROM: 512 bytes (ATmega168) ou 1KB (ATmega328)
  • Velocidade de Clock: 16 MHz.