Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Recentemente comprei duas câmeras de filme usadas. Depois de limpá-los percebi que a velocidade do obturador poderia estar defasada pela poeira, corrosão ou falta de óleo, então decidi fazer algo para medir o tempo real de exposição de qualquer câmera, pois, a olho nu, não consigo medi-lo precisamente. Este projeto usa o Arduino como o principal componente para medir o tempo de exposição. Vamos fazer um par opto (LED IR e um foto-transistor IR) e ler quanto tempo o obturador da câmera está aberto. Primeiramente, explicarei a maneira rápida de atingir nosso objetivo e, ao final, veremos toda a teoria por trás deste projeto.
Lista de componentes:
- 1 x câmera de filme
- 1 x Arduino Uno
- 2 x 220 Ω resistor de filme de carbono
- 1 x LED IR
- 1 x fototransistor
- 2 placas de ensaio pequenas (ou 1 placa de ensaio grande, grande o suficiente para caber na câmera no centro)
- Muitos jumpers ou cabos
* Esses componentes extras são necessários para a seção de explicação
- 1 x LED de cor normal
- 1 x botão momentâneo
Etapa 1: material de fiação
Primeiro, conecte o LED IR em uma placa de ensaio e o fototransistor IR na outra para que possamos colocá-los frente a frente. Conecte um resistor de 220 Ω ao ânodo do LED (a perna longa ou o lado sem a borda plana) e conecte o resistor à fonte de alimentação de 5 V no Arduino. Também conecte o cátodo do LED (perna curta ou o lado com a borda plana) a uma das portas GND no Arduino.
Em seguida, conecte o pino do coletor no transistor fotográfico (para mim é a perna curta, mas você deve verificar a ficha técnica do transistor para ter certeza de que está conectando da maneira correta ou você pode explodir o transistor) ao resistor de 220 Ω e o resistor ao pino A1 no Arudino, em seguida, conecte o pino Emissor do fototransistor (a perna longa ou a que não tem borda plana). Desta forma, temos o LED IR sempre ligado e o fototransistor configurado como um interruptor sink.
Quando a luz IV chega ao transistor, ela permite que a corrente passe do pino do coletor para o pino do emissor. Vamos definir o pino A1 para puxar a entrada, então, o pino estará sempre em um estado alto, a menos que o transistor diminua a corrente para a massa.
Etapa 2: Programação
Configure seu IDE Arduino (porta, placa e programador) para corresponder à configuração necessária para sua placa Arduino.
Copie este código, compile e faça upload:
int readPin = A1; // pino onde está conectado o 330 resistor do fototransistor
int ptValue, j; // o ponto de armazenamento para os dados lidos de analogRead () bool lock; // um bolean usado para ler o estado de readPin unsigned long timer, timer2; leitura dupla; String select [12] = {"B", "1", "2", "4", "8", "15", "30", "60", "125", "250", "500", "1000"}; esperado há muito tempo [12] = {0, 1000, 500, 250, 125, 67, 33, 17, 8, 4, 2, 1}; void setup () {Serial.begin (9600); // definimos a comunicação serial em 9600 bits por segundo pinMode (readPin, INPUT_PULLUP); // vamos definir o pino sempre alto, exceto quando o fototransistor está afundando, então, "invertemos" a lógica // significa HIGH = nenhum sinal IV e LOW = atraso recebido do sinal IV (200); // este atraso é para deixar o sistema iniciar e evitar leituras falsas j = 0; // inicializando nosso contador} void loop () {lock = digitalRead (readPin); // lendo o estado de um determinado pino e atribuindo-o à variável if (! lock) {// executa somente quando o pino está BAIXO timer = micros (); // define o cronômetro de referência enquanto (! lock) {// faz isso enquanto o pino está BAIXO, em outras palavras, obturador abre cronômetro2 = micros (); // obtém uma amostra de tempo decorrido lock = digitalRead (readPin); // leia o estado do pino para saber se o obturador foi fechado} Serial.print ("Posição:"); // este texto é para exibir as informações adquiridas Serial.print (select [j]); Serial.print ("|"); Serial.print ("Tempo de abertura:"); lido = (temporizador2 - temporizador); // calcula quanto tempo o obturador foi aberto Serial.print (lido); Serial.print ("nós"); Serial.print ("|"); Serial.print ("Esperado:"); Serial.println (esperado [j] * 1000); j ++; // aumenta a posição do obturador, isso pode ser feito com um botão}}
Após o upload ser feito, abra o monitor serial (Ferramentas -> Monitor serial) e prepare a câmera para as leituras
Os resultados são apresentados após as palavras "tempo aberto:", todas as outras informações são pré-programadas.
Etapa 3: Configurando e Medindo
Tire as lentes da câmera e abra o compartimento do filme. Se você já tem um filme carregado, lembre-se de finalizá-lo antes de fazer este procedimento ou você danificará as fotos tiradas.
Coloque o LED IR e o transistor fotográfico IR em lados opostos da câmera, um na lateral do filme e o outro na lateral onde estavam as lentes. Não importa qual lado você use para o LED ou o transistor, apenas certifique-se de que eles tenham contato visual quando o obturador for pressionado. Para fazer isso, coloque o obturador em "1" ou "B" e verifique o monitor serial ao "tirar" uma foto. Se o obturador estiver funcionando bem, o monitor deve mostrar uma leitura. Além disso, você pode colocar um objeto opaco entre eles e movê-lo para acionar o programa de medição.
Reinicialize o Arduino com o botão de reinicialização e tire fotos uma a uma em diferentes velocidades do obturador, começando de "B" a "1000". O monitor serial imprimirá as informações após o fechamento do obturador. Como exemplo você pode ver os tempos medidos a partir de câmeras de filme Miranda e Praktica nas imagens anexadas.
Use essas informações para fazer correções ao tirar fotos ou diagnosticar o estado de sua câmera. Se você deseja limpar ou ajustar sua câmera, recomendo enviá-los a um técnico especializado.
Etapa 4: Coisas Geeks
Os transistores são a base de toda a tecnologia eletrônica que vemos hoje. Eles foram patenteados pela primeira vez por volta de 1925 por um físico germano-americano nascido na Áustria e na Hungria. Eles foram descritos como um dispositivo para controlar a corrente. Antes deles, tínhamos que usar tubos de vácuo para fazer as operações que os transistores fazem hoje (televisão, amplificadores, computadores).
Um transistor tem a capacidade de controlar a corrente que flui do coletor para o emissor e podemos controlar essa corrente, nos transistores comuns com 3 pernas, aplicando corrente na porta do transistor. Na maioria dos transistores, a corrente da porta é amplificada, então, por exemplo, se aplicarmos 1 mA à porta, obteremos 120 mA fluindo do emissor. Podemos imaginá-lo como uma válvula de torneira de água.
O fototransistor é um transistor normal, mas em vez de ter uma perna de portão, o portão é conectado a um material fotossensível. Este material fornece uma pequena corrente quando é excitado por fótons, no nosso caso, fótons de comprimento de onda infravermelho. Portanto, controlamos um foto-transistor modificando a potência da fonte de luz IV.
Existem algumas especificações que devemos levar em consideração antes de comprar e conectar nossos elementos. Em anexo estão as informações recuperadas das planilhas de dados do transistor e LED. Primeiro, precisamos verificar a tensão de ruptura do transistor que é a tensão máxima que ele pode suportar, por exemplo, minha tensão de ruptura do emissor ao coletor é 5V, então se eu ligar a fonte errada de 8V, vou fritar o transistor. Além disso, verifique a dissipação de energia, isso significa quanta corrente pode fornecer ao transistor antes de morrer. O meu diz 150mW. Em 5 V, 150 mW significa fonte de 30 mA (Watts = V * I). Por isso decidi usar um resistor limitador de 220 Ω, pois, em 5V, um resistor de 220 Ω só permite passar uma corrente máxima de 23 mA. (Lei de Ohm: V = I * R). O mesmo caso vale para o LED, as informações da folha de dados dizem que sua corrente máxima é cerca de 50mA, então, outro resistor de 220 Ω estará ok, porque a corrente de saída máxima do nosso pino Arduino é de 40 mA e não queremos queimar os pinos.
Precisamos conectar nossa configuração como a da imagem. Se você estiver usando botões como o meu, tome cuidado para colocar as duas protuberâncias redondas no centro do tabuleiro. Em seguida, carregue o seguinte código para o Arduino.
int readPin = A1; // pino onde está conectado o resistor 220 do fototransistorint ptValue, j; // o ponto de armazenamento para os dados lidos de analogRead () void setup () {Serial.begin (9600); } loop void () {ptValue = analogRead (readPin); // lemos o valor da tensão no readPin (A1) Serial.println (ptValue); // desta forma, enviamos os dados lidos para o monitor serial, para que possamos verificar o que está acontecendo delay (35); // apenas um atraso para facilitar as capturas de tela}
Após fazer o upload, abra sua plotadora serial (Ferramentas -> Plotadora serial) e observe o que acontece quando você pressiona o botão do interruptor LED IR. Se você quiser verificar se o LED IV está funcionando (também controles remotos de tv), basta colocar a câmera do seu celular na frente do LED e tirar uma foto. Se estiver tudo bem, você verá uma luz azul-roxa saindo do LED.
Na plotadora serial você pode diferenciar quando o LED está ligado e desligado, caso contrário, verifique a fiação.
Finalmente, você pode alterar o método analogRead para digitalRead, de forma que você possa ver apenas 0 ou 1. Eu sugiro fazer um atraso após o Setup () para evitar uma leitura LOW falsa, (imagem com um pequeno pico LOW).