Máquina do tempo com o Arduino
Publicado em: outubro 8, 2009
- Em: DIY | Open Hardware | Projetos
- 2 Comentários
Quem já assistiu “How it’s Made” ou programas do gênero no Discovery Channel já deve ter reparado que algumas indústrias usam o efeito estroboscópico para acompanhar linhas de produção que operam em alta velocidade.
O princípio é muito simples e eu decidi fazer a minha própria luz estroboscópica com Arduino.
O diagrama para montagem é o seguinte:
(usei o Fritzing para construir o diagrama)
Usei dois potenciômetros, mas seria possível montar apenas com um (alterando um pouco o código abaixo). Usando dois eu consigo controlar não só a freqüência do pulso de luz mas também a duração de cada pulso. Dependendo da velocidade do objeto em movimento é preciso acertar estes dois valores. Também usei 4 LEDs em série, ao invés de um como mostro no diagrama.
O código que escrevi segue abaixo:
/*
Stroboscopic Time MachineControls a blinking LED using two potentiometers (one for frequency
and another for the ON duration of the light).It can be used to see rapid movement in slow motion.
The circuit:
* LED connected from digital pin 13 to ground.
* Potentiometer 1: left pin to VCC, right pin to ground and middle
pin to Analog 4.
* Potentiometer 2: left pin to VCC, right pin to ground and middle
pin to Analog 5.Created 5 October 2009
By Gian Carlo Martinellihttp://copirraite.wordpress.com/2009/10/08/maquinadotempo/
*/
int ledPin = 13; //defines the LED pin
int freqPin = 4; //defines the frequency potentiometer pin
int waitPin = 5; //defines the ON duration potentiometer pin
int freq = 0; //defines variable
int wait = 0; //defines variablevoid setup(){ //defines the pin modes and prepares serial for bug tracking
pinMode(ledPin, OUTPUT);
pinMode(freqPin, INPUT);
pinMode(waitPin, INPUT);
// Serial.begin(9600); uncomment this if you wish to use bug tracking via terminal
}void loop(){
freq = analogRead(freqPin); //reads Frequency potentiometer
wait = analogRead(waitPin); //reads On Duration potentiometer
// Serial.print("Freq: "); uncomment the next 5 lines for bug tracking
// Serial.print(freq/10);
// Serial.print("\t");
// Serial.print("Wait: ");
// Serial.println(wait/10);
digitalWrite(ledPin, HIGH); //turns led ON
delay(wait/10); //leaves the LED on for a determined duration
digitalWrite(ledPin, LOW); //turn LED off
delay(freq/10); //wait before turning LED on again (frequency)
}
Como não tenho uma câmera digital disponível não tenho como demonstrar o meu em funcionamento, mas o efeito é basicamente como o visto nos vídeos abaixo:
Quando tiver tempo (muito tempo) pretendo montar uma projeto que não precise do Arduino para operar. Usando apenas componentes eletrônicos… imagino que não seja muito complicado. Alguém disposto a ajudar?
outubro 25, 2009 às 2:22 pm
Sugiro usar o velho NE555. Acho que é o chip ideal para isso e tem um monte de projetos na rede para usar como referencia
Jeronimo
http://www.blogdoje.com.br
Avr, Arduino & ARM