Kazalo:

Preverjanje zaklopa filmske kamere Arduino: 4 koraki
Preverjanje zaklopa filmske kamere Arduino: 4 koraki

Video: Preverjanje zaklopa filmske kamere Arduino: 4 koraki

Video: Preverjanje zaklopa filmske kamere Arduino: 4 koraki
Video: CS50 2013 - Week 9 2024, Julij
Anonim
Preverjevalnik zaklopa filmske kamere Arduino
Preverjevalnik zaklopa filmske kamere Arduino
Preverjevalnik zaklopa filmske kamere Arduino
Preverjevalnik zaklopa filmske kamere Arduino

Pred kratkim sem kupil dve rabljeni filmski kameri. Ko sem jih očistil, sem spoznal, da lahko hitrost zaklopa zaostaja zaradi prahu, korozije ali pomanjkanja olja, zato sem se odločil, da naredim nekaj za merjenje dejanskega časa osvetlitve katerega koli fotoaparata, ker ga z golimi očmi ne morem izmeriti Ta projekt uporablja Arduino kot glavno komponento za merjenje časa razstavljanja. Naredili bomo opto par (IR LED in IR fototranzistor) in prebrali, koliko časa je odprt zaslon fotoaparata. Najprej bom razložil hiter način za dosego našega cilja, na koncu pa bomo videli vso teorijo tega projekta.

Seznam sestavnih delov:

  • 1 x filmska kamera
  • 1 x Arduino Uno
  • 2 x 220 Ω upor iz ogljikovega filma
  • 1 x IR LED
  • 1 x fototranzistor
  • 2 x majhne plošče (ali 1 velika plošča, dovolj velika, da se fotoaparat prilega na sredino)
  • Veliko skakalcev ali kablov

*Te dodatne komponente so potrebne za razlago

  • 1 x LED normalne barve
  • 1 x trenuten gumb

1. korak: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Najprej v eno ploščo pritrdite IR LED, v drugo pa IR fototranzistor, tako da sta lahko obrnjena drug proti drugemu. Priključite en upor 220 Ω na anodo LED (dolga noga ali stran brez ravne obrobe) in upor priključite na 5V napajanje na Arduinu. LED katodo (kratka noga ali stran s ravno obrobo) priključite tudi na eno od vrat GND v Arduinu.

Nato priključite kolektorski zatič na foto tranzistorju (zame je to kratka noga, vendar morate preveriti podatkovni list tranzistorja, da se prepričate, da ga ožičite na pravilen način, ali pa lahko tranzistor končate z razstrelitvijo) na 220 Ω upor in upor na zatič A1 na Arudinu, nato priključite oddajniški zatič fototranzistorja (dolga noga ali tista brez ravne obrobe). Tako imamo IR LED vedno prižgano in foto tranzistor nastavljen kot stikalo za umivalnik.

Ko IR lučka prispe do tranzistorja, bo omogočila pretok toka od kolektorskega zatiča do oddajnega zatiča. Pin A1 bomo nastavili za vhodni dvig, zato bo pin vedno v visokem stanju, razen če tranzistor potopi tok v maso.

2. korak: Programiranje

Arduino IDE (vrata, plošče in programer) nastavite tako, da ustreza konfiguraciji, ki je potrebna za vašo ploščo Arduino.

Kopirajte to kodo, sestavite in naložite:

int readPin = A1; // pin, kamor je priključen 330 -upor iz fototranzistorja

int ptValue, j; // shrambna točka za podatke, prebrane iz bool lock analogRead (); // bolean, ki se uporablja za branje stanja readPin brez podpisanega dolgega časovnika, timer2; dvojno branje; Izbira niza [12] = {"B", "1", "2", "4", "8", "15", "30", "60", "125", "250", "500", "1000"}; dolgo pričakovano [12] = {0, 1000, 500, 250, 125, 67, 33, 17, 8, 4, 2, 1}; void setup () {Serial.begin (9600); // serijsko komunikacijo nastavimo na 9600 bitov na sekundo pinMode (readPin, INPUT_PULLUP); // pin bomo nastavili vedno visoko, razen kadar foto tranzistor tone, zato smo logiko "obrnili" // to pomeni HIGH = brez IR signala in LOW = IR signal zakasnitve (200); // ta zamuda je namenjena, da se sistem zažene in se izogne lažnim odčitkom j = 0; // inicializiranje našega števca} void loop () {lock = digitalRead (readPin); // beremo stanje danega zatiča in ga dodelimo spremenljivki if (! lock) {// zaženemo le, če je nožica LOW timer = micros (); // nastavite referenčni časovnik while (! lock) {// to storite, ko je pin NIZKI, z drugimi besedami, časovnik za odpiranje zaklopa2 = micros (); // vzemite zaklepanje vzorca preteklega časa = digitalRead (readPin); // preberemo stanje zatiča, da ugotovimo, ali se je zaklop zaprl} Serial.print ("Položaj:"); // to besedilo je za prikaz zahtevanih informacij Serial.print (izberite [j]); Serial.print ("|"); Serial.print ("Čas odprtja:"); prebrano = (timer2 - timer); // izračunamo, koliko časa je bila zaklopka odprta Serial.print (prebrano); Serial.print ("mi"); Serial.print ("|"); Serial.print ("Pričakovano:"); Serial.println (pričakovano [j]*1000); j ++; // povečajte položaj zaklopa, to lahko storite s tipko}}

Ko je nalaganje končano, odprite serijski monitor (Orodja -> Serijski monitor) in pripravite kamero za odčitavanje

Rezultati so prikazani po besedah "odprt čas:", vsi drugi podatki so vnaprej programirani.

3. korak: Nastavitev in merjenje

Nastavitev in merjenje
Nastavitev in merjenje
Nastavitev in merjenje
Nastavitev in merjenje
Nastavitev in merjenje
Nastavitev in merjenje
Nastavitev in merjenje
Nastavitev in merjenje

Snemite objektive fotoaparata in odprite predal za film. Če imate film že naložen, ga ne pozabite končati, preden izvedete ta postopek, sicer boste poškodovali posnete fotografije.

IR LED in IR foto tranzistor postavite na nasprotni strani fotoaparata, enega na stran filma, drugega pa na stran, kjer so leče. Ne glede na to, katero stran uporabljate za LED ali tranzistor, se prepričajte, da vizualno stikajo, ko pritisnete sprožilec. Če želite to narediti, nastavite zaklop na "1" ali "B" in preverite serijski monitor, ko "fotografirate" fotografijo. Če zaslonka dobro deluje, mora monitor prikazati odčitke. Prav tako lahko med njih postavite neprozoren predmet in ga premaknete, da sprožite merilni program.

Ponastavite Arduino z gumbom za ponastavitev in fotografirajte eno za drugo pri različnih hitrostih zaklopa od "B" do "1000". Serijski monitor bo natisnil informacije, ko se zaklop zapre. Kot primer lahko vidite priložene posnetke, merjene s filmskimi kamerami Miranda in Praktica.

Uporabite te podatke za popravek pri fotografiranju ali diagnosticiranje stanja fotoaparata. Če želite očistiti ali prilagoditi fotoaparat, toplo priporočam, da ga pošljete strokovnemu tehniku.

4. korak: Stvari geekov

Geeks stvari
Geeks stvari
Geeks stvari
Geeks stvari
Geeks stvari
Geeks stvari
Geeks stvari
Geeks stvari

Tranzistorji so osnova vse elektronske tehnologije, ki jo vidimo danes, prvič jih je okrog leta 1925 patentiral nemško-ameriški fizik, rojen v Avstro-Ogrski. Opisani so bili kot naprava za nadzor toka. Pred njimi smo morali uporabljati vakuumske cevi za operacije, ki jih danes opravljajo tranzistorji (televizija, ojačevalniki, računalniki).

Tranzistor ima možnost krmiljenja toka, ki teče od zbiralnika do oddajnika, in ta tok lahko nadzorujemo v običajnih tranzistorjih s tremi kraki, ki uporabljajo tok na vratih tranzistorja. V večini tranzistorjev se tok vrat poveča, tako da na primer, če na vrata vložimo 1 mA, dobimo 120 mA, ki teče iz oddajnika. Lahko si ga predstavljamo kot ventil za pipo za vodo.

Fotografski tranzistor je običajen tranzistor, vendar so vrata namesto noge za vrata povezana s foto občutljivim materialom. Ta material izvira majhen tok, ko ga vzbudijo fotoni, v našem primeru fotoni IR valovne dolžine. Tako nadzorujemo foto tranzistor, ki spreminja moč vira IR svetlobe.

Pred nakupom in ožičenjem naših elementov moramo upoštevati nekatere specifikacije. Priložene so informacije, pridobljene iz podatkovnih listov tranzistorja in LED. Najprej moramo preveriti prekinitveno napetost tranzistorja, ki je največja napetost, ki jo lahko prenese, na primer, moja prekinitvena napetost od oddajnika do zbiralnika je 5V, zato, če napajam napajalni vir 8V, bom tranzistor ocvrt. Preverite tudi odvajanje moči, kar pomeni, koliko toka lahko tranzistor odda pred smrtjo. Moj pravi 150mW. Pri 5V 150mW pomeni vir 30 mA (vati = V * I). Zato sem se odločil za uporabo omejevalnega upora 220 Ω, ker pri 5V upor 220 Ω omogoča prenašanje največjega toka 23 mA. (Ohmov zakon: V = I * R). Isti primer velja za LED, podatki v podatkovnem listu pravijo, da je njegov največji tok približno 50 mA, zato bo še en upor 220 Ω v redu, saj je naš največji izhodni tok na pin Arduino 40 mA in nočemo zažgati zatičev.

Moramo povezati našo nastavitev tako, kot je na sliki. Če uporabljate gumbe, kot je moja, pazite, da dve okrogli izboklini postavite na sredino plošče. Nato naložite naslednjo kodo v Arduino.

int readPin = A1; // pin, kjer je priključen 220 upor iz fototranzistorta ptValue, j; // shranjevalna točka za podatke, prebrane iz analogRead () void setup () {Serial.begin (9600); } void loop () {ptValue = analogRead (readPin); // beremo vrednost napetosti na readPin (A1) Serial.println (ptValue); // na ta način odčitane podatke pošljemo na serijski monitor, tako da lahko preverimo, kaj se dogaja z zamudo (35); // samo zamuda za olajšanje posnetkov zaslona}

Po nalaganju odprite serijski ploter (Orodja -> Serijski ploter) in opazujte, kaj se zgodi, ko pritisnete gumb stikala IR LED. Če želite preveriti, ali IR LED deluje (tudi televizijski daljinci), samo postavite kamero mobilnega telefona pred LED in naredite fotografijo. Če je v redu, boste videli LED modro-vijolično svetlobo.

V serijskem ploterju lahko ločite, kdaj LED sveti in ugasne, če ne, preverite ožičenje.

Končno lahko spremenite metodo analogRead za digitalRead, tako da vidite samo 0 ali 1. Predlagam, da po nastavitvi () naredite zamudo, da se izognete napačnemu nizkemu branju (slika z enim majhnim nizkim vrhom).

Priporočena: