Na segunda parte deste tutorial mostrei o uso de 6 LEDs ligados ao Arduino e o programa necessário para acender e apagar em sequência estes LEDs. Depois o exemplo foi evoluído para receber um sinal digital de uma chave para controlar a direção ao apagar e acender os LEDs. Agora vamos à terceira parte do exemplo "Hello Arduino World".
Nesta terceira parte vou evoluir o programa usado para controlar a velocidade que os LEDs acendem e apagam ao fazer a leitura de uma informação analógica vindo de um potenciômetro (resistor com resistência variável a partir de um botão). Para mudar a velocidade, o potenciômentro será ligado a uma porta de entrada analógica para receber um tensão variável de 0 a 5 volts que resultará num valor inteiro entre 0 e 1023 no programa rodando no Arduino.
O potenciômetro tem 3 pinos, onde a resistência entre um dos pinos da borda e o pino central varia de 0 ohm ao máximo possível (10k ohms para o potenciômetro usado neste tutorial). Ao aplicar 5 volts num dos pinos da borda (fio vermelho) e 0 volt ao outro pino da borda (fio preto), teremos uma voltagem variável no pino central. Este pino central (fio laranja) é ligado à entrada analógica 0 do Arduino.
O programa acima, a ser instalado no Arduino, define uma constante com o nome portaPot com o valor 0. Este valor indica a porta analógica a qual está ligado o portenciômetro. Como as portas analógicas sempre são para entrada de um sinal analógico, não é necessário adicionar uma linha de configuração dentro da função "setup()". Mas, na primeira linha da função "loop()" é usada a função "analogRead()" para ler o valor atual na porta analógica indicada pela constante "portaPot". Esta função retornará um valor inteiro entre 0 e 1023 de acordo a tensão aplicada na porta analógica (entre 0 e 5 volts). Este valor é armazenado na variável global "pausa". Esta variável é usada nas linhas 20 e 26 para determinar o tempo em milisegundos entre o acender e apagar de um LED.
O video a seguir mostra a execução do programa implementado acima já instalado e rodando dentro do Arduino.
O próximo exemplo, que será apresentando num novo post, ilustrará uma evolução do código acima para receber um sinal analógico vindo de um LDR (Resistor Dependente de Luz) para controlar o tempo que cada LED permanece aceso.
No último Casual Class realizado na Globalcode no dia 24 de julho, pedi a Ana Abrantes que usasse a caneta mágica que roda Java para registrar todo o evento. Agora fiz o upload do áudio e do conteúdo anotado por ela.
Abaixo está o flash que permite reproduzir o áudio e ver algumas anotações. Não sei o aconteceu, mas a ferramenta Livescribe Desktop associou uma página a mais neste pencast. Então, para ver exatamente as anotações realizadas durente o evento, selecione a página 2 ou 3. Para isso, basta clicar no número que indica a página (no número 1) e selecionar a página 2. Para pular o áudio para um ponto específico basta clicar em qualquer parte da anotação.
Clique no play ou na seta superior para full screen
O pessoal da Globalcode preparou um video que foi disponibilizado no youtube. Este video contem algumas cenas gravadas durente o evento. Vocês poderão encontrar algumas participações do velho Spock.
Este video foi originalmente publicado no site da Globalcode.
Consultor e arquiteto de software que desenvolve sistemas para a Web com tecnologias OO, banco de dados e Java desde '96. Um techno-freak, apaixonado e evangelista das novas tecnologias e arquiteturas para o desenvolvimento de sistemas complexos de software.
Consultant and software architect, hosted at Brazil, that develop systems to Web with OO technologies, databases and Java since '96. A techno-freak, lover and evangelist of new technologies and architectures to the development of complex systems of software.