İçindekiler:

Arduino Film Kamera Deklanşör Denetleyicisi: 4 Adım
Arduino Film Kamera Deklanşör Denetleyicisi: 4 Adım

Video: Arduino Film Kamera Deklanşör Denetleyicisi: 4 Adım

Video: Arduino Film Kamera Deklanşör Denetleyicisi: 4 Adım
Video: Bluetooth Kontrollü Araç 4WD | Arduino ile Uzaktan Kumandalı Araba Yapımı (HC06/HC05) | (Kod+Şema) 2024, Temmuz
Anonim
Arduino Film Kamera Deklanşör Denetleyicisi
Arduino Film Kamera Deklanşör Denetleyicisi
Arduino Film Kamera Deklanşör Denetleyicisi
Arduino Film Kamera Deklanşör Denetleyicisi

Geçenlerde iki kullanılmış eski film kamerası aldım. Onları temizledikten sonra, toz, korozyon veya yağ eksikliği nedeniyle deklanşör hızının gecikebileceğini fark ettim, bu yüzden herhangi bir kameranın gerçek pozlama süresini ölçmek için bir şeyler yapmaya karar verdim, çünkü çıplak gözlerimle ölçemiyorum. Bu proje, sergi süresini ölçmek için ana bileşen olarak Arduino'yu kullanıyor. Bir opto çifti (IR LED ve bir IR foto-transistör) yapacağız ve kameranın deklanşörünün ne kadar süre açık kaldığını okuyacağız. İlk olarak, hedefimize ulaşmanın hızlı yolunu açıklayacağım ve sonunda bu projenin arkasındaki tüm teoriyi göreceğiz.

Bileşenlerin listesi:

  • 1 x Filmli Kamera
  • 1 x Arduino Uno
  • 2 x 220 Ω Karbon film direnci
  • 1 x IR LED'i
  • 1 x Fototransistör
  • 2 x Küçük devre tahtası (veya 1 büyük devre tahtası, kamerayı merkeze sığdıracak kadar büyük)
  • Birçok jumper veya kablo

*Açıklama bölümü için bu ekstra bileşenlere ihtiyaç vardır.

  • 1 x Normal Renkli LED
  • 1 x Anlık basma düğmesi

Adım 1: Kablolama Malzemesi

Kablolama Malzemesi
Kablolama Malzemesi
Kablolama Malzemesi
Kablolama Malzemesi
Kablolama Malzemesi
Kablolama Malzemesi

İlk olarak, IR LED'i bir devre tahtasına ve IR Fototransistörü diğerine takın, böylece birbirlerine bakmalarını sağlayabiliriz. LED anotuna bir adet 220 Ω direnç bağlayın (uzun bacak veya düz kenarlığı olmayan taraf) ve direnci Arduino'daki 5V güç kaynağına bağlayın. Ayrıca LED katodunu (kısa bacak veya düz kenarlı taraf) Arduino'daki GND portlarından birine bağlayın.

Ardından, fotoğraf transistörüne Toplayıcı pimini bağlayın (benim için kısa bacak, ancak doğru şekilde kabloladığınızdan emin olmak için transistör veri sayfanızı kontrol etmelisiniz veya transistörü patlatmayı bitirebilirsiniz) 220 Ω dirence ve direnci Arudino'daki A1 pimine bağlayın, ardından foto transistörün Verici pimini (uzun bacak veya düz kenarlı tarafı olmayan) bağlayın. Bu şekilde, IR LED'i her zaman açık ve foto transistörü bir lavabo anahtarı olarak ayarlıyoruz.

IR ışığı transistöre ulaştığında, akımın Toplayıcı piminden Verici pime geçmesine izin verecektir. A1 pinini giriş yukarı çekecek şekilde ayarlayacağız, böylece transistör akımı kütleye düşürmedikçe pin her zaman yüksek durumda olacaktır.

Adım 2: Programlama

Arduino IDE'nizi (bağlantı noktası, kart ve programlayıcı) Arduino kartınız için gereken yapılandırmaya uyacak şekilde ayarlayın.

Bu kodu kopyalayın, derleyin ve yükleyin:

int readPin = A1; //fototransistörden 330 direncin bağlı olduğu yeri pin

int ptValue, j; //analogRead() bool lock'tan okunan verilerin saklama noktası; // readPin unsigned long timer durumunu okumak için kullanılan bir bolean, timer2; çift okundu; Dize seçimi[12] = {"B", "1", "2", "4", "8", "15", "30", "60", "125", "250", "500", "1000"}; uzun zamandır beklenen [12] = {0, 1000, 500, 250, 125, 67, 33, 17, 8, 4, 2, 1}; geçersiz kurulum(){ Serial.begin(9600); //seri iletişimi saniyede 9600 bit olarak ayarladık pinMode(readPin, INPUT_PULLUP); //foto transistörün batması dışında pini her zaman yüksek ayarlayacağız, bu yüzden mantığı "tersine çevirdik" //bu YÜKSEK = IR sinyali yok ve DÜŞÜK = IR sinyali alındı gecikmesi (200); //bu gecikme, sistemin başlamasını sağlamak ve yanlış okumalardan kaçınmak içindir j = 0; //sayacımızı başlatıyoruz } void loop(){ lock = digitalRead(readPin); //verilen pinin durumunu okuma ve onu değişkene atama if (!lock){ //sadece pin LOW zamanlayıcı = micros(); //referans zamanlayıcıyı ayarla while (!lock){ //bunu pin DÜŞÜKken yap, diğer bir deyişle, deklanşör açma zamanlayıcı2 = micros();// geçen zaman örneğini al kilit = digitalRead(readPin); // panjurun kapanıp kapanmadığını öğrenmek için pin durumunu okuyun } Serial.print("Konum: "); //bu metin istenen bilgileri görüntülemek içindir Serial.print(select[j]); Seri.print(" | "); Serial.print("Açılma zamanı: "); okunan = (zamanlayıcı2 - zamanlayıcı); // deklanşörün ne kadar süre açık kaldığını hesapla Serial.print (okundu); Serial.print("biz"); Seri.print(" | "); Serial.print("Beklenen: "); Serial.println(beklenen[j]*1000); j ++;// deklanşörün konumunu artırın, bu bir düğme ile yapılabilir } }

Yükleme tamamlandıktan sonra seri monitörü açın (Araçlar -> Seri monitör) ve kamerayı okumalar için hazırlayın

Sonuçlar "time open:" kelimelerinden sonra gösterilir, diğer tüm bilgiler önceden programlanmıştır.

Adım 3: Kurulum ve Ölçüm

Kurulum ve Ölçüm
Kurulum ve Ölçüm
Kurulum ve Ölçüm
Kurulum ve Ölçüm
Kurulum ve Ölçüm
Kurulum ve Ölçüm
Kurulum ve Ölçüm
Kurulum ve Ölçüm

Kamera lenslerinizi çıkarın ve film bölmesini açın. Zaten yüklü bir filminiz varsa, bu işlemi yapmadan önce bitirmeyi unutmayın, aksi takdirde çekilen fotoğraflara zarar verirsiniz.

IR LED'i ve IR foto transistörünü kameranın karşı taraflarına, biri filmin yanına, diğeri ise lenslerin bulunduğu yan tarafa yerleştirin. LED veya transistör için hangi tarafı kullanırsanız kullanın, deklanşöre basıldığında görsel temas kurduklarından emin olun. Bunu yapmak için, deklanşörü "1" veya "B"ye ayarlayın ve fotoğraf "çekerken" seri monitörü kontrol edin. Deklanşör iyi çalışıyorsa, monitör bir okuma göstermelidir. Ayrıca, aralarına opak bir nesne yerleştirebilir ve ölçüm programını tetiklemek için hareket ettirebilirsiniz.

Arduino'yu reset butonu ile resetleyin ve "B" ile "1000" arasında değişen farklı enstantane hızlarında tek tek fotoğraf çekin. Seri monitör, deklanşör kapandıktan sonra bilgileri yazdıracaktır. Örnek olarak ekteki resimlerde Miranda ve Praktica film kameralarından ölçülen süreleri görebilirsiniz.

Fotoğraf çekerken düzeltmeler yapmak veya kameranızın durumunu teşhis etmek için bu bilgileri kullanın. Kameranızı temizlemek veya ayarlamak istiyorsanız, onları uzman bir teknisyene göndermenizi şiddetle tavsiye ederim.

Adım 4: Geeks Şeyleri

Geeks Şeyler
Geeks Şeyler
Geeks Şeyler
Geeks Şeyler
Geeks Şeyler
Geeks Şeyler
Geeks Şeyler
Geeks Şeyler

Transistörler, bugün gördüğümüz tüm elektronik teknolojinin temelidir, ilk olarak 1925'te Avusturya-Macaristan doğumlu bir Alman-Amerikalı fizikçi tarafından patentlendiler. Akımı kontrol etmek için bir cihaz olarak tanımlandılar. Onlardan önce, transistörlerin bugün yaptığı işlemleri (televizyon, amplifikatörler, bilgisayarlar) yapmak için vakum tüpleri kullanmamız gerekiyordu.

Bir transistör, kollektörden emitöre akan akımı kontrol etme yeteneğine sahiptir ve bu akımı, 3 ayaklı ortak transistörlerde, transistör kapısına akım uygulayarak kontrol edebiliriz. Çoğu transistörde geçit akımı yükseltilir, bu nedenle, örneğin, kapıya 1 mA uygularsak, emitörden 120 mA akar. Bunu bir su musluğu vanası olarak hayal edebiliriz.

Foto transistör normal bir transistördür ancak kapı ayağı yerine kapı ışığa duyarlı bir malzemeye bağlanmıştır. Bu malzeme, fotonlar, bizim durumumuzda IR dalga boyu fotonları tarafından uyarıldığında küçük bir akım sağlar. Böylece, IR ışık kaynağının gücünü değiştiren bir foto transistörü kontrol ediyoruz.

Elemanlarımızı satın almadan ve kablolamadan önce dikkate almamız gereken bazı özellikler var. Ekli, transistör ve LED veri sayfalarından alınan bilgilerdir. İlk olarak, kaldırabileceği maksimum voltaj olan transistör arıza voltajını kontrol etmemiz gerekiyor, örneğin, emitörden kollektöre arıza voltajım 5V, bu nedenle 8V kaynaklı yanlış kablolarsam, transistörü kızartırım. Ayrıca, güç kaybını kontrol edin, bu, transistörün ölmeden önce ne kadar akım iletebileceği anlamına gelir. Benimki 150mW diyor. 5V'de 150mW, 30 mA (Watt = V * I) kaynak sağlamak anlamına gelir. Bu yüzden 220 Ω sınırlayıcı direnç kullanmaya karar verdim, çünkü 5V'de 220 Ω direnç yalnızca maksimum 23 mA akımın geçmesine izin verir. (Ohm Yasası: V = I * R). Aynı durum LED için de geçerli, veri sayfası bilgisi maksimum akımının yaklaşık 50mA olduğunu söylüyor, bu nedenle, başka bir 220 Ω direnç iyi olacak, çünkü Arduino pin maksimum çıkış akımımız 40 mA ve pinleri yakmak istemiyoruz.

Kurulumumuzu resimdeki gibi kablolamamız gerekiyor. Benimki gibi düğmeler kullanıyorsanız, iki yuvarlak çıkıntıyı tahtanın ortasına koymaya dikkat edin. Ardından, aşağıdaki kodu Arduino'ya yükleyin.

int readPin = A1; // 220direncinin fototransistörden bağlı olduğu pin ptValue, j; //analogRead()'dan okunan verilerin saklama noktası void setup() { Serial.begin(9600); } void loop() { ptValue = analogRead(readPin); //readPin (A1) üzerindeki voltaj değerini okuyoruz Seri.println(ptValue); //bu şekilde okunan verileri seri monitöre gönderiyoruz, böylece ne olduğunu kontrol edebiliyoruz delay(35); //ekran görüntülerini kolaylaştırmak için sadece bir gecikme }

Yükledikten sonra seri çizicinizi açın (Araçlar -> Seri çizici) ve IR LED anahtar düğmesine bastığınızda ne olduğunu izleyin. IR LED'in çalışıp çalışmadığını kontrol etmek istiyorsanız (ayrıca tv uzaktan kumandaları) cep telefonunuzun kamerasını LED'in önüne koyun ve bir fotoğraf çekin. Sorun yoksa, LED'den gelen mavi-mor bir ışık göreceksiniz.

Seri çizicide LED'in ne zaman açık ve kapalı olduğunu ayırt edebilirsiniz, değilse kablolamanızı kontrol edin.

Son olarak, bir digitalRead için analogRead yöntemini değiştirebilirsiniz, böylece sadece 0 veya 1'i görebilirsiniz. Yanlış bir DÜŞÜK okumadan kaçınmak için Kurulum()'dan sonra bir gecikme yapmanızı öneririm (küçük bir DÜŞÜK tepe noktası olan resim).

Önerilen: