Innholdsfortegnelse:

Arduino Film Camera Shutter Checker: 4 trinn
Arduino Film Camera Shutter Checker: 4 trinn

Video: Arduino Film Camera Shutter Checker: 4 trinn

Video: Arduino Film Camera Shutter Checker: 4 trinn
Video: Shutter Speed Detector with Arduino 2024, Juli
Anonim
Arduino Film Camera Shutter Checker
Arduino Film Camera Shutter Checker
Arduino Film Camera Shutter Checker
Arduino Film Camera Shutter Checker

Nylig kjøpte jeg to brukte gamle filmkameraer. Etter å ha rengjort dem skjønte jeg at lukkerhastigheten kan bli forsinket av støv, korrosjon eller oljemangel, så jeg bestemte meg for å lage noe for å måle den virkelige eksponeringstiden til et kamera, fordi jeg med mine bare øyne ikke kan måle det Dette prosjektet bruker Arduino som hovedkomponent for måling av eksponeringstiden. Vi skal lage et optopar (IR LED og en IR fototransistor) og lese hvor lang tid kameraets lukker er åpen. Først vil jeg forklare den raske måten å nå målet vårt, og til slutt vil vi se all teorien bak dette prosjektet.

Liste over komponenter:

  • 1 x filmkamera
  • 1 x Arduino Uno
  • 2 x 220 Ω Karbonfilmmotstand
  • 1 x IR LED
  • 1 x fototransistor
  • 2 x Små brødbrett (eller 1 stort brødbrett, stort nok til å passe kameraet i midten)
  • Mange hoppere eller kabel

*Disse ekstra komponentene er nødvendige for forklaringsdelen

  • 1 x LED i normal farge
  • 1 x øyeblikkelig trykknapp

Trinn 1: Kabling

Kabling
Kabling
Kabling
Kabling
Kabling
Kabling

Fest først IR -LED -en i det ene brødbrettet og IR -fototransistoren i den andre, slik at vi kan ha dem vendt mot hverandre. Koble en 220 Ω motstand til LED -anoden (det lange benet eller siden uten flat kant) og koble motstanden til 5V strømforsyningen på Arduino. Koble også LED -katoden (kort ben eller siden med flat kant) til en av GND -portene i Arduino.

Deretter koble samlerpinnen på fototransistoren (for meg er det korte benet, men du bør sjekke transistordatabladet for å være sikker på at du kobler det til på riktig måte, eller du kan ende med å blåse opp transistoren) til 220 Ω motstanden og motstanden til pinnen A1 på Arudino, og koble deretter Emitter -pinnen til fototransistoren (det lange benet eller det uten en flat kant). På denne måten har vi alltid IR -lysdioden og fototransistoren satt som en vaskebryter.

Når IR -lyset kommer til transistoren, vil det tillate strøm å passere fra kollektorpinnen til emitterpinnen. Vi setter A1 -pinnen til inngangstrekk, så pinnen vil alltid være i høy tilstand med mindre transistoren synker strømmen til masse.

Trinn 2: Programmering

Sett opp Arduino IDE (port, brett og programmerer) for å matche konfigurasjonen som trengs for Arduino -kortet.

Kopier denne koden, kompiler og last opp:

int readPin = A1; // pin hvor er 330 -motstanden koblet fra fototransistoren

int ptValue, j; // lagringspunktet for dataene som er lest fra analogRead () bool lock; // en bolean som brukes til å lese tilstanden til readPin usignert langtidsur, timer2; dobbelt lest; String select [12] = {"B", "1", "2", "4", "8", "15", "30", "60", "125", "250", "500", "1000"}; lenge forventet [12] = {0, 1000, 500, 250, 125, 67, 33, 17, 8, 4, 2, 1}; ugyldig oppsett () {Serial.begin (9600); // vi satte seriell kommunikasjon til 9600 bits per sekund pinMode (readPin, INPUT_PULLUP); // vi skal sette pinnen alltid høyt bortsett fra når fototransistoren synker, så vi ville "reversert" logikken // det betyr HØYT = intet IR -signal og LAVT = IR -signal mottatt forsinkelse (200); // denne forsinkelsen er for å starte systemet og unngå falske avlesninger j = 0; // initialiserer vår teller} void loop () {lock = digitalRead (readPin); // lese tilstanden til den angitte pinnen og tilordne den til variabelen hvis (! lock) {// bare kjøres når pinnen er LOW timer = micros (); // angi referansetimeren mens (! lås) {// gjør dette mens pinnen er LAV, med andre ord, lukker åpen timer2 = micros (); // ta en forløpt tid sample lock = digitalRead (readPin); // les pin -tilstanden for å vite om lukkeren har lukket} Serial.print ("Position:"); // denne teksten er for å vise den nødvendige informasjonen Serial.print (velg [j]); Serial.print ("|"); Serial.print ("Tid åpnet:"); lest = (timer2 - timer); // beregne hvor lang tid lukkeren var åpen Serial.print (lest); Serial.print ("oss"); Serial.print ("|"); Serial.print ("Forventet:"); Serial.println (forventet [j]*1000); j ++; // øke posisjonen til lukkeren, dette kan gjøres med en knapp}}

Når opplastingen er fullført, åpner du den serielle skjermen (Verktøy -> Seriell skjerm) og forbereder kameraet for avlesninger

Resultatene vises etter ordene "tid åpnet:", all annen informasjon er forhåndsprogrammert.

Trinn 3: Sette opp og måle

Sette opp og måle
Sette opp og måle
Sette opp og måle
Sette opp og måle
Sette opp og måle
Sette opp og måle
Sette opp og måle
Sette opp og måle

Ta av kameralinsene og åpne filmrommet. Hvis du allerede har lastet inn en film, må du huske å fullføre den før du gjør denne prosedyren, ellers ødelegger du bildene som er tatt.

Plasser IR -lysdioden og IR -fototransistoren på motsatte sider av kameraet, den ene på siden av filmen og den andre på siden var linsene. Uansett hvilken side du bruker til LED eller transistor, må du bare sørge for at de får visuell kontakt når lukkeren trykkes ned. For å gjøre dette, sett lukkeren på "1" eller "B" og kontroller den serielle skjermen når du "tar" et bilde. Hvis lukkeren fungerer fint, bør skjermen vise en avlesning. Du kan også plassere et ugjennomsiktig objekt mellom dem og flytte det for å utløse måleprogrammet.

Tilbakestill Arduino med tilbakestillingsknappen og ta bilder en etter en med forskjellige lukkerhastigheter som starter med "B" til "1000". Den serielle skjermen vil skrive ut informasjonen etter at lukkeren lukkes. Som et eksempel kan du se tiden målt fra et Miranda og Praktica filmkamera på de vedlagte bildene.

Bruk denne informasjonen til å gjøre korrigeringer når du tar bilder eller diagnostiserer kameraets tilstand. Hvis du vil rense eller justere kameraet ditt, anbefaler jeg på det sterkeste å sende dem til en eksperttekniker.

Trinn 4: Geeks Stuff

Nørder
Nørder
Nørder
Nørder
Nørder
Nørder
Nørder
Nørder

Transistorer er grunnlaget for all elektronisk teknologi vi ser i dag, de ble først patentert rundt 1925 av en østerriksk-ungarskfødt tysk-amerikansk fysiker. De ble beskrevet som en enhet for å kontrollere strømmen. Før dem måtte vi bruke vakuumrør for å utføre operasjonene transistorer gjør i dag (fjernsyn, forsterkere, datamaskiner).

En transistor har evnen til å kontrollere strømmen som strømmer fra kollektoren til emitteren, og vi kan kontrollere den aktuelle strømmen, i de vanlige transistorene med 3 ben, som påfører strøm på transistorporten. I de fleste transistorer forsterkes portstrømmen, så hvis vi for eksempel bruker 1 mA på porten, får vi 120 mA som strømmer fra senderen. Vi kan tenke oss det som en vannkranventil.

Fototransistoren er en normal transistor, men i stedet for å ha et portben er porten koblet til et fotofølsomt materiale. Dette materialet gir en liten strøm når det blir eksitert av fotoner, i vårt tilfelle, IR -bølgelengdefotoner. Så vi styrer en fototransistor som endrer kraften til IR -lyskilden.

Det er noen spesifikasjoner vi bør ta hensyn til før vi kjøper og kobler til elementene våre. Vedlagt er informasjon hentet fra transistor- og LED -databladene. Først må vi sjekke transistorbruddsspenningen som er den maksimale spenningen den kan håndtere, for eksempel er min nedbrytningsspenning fra emitter til kollektor 5V, så hvis jeg kobler den til feil kilde 8V, steker jeg transistoren. Sjekk også om strømspredningen betyr at det betyr hvor mye strøm som kan levere transistoren før den dør. Min sier 150mW. Ved 5V betyr 150mW 30 mA (watt = V * I). Derfor bestemte jeg meg for å bruke en begrensningsmotstand på 220 Ω, fordi ved 5V tillater en 220 Ω motstand bare å passere en maksimal strøm på 23 mA. (Ohms lov: V = I * R). Samme sak gjelder LED, databladinformasjonen sier at den maksimale strømmen er omtrent 50mA, så en annen 220 Ω motstand vil være ok, fordi vår maksimale utgangsstrøm for Arduino pin er 40 mA, og vi vil ikke brenne pinnene.

Vi må koble til oppsettet vårt som det på bildet. Hvis du bruker knapper som min, må du passe på å sette de to runde utstikkene i midten av brettet. Last deretter opp følgende kode til Arduino.

int readPin = A1; // pin hvor er tilkoblet 220 -motstanden fra fototransistorint ptValue, j; // lagringspunktet for dataene som er lest fra analogRead () void -oppsett () {Serial.begin (9600); } void loop () {ptValue = analogRead (readPin); // vi leser spenningsverdien på readPin (A1) Serial.println (ptValue); // på denne måten sender vi de innleste dataene til den serielle skjermen, slik at vi kan kontrollere hva som skjer forsinkelse (35); // bare en forsinkelse for å gjøre skjermbilder enklere}

Etter opplasting åpner du seriell plotter (Verktøy -> Seriell plotter) og ser hva som skjer når du trykker på IR LED -bryteren. Hvis du vil sjekke om IR -LED -en fungerer (også fjernsynskontroller), må du bare sette mobiltelefonkameraet foran LED -en og ta et bilde. Hvis det er ok, vil du se et blå-lilla lys som kommer fra LED-en.

I serieplotteren kan du differensiere når LED -en er på og av, hvis ikke, sjekk ledningene.

Til slutt kan du endre analogRead -metoden for en digitalRead, slik at du bare kan se 0 eller 1. Jeg foreslår at du gjør en forsinkelse etter oppsettet () for å unngå falsk LAV avlesning, (bilde med en liten LAV topp).

Anbefalt: