Talaan ng mga Nilalaman:

Arduino Film Camera Shutter Checker: 4 Hakbang
Arduino Film Camera Shutter Checker: 4 Hakbang

Video: Arduino Film Camera Shutter Checker: 4 Hakbang

Video: Arduino Film Camera Shutter Checker: 4 Hakbang
Video: Shutter Speed Detector with Arduino 2024, Hulyo
Anonim
Arduino Film Camera Shutter Checker
Arduino Film Camera Shutter Checker
Arduino Film Camera Shutter Checker
Arduino Film Camera Shutter Checker

Kamakailan ay bumili ako ng dalawang gamit na lumang camera ng pelikula. Matapos linisin ang mga ito napagtanto ko na ang bilis ng shutter ay maaaring mahuli ng alikabok, kaagnasan o kakulangan ng langis, kaya't napagpasyahan kong gumawa ng isang bagay para sa pagsukat ng totoong oras ng paglalahad ng anumang camera, sapagkat, sa aking walang mga mata, hindi ko ito masusukat tumpak. Ang proyektong ito ay gumagamit ng Arduino bilang pangunahing sangkap para sa pagsukat ng oras ng paglalahad. Gagawa kami ng isang opto na pares (IR LED at isang IR photo-transistor) at basahin kung gaano karaming oras ang bukas ng shutter ng camera. Una, ipapaliwanag ko ang mabilis na paraan upang makamit ang aming layunin at, sa huli, makikita natin ang lahat ng teorya sa likod ng proyektong ito.

Listahan ng mga bahagi:

  • 1 x Film Camera
  • 1 x Arduino Uno
  • 2 x 220 Ω Carbon film resistor
  • 1 x IR LED
  • 1 x Phototransistor
  • 2 x Maliit na mga breadboard (o 1 malaking breadboard, sapat na malaki upang magkasya ang camera sa gitna)
  • Maraming mga jumper o cable

* Ang mga sobrang sangkap na ito ay kinakailangan para sa seksyon ng paliwanag

  • 1 x Karaniwang LED na Kulay
  • 1 x Pansamantalang pindutan ng push

Hakbang 1: Mga Bagay na Kable

Mga Bagay na Kable
Mga Bagay na Kable
Mga Bagay na Kable
Mga Bagay na Kable
Mga Bagay na Kable
Mga Bagay na Kable

Una, ikabit ang IR LED sa isang breadboard at ang IR Phototransistor sa isa pa upang mapaharap namin sila. Ikonekta ang isang resistor na 220 Ω sa LED anode (ang mahabang binti o gilid na walang patag na hangganan) at ikonekta ang risistor sa 5V power supply sa Arduino. Ikonekta din ang LED cathode (maikling binti o ang gilid na may patag na hangganan) sa isa sa mga port ng GND sa Arduino.

Susunod, i-wire ang kolektor ng pin sa transistor ng larawan (para sa akin ang maikling binti, ngunit dapat mong suriin ang iyong datosheet ng transistor upang matiyak na ikaw ang nakakabit nito sa wastong paraan o maaari mong tapusin ang pagbuga ng transistor) sa resistor na 220 and at ang risistor sa pin A1 sa Arudino, pagkatapos ay ikonekta ang Emitter pin ng photo transistor (ang mahabang binti o ang isang walang patag na gilid ng hangganan). Sa ganitong paraan mayroon kaming IR LED palaging nakabukas at itinakda ang photo transistor bilang isang switch switch.

Kapag dumating ang ilaw ng IR sa transistor papayagan nito ang kasalukuyang dumaan mula sa Collector pin sa Emitter pin. Itatakda namin ang A1 pin sa input pull, kaya, ang pin ay laging nasa isang mataas na estado maliban kung ang transistor ay lumubog ang kasalukuyang sa masa.

Hakbang 2: Programming

I-set up ang iyong Arduino IDE (port, board at programmer) upang tumugma sa kinakailangang pagsasaayos para sa iyong Arduino board.

Kopyahin ang code na ito, i-compile at i-upload:

int readPin = A1; // pin kung saan ay konektado ang 330resistor mula sa phototransistor

int ptValue, j; // ang imbakan point para sa data na binasa mula sa analogRead () bool lock; // a bolean used to read the state of readPin unsigned long timer, timer2; binasa nang doble; Piliin ang string [12] = {"B", "1", "2", "4", "8", "15", "30", "60", "125", "250", "500", "1000"}; matagal nang inaasahan [12] = {0, 1000, 500, 250, 125, 67, 33, 17, 8, 4, 2, 1}; void setup () {Serial.begin (9600); // itinakda namin ang serial na komunikasyon sa 9600 bits bawat segundo pinMode (readPin, INPUT_PULLUP); // itatakda namin ang pin na palaging mataas maliban kung ang photo transistor ay lumulubog, kaya, "baligtarin" namin ang lohika // nangangahulugan ito ng TAAS = walang IR signal at LOW = IR signal na natanggap na pagkaantala (200); // this delay is for lettin the system start and pag-iwas sa maling pagbasa j = 0; // initializing our counter} void loop () {lock = digitalRead (readPin); // pagbabasa ng estado ng ibinigay na pin at italaga ito sa variable kung (! lock) {// tumakbo lamang kapag ang pin ay LOW timer = micros (); // itakda ang sanggunian timer habang (! lock) {// gawin ito habang ang PIN ay mababa, sa madaling salita, shutter open timer2 = micros (); // kumuha ng isang lumipas na oras sample lock = digitalRead (readPin); // basahin ang pin na estado upang malaman kung ang shutter ay nagsara} Serial.print ("Posisyon:"); // ang teksto na ito ay para sa pagpapakita ng adquired na impormasyon Serial.print (piliin ang [j]); Serial.print ("|"); Serial.print ("Binuksan ang oras:"); nabasa = (timer2 - timer); // kalkulahin kung gaano karaming oras ang shutter bukas Serial.print (nabasa); Serial.print ("amin"); Serial.print ("|"); Serial.print ("Inaasahan:"); Serial.println (inaasahan na [j] * 1000); j ++; // taasan ang posisyon ng shutter, magagawa ito sa isang pindutan}}

Matapos ang pag-upload ay tapos na, buksan ang serial monitor (Tools -> Serial monitor) at ihanda ang camera para sa mga pagbabasa

Ang mga resulta ay ipinapakita pagkatapos ng "oras na binuksan:" mga salita, ang lahat ng iba pang impormasyon ay paunang na-program.

Hakbang 3: Pag-set up at Pagsukat

Pag-set up at Pagsukat
Pag-set up at Pagsukat
Pag-set up at Pagsukat
Pag-set up at Pagsukat
Pag-set up at Pagsukat
Pag-set up at Pagsukat
Pag-set up at Pagsukat
Pag-set up at Pagsukat

Tanggalin ang iyong mga lente ng camera at buksan ang kompartimento ng pelikula. Kung mayroon ka nang na-load na isang pelikula, tandaan na tapusin ito bago gawin ang pamamaraang ito o mapinsala mo ang mga kunan ng larawan.

Ilagay ang IR LED at ang IR photo transistor sa kabaligtaran ng camera, isa sa gilid ng pelikula at ang isa pa sa gilid ay ang mga lente. Hindi alintana kung aling panig ang iyong ginagamit para sa LED o transistor, tiyakin lamang na nakakagawa sila ng visual na contact kapag pinindot ang shutter. Upang magawa ito, itakda ang shutter sa "1" o "B" at suriin ang serial monitor kapag "kumukuha" ng isang larawan. Kung ang shutter ay maganda ang pagtatrabaho ang monitor ay dapat magpakita ng isang pagbabasa. Gayundin, maaari kang maglagay ng isang opaque na bagay sa pagitan nila at ilipat ito upang ma-trigger ang pagsukat ng programa.

I-reset ang Arduino gamit ang pindutan ng pag-reset at kumuha ng mga larawan nang paisa-isa sa iba't ibang mga bilis ng shutter na nagsisimula sa "B" hanggang "1000". I-print ng serial monitor ang impormasyon pagkatapos magsara ang shutter. Bilang isang halimbawa maaari mong makita ang mga oras na sinusukat mula sa isang Miranda at Praktica film camera sa mga nakakabit na imahe.

Gamitin ang impormasyong ito upang gumawa ng mga pagwawasto kapag kumukuha ng mga larawan o masuri ang estado ng iyong camera. Kung nais mong linisin o i-tune ang iyong camera, lubos kong inirerekumenda na ipadala ang mga ito sa isang dalubhasang tekniko.

Hakbang 4: Geeks Stuff

Geeks Bagay
Geeks Bagay
Geeks Bagay
Geeks Bagay
Geeks Bagay
Geeks Bagay
Geeks Bagay
Geeks Bagay

Ang mga Transistor ay ang batayan ng lahat ng teknolohiyang elektronikong nakikita natin ngayon, una silang na-patente noong 1925 ng isang physicist na Aleman-Amerikano na ipinanganak sa Austro-Hungarian. Inilarawan sila bilang isang aparato para sa pagkontrol ng kasalukuyang. Bago ang mga ito, kailangan naming gumamit ng mga vacuum tubes upang gawin ang ginagawa ng mga transistors ngayon (telebisyon, amplifier, computer).

Ang isang transistor ay may kakayahang kontrolin ang kasalukuyang dumadaloy mula sa kolektor patungo sa emitter at makokontrol namin ang kasalukuyang iyon, sa mga karaniwang transistor na may 3 mga binti, na naglalapat ng kasalukuyang sa gate ng transistor. Sa karamihan ng mga transistors ang kasalukuyang gate ay pinalakas, kaya, halimbawa, kung mag-apply kami ng 1 mA sa gate, nakakakuha kami ng 120 mA na dumadaloy mula sa emitter. Maaari nating isipin ito bilang isang balbula ng gripo ng tubig.

Ang photo transistor ay isang normal na transistor ngunit sa halip na magkaroon ng isang leg ng gate, ang gate ay konektado sa isang matinong materyal na larawan. Ang materyal na ito ay nagmumula sa isang maliit na kasalukuyang kapag ito ay nasasabik sa pamamagitan ng mga photon, sa aming kaso, IR mga photon ng haba ng daluyong. Kaya, kinokontrol namin ang isang photo transistor na binabago ang lakas ng pinagmulang IR light.

Mayroong ilang mga pagtutukoy na dapat nating isaalang-alang sa account bago bumili at mag-kable ng aming mga elemento. Nakalakip ang impormasyong nakuha mula sa transistor at LED datasheets. Una, kailangan naming suriin ang boltahe ng breakdown ng transistor na kung saan ay ang pinakamataas na boltahe na mahahawakan nito, halimbawa, ang aking boltahe ng breakdown mula sa emitter hanggang sa kolektor ay 5V, kaya't kung mali ang pag-wire ko ng 8V, iprito ko ang transistor. Gayundin, suriin para sa pagwawaldas ng kuryente, nangangahulugan ito kung magkano ang kasalukuyang maaaring makapaghatid ng transistor bago mamatay. Ang sabi sa akin 150mW. Sa 5V, 150mW ay nangangahulugang pagkukuha ng 30 mA (Watts = V * I). Iyon ang dahilan kung bakit napagpasyahan kong gumamit ng isang limiter risistor na 220 Ω, sapagkat, sa 5V, pinapayagan lamang ng isang resistor na 220 to na pumasa sa isang kasalukuyang kasalukuyang 23 mA. (Batas ng Ohm: V = I * R). Parehong kaso ang napupunta para sa LED, sinabi ng impormasyon ng sheet sheet na ang max kasalukuyang ay tungkol sa 50mA, kaya, ang isa pang 220 Ω risistor ay magiging ok, dahil ang aming Arduino pin max output kasalukuyang ay 40 mA at hindi namin nais na sunugin ang mga pin.

Kailangan naming i-wire ang aming pag-setup bilang isa sa larawan. Kung gumagamit ka ng mga pindutan tulad ng sa akin, mag-ingat na ilagay ang dalawang bilog na mga protuberance sa gitna ng pisara. Pagkatapos, i-upload ang sumusunod na code sa Arduino.

int readPin = A1; // pin kung saan ay konektado ang 220resistor mula sa phototransistorint ptValue, j; // ang storage point para sa data na binasa mula sa analogRead () void setup () {Serial.begin (9600); } void loop () {ptValue = analogRead (readPin); // nabasa natin ang halaga ng boltahe sa readPin (A1) Serial.println (ptValue); // sa ganitong paraan, ipinapadala namin ang nabasang data sa serial monitor, upang masuri namin kung ano ang nangyayari pagkaantala (35); // isang pagkaantala lamang upang gawing mas madali ang mga screenshot}

Matapos ang pag-upload, buksan ka ng serial plotter (Tools -> Serial plotter) at panoorin kung ano ang nangyayari kapag pinilit mo ang iyong IR LED switch button. Kung nais mong suriin kung gumagana ang IR LED (pati na rin ang tv remotes) ilagay lamang ang iyong camera ng cellphone sa harap ng LED at kumuha ng litrato. Kung ok lang makikita mo ang isang asul-lila na ilaw na nagmumula sa LED.

Sa serial plotter maaari mong makilala kung ang LED ay naka-on at naka-off, kung hindi, suriin ang iyong mga kable.

Sa wakas, maaari mong baguhin ang pamamaraan ng analogRead para sa isang digitalRead, upang makita mo lamang ang 0 o 1. Iminumungkahi kong gumawa ng isang pagkaantala pagkatapos ng Pag-set up () upang maiwasan ang isang maling LOW na basahin, (larawan na may isang maliit na TALAK na rurok).

Inirerekumendang: