sexta-feira, 30 de outubro de 2009

O Hello World do Arduino

Piscar um led é o primeiro passo para começar a trabalhar com a plataforma Arduino. O codigo é muito simples e didatico.


int LED = 8; // definindo LED no pino 8
int tempo = 1000; // tempo de espera 1segundo

void setup(){ // executa apenas uma vez
pinMode(LED, OUTPUT); // pino LED saida

}
void loop(){ // laço contínuo
digitalWrite(LED, HIGH); // acende LED
delay(1000); // espera 1s
digitalWrite(LED, LOW); // apaga LED
delay(tempo); // espera 1s

}

EXPLICAÇÂO:

Primeiramente vamos definir as variaveis e em quais pinos elas atuarao. Para representar o led foi criada a variavel LED com o valor 8, ou seja, o led vai plugado na “perninha” 8 do Arduino.Foi criada uma variavel tempo com valor de 1000 (em milisegundos), que corresponde a 1 segundo.

No void setup vai a configuração inicial, esta parte sera executada apenas uma vez, no inicio.

A função pinMode serve para setar os pinos e recebe dois parametros. No primeiro recebe o valor do pino que queremos setar, no nosso caso a variavel LED armazena o valor 8, o nosso pino. O outro parametro nos mostra qual a função da “perninha”, INPUT ou OUTPUT, no caso o led é de saida, portanto OUTPUT.

Agora nos resta a função void loop, como o proprio nome já diz o codigo ficara em loop.

Finalmente a parte que realmente faremos o “Olá Mundo”. Usando a função digitalWrite que escreve na porta digital 8, denominado pela variavel LED mandando um sinal HIGH. Aguardamos um segundo e apagamos o led usando LOW, aguardamos mais um segundo para que possamos ver o led apagado tambem. Dai em diante o codigo ficara se repetindo desta forma.

Uma boa pratica de programação foi ter criado a variavel tempo. Suponhamos que agora eu quero meu led piscando a cada 5 segundos. Basta alterar o valor da variavel tempo para 5000.

Vejamos que com poucas linhas foi possivel fazer um “Hello World” usando o Arduino. Trata-se de uma programação bem facil que qualquer um pode aprender. Este é apenas o inicio.

Pedro Pavan

quinta-feira, 29 de outubro de 2009

O melhor amigo do Arduino

  Dizem que o melhor amigo do homem é o cachorro, quem já passou por um aperto financeiro sabe que os amigos humanóides costumam se tele transportar para um universo paralelo nessas ocasiões. Independente de seu saldo bancário, sempre que você voltar para casa vai receber o cumprimento característico de um cão, uma seqüência de abanos de cauda.
   O Arduino também tem seu melhor amigo, ele não tem cauda, mas o protege do excesso de corrente nos pinos, que pode ocasionar a queima do mesmo e em alguns casos o pior, ou seja, perder o microcontrolador completamente.
   Os pinos do Arduino não podem fornecer mais do que 40mA de corrente direta, um valor normalmente adotados por outros fabricantes como a Microchip que fabrica a linha PIC. Desta forma sempre que for ligar algum dispositivo ao Arduino deve-se limitar essa corrente, na maioria das vezes usando-se um resistor de valor adequado.
     Para calcular o resistor continua valendo a velha e conhecida lei de Ohm, V=r.i, basta a aplicação direta da fórmula para saber o valor a ser utilizado. Por exemplo, para se fazer o famoso prosaico “Olá mundo!” do Arduino, basta um LED e um resistor. Lápis e papel na mão, sigam-me os bons:
Tensão da fonte: 5 volts
Tensão no LED: 2,1 volts (varia com a cor, o ideal é consultar o fabricante)
Corrente fornecida pelo pino do Arduino: 20 mili amperes (metade da corrente máxima)
Valor do resistor: ?
Capacidade de dissipação do resistor: ?
R = V / I = (5 Volt - 2.1 Volt) / 25 mA = 116 Ohm
   Note que a tensão sobre o resistor vai ser o valor da total da fonte menos a queda de tensão no LED. Como 116 Ohm não é um valor comercial, o próximo maior deve ser utilizado ou mesmo um valor acima, sempre com a intenção de poupar o pino do Arduino de uma sobre carga. Portanto 120 ou 150 Ohm seriam indicados para o trabalho de limitar a corrente. Recalculando:
R = V / I = (5 Volt - 2 Volt) / 20 mA = 150 Ohm
E a potência do resistor? Vamos lá:
P = V x I = 3 Volt x 20 mA = 60 mW
Bem abaixo do valor típico encontrado nas lojas que é de 250 mW.
   Pronto agora você já está apto a criar seu próprio “Hello World!”, talvez usando código Morse através das piscadas do LED, só para não ser mais um na multidão. Isso é o que atrai tantas pessoas para a plataforma do Arduino, você pode ver seu código “se mexer” literalmente e quem sabe lembrar-se da salada do bandejão da Universidade...
   Para terminar, os LED infravermelhos usados em controle remoto apresentam uma queda de tensão menor e uma corrente direta muito maior que os LEDs convencionais, da ordem de 50 mA, bem acima do que pode fornecer um pino do Arduino. Alem é claro de não serem visíveis a nós simples programadores. Reza a lenda que um Mestre Programador Jedi é capaz de enxergar, como estou longe de algum para confirmar. Para ligar um desses é preciso um “driver” mas, este  assunto fica para outro estória.

Neste link tem muita informação sobre LED, além de um prático calculator de resistores.


Rudy Paulo de Vasconcellos Júnior


segunda-feira, 26 de outubro de 2009

MCU DAY - Texas Instruments



Ocorreu no dia 22 de Outubro no EESC - Dep. Engenharia Elétrica da USP uma palestra da Texas Instruments sobre as três principais linhas de microprocessadores: MCUs MSP430™, MCUs C2000™ e Stellaris®.
Foi uma palestra cheia de detalhes minuciosos sobre cada arquitetura e suas areas de aplicação. Podemos ver de perto o poder da linha Stellaris® usando o processador ARM o que instigou a buscar informações para implementar nesta arquitetura.
Fica como experiência única para os participantes e uma bagagem muito boa de estudos para o grupo.
Link -> MCU DAY
Autor: Denis