A foto ao lado ilustra os dois componentes usados neste primeiro exemplo. O LED vermelho está à esquerda e um resistor de 10k ohms está à direita. O LED tem polaridade, onde o fio metálico mais comprido é o positivo e o curto é o negativo. O resistor não tem polaridade.
Com um barramento para montar circuitos eletrônicos (protoboard) uma das pontas do resistor está ligada ao fio metálico de polaridade negativa do LED. A polaridade positiva do LED será ligada à porta digital de numero 9 do Arduino. O outro fio metálico do resistor será ligado à porta de aterramento (GND - ground).
A programação para o Arduino é realizada através da IDE implementada em Java chamada de Processing que pode ser baixada do site arduino.cc. Como ferramenta é implementada em Java, pressupõe-se ter um JRE devidamente instalado na máquina e com a variável PATH configurada para localizar este JRE. Contudo, os programas rodam dentro do microcontrolador do Arduino. Portanto, um compilador C externo a esta IDE é usado. Então, será necessário instalar o compilador avr-gcc antes de tentar escrever e compilar qualquer código para o Arduino através da IDE. Todos os passos necessários para configurar este ambiente estão disponíveis no site do Arduino.
A figura abaixo é um snapshot desta ferramenta com o código usado para controlar a porta 9 do Arduino para acender e apagar o LED.
Um programa simples para rodar no Arduino deve ter as funções "setup()" e "loop()". A primeira função será executada apenas uma vez pelo Arduino no início da execução do programa. Esta função é usada para conter instruções para inicialização. Pode inicializar variáveis ou configurar as portas do Arduino. A segunda função será executada num loop infinito. Esta será a parte principal do programa.
#define portaLED 9
int pausa = 500;
void setup() {
pinMode(portaLED, OUTPUT);
}
void loop() {
digitalWrite(portaLED, HIGH);
delay(pausa);
digitalWrite(portaLED, LOW);
delay(pausa);
}
O código da função "setup()" ilustrada acima chama a função "pinMode(...)" que configura a porta 9 como saída digital. Com esta configuração será possível ativar esta porta para mudar o estado de ligado para desligado ou vice-versa (do estado 1 para 0 ou HIGH para LOW). A função "loop()" usa as funções "digitalWrite()" e "delay()" para mudar o estado da porta 9 e realizar uma pequena pausa para que a mudança de estado seja percebida. Como o programa roda numa velocidade aproximada de 16KHz, sem a pausa não seria possível observar o LED conectado a esta porta acender e apagar. A linha 10 deste código muda o estado da porta 9 para HIGH. Ou seja, a porta 9 passa a ter a tensão de 5 volts que representa o bit igual a 1. Em seguinda, ocorre uma pausa de 500 milissegundos antes de mudar o estado da porta para LOW (equivalente a zero volts). Daí uma nova pausa antes de voltar a acender o LED quando o Arduino executa novamente a função "loop()".
O video a seguir ilustra a execução do programa já compilado e instalado no Arduino através da IDE.
Na parte 2 (num novo post) será ilustrada uma evolução deste exemplo ao adicionar uma sequência de LEDs e um programa com loop para acender e apagar esta sequência.
2 comentários:
Spock, uma dúvida, o microcontrolador Arduíno, pelo que vi brevemente no site do fabricante, não tem implementado a pilha do TCP/IP. Atualmente, as aplicações embarcadas necessitam desse suporte, por exemplo, o equipamento pode ser acessado remotamente pelo fabicante para verificar seu desempenho ou detectar falhas.
Att
Antonio Celso
Olá Antonio Celso,
Realmente não tem TCP/IP embutido no Arduino. Contudo, é possível fazer aplicações com redes sem fio para comunicar um Arduino com outro ou com um computador usando o XBee (http://www.ladyada.net/make/xbee/arduino.html).
Postar um comentário