Spisu treści:

Kontroler migawki kamery filmowej Arduino: 4 kroki
Kontroler migawki kamery filmowej Arduino: 4 kroki

Wideo: Kontroler migawki kamery filmowej Arduino: 4 kroki

Wideo: Kontroler migawki kamery filmowej Arduino: 4 kroki
Wideo: MIGAWKI 08: JAK USTAWIĆ INTERWAŁOMETR? #shorts 2024, Listopad
Anonim
Kontroler migawki kamery filmowej Arduino
Kontroler migawki kamery filmowej Arduino
Kontroler migawki kamery filmowej Arduino
Kontroler migawki kamery filmowej Arduino

Niedawno kupiłem dwa używane stare aparaty filmowe. Po ich wyczyszczeniu zdałem sobie sprawę, że czas otwarcia migawki może być opóźniony przez kurz, korozję lub brak oleju, więc postanowiłem zrobić coś do pomiaru rzeczywistego czasu ekspozycji dowolnego aparatu, ponieważ gołym okiem nie mogę tego zmierzyć dokładnie. Ten projekt wykorzystuje Arduino jako główny komponent do pomiaru czasu ekspozycji. Złożymy optyczną parę (dioda IR i fototranzystor IR) i odczytamy ile czasu pozostaje otwarta migawka aparatu. Najpierw wyjaśnię szybką drogę do osiągnięcia naszego celu, a na koniec poznamy całą teorię stojącą za tym projektem.

Lista komponentów:

  • 1 x kamera filmowa
  • 1 x Arduino Uno
  • 2x220 Ω rezystor z folii węglowej
  • 1 x dioda podczerwieni
  • 1 x fototranzystor
  • 2 x małe płytki stykowe (lub 1 duża płytka stykowa, wystarczająco duża, aby zmieścić aparat na środku)
  • Wiele zworek lub kabli

*Te dodatkowe elementy są potrzebne do sekcji wyjaśniającej

  • 1 x normalna kolorowa dioda LED
  • 1 x chwilowy przycisk

Krok 1: Rzeczy okablowania

Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie

Najpierw podłącz diodę IR do jednej płytki stykowej, a fototranzystor IR do drugiej, aby można było ustawić je naprzeciwko siebie. Podłącz jeden rezystor 220 Ω do anody LED (długa noga lub bok bez płaskiej ramki) i podłącz rezystor do zasilacza 5V na Arduino. Podłącz również katodę LED (krótka noga lub bok z płaską ramką) do jednego z portów GND w Arduino.

Następnie podłącz pin kolektora na fototranzystor (u mnie to krótka noga, ale powinieneś sprawdzić arkusz danych tranzystora, aby upewnić się, że podłączasz go prawidłowo lub możesz zakończyć wysadzenie tranzystora) do rezystora 220 Ω i rezystor do pinu A1 w Arudino, a następnie podłącz pin emitera fototranzystora (długa noga lub ta bez płaskiej strony obramowania). W ten sposób mamy zawsze zapaloną diodę IR i fototranzystor ustawiony jako włącznik zlewu.

Gdy światło podczerwone dotrze do tranzystora, pozwoli na przepływ prądu z pinu kolektora do pinu emitera. Ustawimy pin A1 na wejście pull up, więc pin będzie zawsze w stanie wysokim, chyba że tranzystor obniży prąd do masy.

Krok 2: Programowanie

Skonfiguruj swoje Arduino IDE (port, płytkę i programator), aby pasowało do konfiguracji potrzebnej dla twojej płyty Arduino.

Skopiuj ten kod, skompiluj i prześlij:

int odczytPin = A1; //pin gdzie jest podłączony 330rezystor z fototranzystora

int ptWartość, j; //punkt przechowywania danych odczytanych z analogRead() bool lock; // bolean używany do odczytu stanu readPin unsigned long timer, timer2; podwójnie przeczytane; String select[12] = {"B", "1", "2", "4", "8", "15", "30", "60", "125", "250", "500", "1000"}; długo oczekiwane [12] = {0, 1000, 500, 250, 125, 67, 33, 17, 8, 4, 2, 1}; void setup(){ Serial.begin(9600); //ustawiamy komunikację szeregową na 9600 bitów na sekundę pinMode(readPin, INPUT_PULLUP); //zamierzamy ustawić pin zawsze wysoki, z wyjątkiem sytuacji, gdy fototranzystor tonie, więc "odwrócilibyśmy" logikę //to oznacza, że HIGH = brak sygnału IR i LOW = opóźnienie otrzymania sygnału IR (200); //to opóźnienie służy do uruchomienia systemu i uniknięcia fałszywych odczytów j = 0; //inicjowanie naszego licznika } void loop(){ lock = digitalRead(readPin); //odczyt stanu podanego pinu i przypisanie go do zmiennej if (!lock){ //uruchomienie tylko gdy pin ma stan LOW timer = micros(); //ustaw zegar odniesienia while (!lock){ //zrób to, gdy pin jest LOW, innymi słowy, timer otwarcia migawki2 = micros();// pobierz próbkę czasu, który upłynął lock = digitalRead(readPin); //odczytaj stan pinu, aby wiedzieć, czy migawka się zamknęła } Serial.print("Pozycja: "); //ten tekst służy do wyświetlania wymaganych informacji Serial.print(select[j]); Serial.print(" | "); Serial.print("Czas otwarcia: "); odczytany = (timer2 - timer); //oblicz ile czasu była otwarta migawka Serial.print (czytany); Serial.print("nas"); Serial.print(" | "); Serial.print("Oczekiwany: "); Serial.println(oczekiwane[j]*1000); j ++;// zwiększ położenie przesłony, można to zrobić przyciskiem } }

Po zakończeniu wgrywania otwórz monitor szeregowy (Narzędzia -> Monitor szeregowy) i przygotuj kamerę do odczytów

Wyniki są wyświetlane po słowach „czas otwarcia:”, wszystkie inne informacje są wstępnie zaprogramowane.

Krok 3: Konfiguracja i pomiar

Konfiguracja i pomiar
Konfiguracja i pomiar
Konfiguracja i pomiary
Konfiguracja i pomiary
Konfiguracja i pomiary
Konfiguracja i pomiary
Konfiguracja i pomiary
Konfiguracja i pomiary

Zdejmij obiektywy aparatu i otwórz komorę na kliszę. Jeśli masz już załadowany film, pamiętaj, aby go dokończyć przed wykonaniem tej procedury, w przeciwnym razie uszkodzisz wykonane zdjęcia.

Umieść diodę IR i fototranzystor IR po przeciwnych stronach aparatu, jeden po stronie filmu, a drugi po stronie, w której znajdowały się soczewki. Bez względu na to, po której stronie użyjesz diody LED lub tranzystora, po prostu upewnij się, że mają kontakt wzrokowy po naciśnięciu migawki. Aby to zrobić, ustaw migawkę na „1” lub „B” i sprawdzaj monitor szeregowy podczas „robienia” zdjęcia. Jeśli migawka działa dobrze, monitor powinien pokazywać odczyt. Możesz także umieścić między nimi nieprzezroczysty przedmiot i przesunąć go, aby uruchomić program pomiarowy.

Zresetuj Arduino za pomocą przycisku resetowania i rób zdjęcia jedno po drugim przy różnych czasach otwarcia migawki, zaczynając od „B” do „1000”. Monitor szeregowy wydrukuje informacje po zamknięciu migawki. Jako przykład można zobaczyć czasy mierzone kamerami Mirandy i Praktica na załączonych zdjęciach.

Skorzystaj z tych informacji, aby wprowadzać poprawki podczas robienia zdjęć lub diagnozować stan aparatu. Jeśli chcesz wyczyścić lub dostroić swój aparat, gorąco polecam wysłać je do specjalisty.

Krok 4: Geeki rzeczy

Geek rzeczy
Geek rzeczy
Geek rzeczy
Geek rzeczy
Geek rzeczy
Geek rzeczy
Geek rzeczy
Geek rzeczy

