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.
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.
I am a senior software architect with more than 10 years of experience developing software based on Object Orientation and Java Technologies. I am high skilled in Java, Object Orientation, Design Patterns, Web technologies and database. I also have experience in Java EE, Spring Framework, JBoss Seam and more than 2500 hours in teaching Java technologies from basic to advanced. My goal is to develop efficient and profitable software applications for the web. I am reliable, flexible, team-worker and quick to learn.
3 comentários:
Basicamente a IDE para programar or artuino 'e C, teria como compilar um programa sem usar a IDE ?
Por exemplo usando o GCC ?
Exatamente, usando gcc
muito boa sua abordagem!
estamos anciosos aguardando pelo próximo exemplo! :)
Postar um comentário