Tranzystory są podstawą całej technologii elektronicznej, którą widzimy dzisiaj, po raz pierwszy zostały opatentowane około 1925 roku przez urodzonego w Austro-Węgrzech niemiecko-amerykańskiego fizyka. Zostały opisane jako urządzenie do kontroli prądu. Wcześniej musieliśmy używać lamp próżniowych do operacji wykonywanych dzisiaj przez tranzystory (telewizor, wzmacniacze, komputery).

Tranzystor ma możliwość sterowania prądem płynącym z kolektora do emitera i możemy sterować tym prądem, w zwykłych tranzystorach z 3 nóżkami, podając prąd na bramce tranzystora. W większości tranzystorów prąd bramki jest wzmacniany, więc np. jeśli doprowadzimy 1 mA do bramki, to z emitera płynie 120 mA. Możemy go sobie wyobrazić jako zawór do kranu.

Fototranzystor jest normalnym tranzystorem, ale zamiast nogi bramki, bramka jest połączona z materiałem fotoczułym. Materiał ten wytwarza niewielki prąd, gdy jest wzbudzany przez fotony, w naszym przypadku fotony o długości fali IR. Tak więc sterujemy fototranzystorem modyfikującym moc źródła światła IR.

Jest kilka specyfikacji, które powinniśmy wziąć pod uwagę przed zakupem i okablowaniem naszych elementów. Dołączone są informacje pobrane z arkuszy danych tranzystora i LED. Najpierw musimy sprawdzić napięcie przebicia tranzystora, które jest maksymalnym napięciem, jakie może obsłużyć, na przykład moje napięcie przebicia od emitera do kolektora wynosi 5V, więc jeśli źle go podłączę, podając 8V, usmażę tranzystor. Sprawdź również rozproszenie mocy, to znaczy, ile prądu może dostarczyć tranzystor przed śmiercią. Mój mówi 150mW. Przy 5V, 150mW oznacza pozyskiwanie 30 mA (Waty = V * I). Dlatego zdecydowałem się na zastosowanie rezystora ogranicznika 220 Ω, ponieważ przy napięciu 5 V rezystor 220 Ω pozwala na przepuszczenie tylko maksymalnego prądu 23 mA. (Prawo Ohma: V = I * R). Ta sama sprawa dotyczy diody LED, informacje w arkuszu danych mówią, że jej maksymalny prąd wynosi około 50 mA, więc kolejny rezystor 220 Ω będzie w porządku, ponieważ maksymalny prąd wyjściowy naszego pinu Arduino wynosi 40 mA i nie chcemy palić pinów.

Musimy okablować naszą konfigurację jak na zdjęciu. Jeśli używasz przycisków takich jak mój, zadbaj o umieszczenie dwóch okrągłych wypukłości na środku planszy. Następnie prześlij poniższy kod do Arduino.

int odczytPin = A1; //pin gdzie jest podłączony rezystor 220 z fototranzystora ptValue, j; //punkt przechowywania danych odczytanych z analogRead() void setup() { Serial.begin(9600); } void loop() { ptValue = analogRead(readPin); //odczytujemy wartość napięcia na readPin (A1) Serial.println(ptValue); //w ten sposób wysyłamy odczytane dane do monitora szeregowego, dzięki czemu możemy sprawdzić co się dzieje delay(35); //tylko opóźnienie, aby zrzuty ekranu były łatwiejsze }

Po przesłaniu otwórz ploter szeregowy (Narzędzia -> Ploter szeregowy) i obserwuj, co się dzieje po naciśnięciu przycisku przełącznika diody podczerwieni. Jeśli chcesz sprawdzić, czy dioda podczerwieni działa (także piloty do telewizora), po prostu umieść aparat telefonu komórkowego przed diodą LED i zrób zdjęcie. Jeśli wszystko jest w porządku, zobaczysz niebiesko-fioletowe światło pochodzące z diody LED.

W ploterze szeregowym możesz rozróżnić, kiedy dioda jest włączona i wyłączona, jeśli nie, sprawdź okablowanie.

Na koniec możesz zmienić metodę analogRead na digitalRead, aby zobaczyć tylko 0 lub 1. Proponuję zrobić opóźnienie po Setup(), aby uniknąć fałszywego odczytu NISKIEGO (zdjęcie z jednym małym szczytem NISKIM).

Zalecana: