Πίνακας περιεχομένων:

Έλεγχος κλείστρου κάμερας ταινίας Arduino: 4 βήματα
Έλεγχος κλείστρου κάμερας ταινίας Arduino: 4 βήματα

Βίντεο: Έλεγχος κλείστρου κάμερας ταινίας Arduino: 4 βήματα

Βίντεο: Έλεγχος κλείστρου κάμερας ταινίας Arduino: 4 βήματα
Βίντεο: Stroboscopic Effect 2024, Ιούλιος
Anonim
Έλεγχος κλείστρου κάμερας ταινίας Arduino
Έλεγχος κλείστρου κάμερας ταινίας Arduino
Έλεγχος κλείστρου κάμερας ταινίας Arduino
Έλεγχος κλείστρου κάμερας ταινίας Arduino

Πρόσφατα αγόρασα δύο χρησιμοποιημένες παλιές κάμερες ταινιών. Μετά τον καθαρισμό τους συνειδητοποίησα ότι η ταχύτητα κλείστρου μπορεί να μειωθεί λόγω της σκόνης, της διάβρωσης ή της έλλειψης λαδιού, οπότε αποφάσισα να κάνω κάτι για τη μέτρηση του πραγματικού χρόνου έκθεσης οποιασδήποτε κάμερας, επειδή, με τα γυμνά μάτια μου, δεν μπορώ να το μετρήσω Αυτό το έργο χρησιμοποιεί το Arduino ως το κύριο συστατικό για τη μέτρηση του χρόνου έκθεσης. Θα κάνουμε ένα ζευγάρι opto (IR LED και ένα IR-τρανζίστορ) και θα διαβάσουμε πόσο χρόνο είναι ανοιχτό το κλείστρο της κάμερας. Αρχικά, θα εξηγήσω τον γρήγορο τρόπο επίτευξης του στόχου μας και, στο τέλος, θα δούμε όλη τη θεωρία πίσω από αυτό το έργο.

Λίστα συστατικών:

  • 1 x κάμερα φιλμ
  • 1 x Arduino Uno
  • 2 x 220 Ω Αντίσταση φιλμ άνθρακα
  • 1 x IR LED
  • 1 x Φωτοτρανζίστορ
  • 2 x Μικρές σανίδες ψωμιού (ή 1 μεγάλη σανίδα, αρκετά μεγάλη για να χωρέσει η κάμερα στο κέντρο)
  • Πολλοί άλτες ή καλώδιο

*Αυτά τα επιπλέον στοιχεία χρειάζονται για την ενότητα επεξήγησης

  • 1 x Κανονικό χρώμα LED
  • 1 x Στιγμιαίο κουμπί

Βήμα 1: Υλικά καλωδίωσης

Είδη καλωδίωσης
Είδη καλωδίωσης
Είδη καλωδίωσης
Είδη καλωδίωσης
Είδη καλωδίωσης
Είδη καλωδίωσης

Αρχικά, συνδέστε το IR LED στη μία σανίδα και το φωτοτρανζίστορ IR στην άλλη, ώστε να μπορούμε να τα έχουμε αντικριστά. Συνδέστε μία αντίσταση 220 Ω στην άνοδο LED (το μακρύ πόδι ή την πλευρά χωρίς το επίπεδο περίγραμμα) και συνδέστε την αντίσταση στην τροφοδοσία 5V του Arduino. Συνδέστε επίσης την κάθοδο LED (κοντό πόδι ή την πλευρά με το επίπεδο περίγραμμα) σε μία από τις θύρες GND στο Arduino.

Στη συνέχεια, συνδέστε τον πείρο συλλέκτη στο τρανζίστορ φωτογραφιών (για μένα είναι το κοντό πόδι, αλλά θα πρέπει να ελέγξετε το φύλλο δεδομένων του τρανζίστορ για να βεβαιωθείτε ότι το συνδέετε με σωστό τρόπο ή μπορεί να τελειώσετε με την ανατίναξη του τρανζίστορ) στην αντίσταση 220 Ω και την αντίσταση στον πείρο A1 στο Arudino και, στη συνέχεια, συνδέστε τον πείρο εκπομπής του τρανζίστορ φωτογραφιών (το μακρύ πόδι ή αυτό χωρίς μια επίπεδη πλευρά περιγράμματος). Με αυτόν τον τρόπο έχουμε το IR LED πάντα αναμμένο και το τρανζίστορ φωτογραφιών έχει οριστεί ως διακόπτης νεροχύτη.

Όταν το φως IR φτάσει στο τρανζίστορ θα επιτρέψει στο ρεύμα να περάσει από τον πείρο του συλλέκτη στον πείρο του πομπού. Θα ρυθμίσουμε τον πείρο Α1 να εισέλθει προς τα πάνω, οπότε ο πείρος θα είναι πάντα σε υψηλή κατάσταση, εκτός εάν το τρανζίστορ βυθίσει το ρεύμα στη μάζα.

Βήμα 2: Προγραμματισμός

Ρυθμίστε το Arduino IDE (θύρα, πίνακα και προγραμματιστής) ώστε να ταιριάζει με τη διαμόρφωση που απαιτείται για τον πίνακα Arduino.

Αντιγράψτε αυτόν τον κώδικα, μεταγλωττίστε και ανεβάστε:

int readPin = A1; // pin όπου συνδέεται η αντίσταση 330 από το φωτοτρανζίστορ

int ptValue, j; // το σημείο αποθήκευσης των δεδομένων που διαβάζονται από το analogRead () bool lock; // ένα bolean που χρησιμοποιείται για την ανάγνωση της κατάστασης readPin unsigned long timer, timer2; διπλή ανάγνωση? String select [12] = {"B", "1", "2", "4", "8", "15", "30", "60", "125", "250", "500", "1000"}; πολύ αναμενόμενο [12] = {0, 1000, 500, 250, 125, 67, 33, 17, 8, 4, 2, 1}; void setup () {Serial.begin (9600); // ορίζουμε σειριακή επικοινωνία στα 9600 bit ανά δευτερόλεπτο pinMode (readPin, INPUT_PULLUP). // θα θέσουμε τον πείρο πάντα ψηλά, εκτός όταν το τρανζίστορ φωτογραφιών βυθίζεται, οπότε "αντιστρέψαμε" τη λογική // σημαίνει Υ HIGHΗΛΗ = δεν υπάρχει σήμα IR και ΧΑΜΗΛΟ = σήμα IR λήφθηκε καθυστέρηση (200). // αυτή η καθυστέρηση είναι για να ξεκινήσει το σύστημα και να αποφευχθούν ψευδείς ενδείξεις j = 0; // αρχικοποίηση του μετρητή μας} void loop () {lock = digitalRead (readPin); // ανάγνωση της κατάστασης του δεδομένου pin και εκχώρησή του στη μεταβλητή εάν (! lock) {// εκτελείται μόνο όταν ο πείρος είναι LOW timer = micros (); // ρυθμίστε το χρονόμετρο αναφοράς ενώ (! κλείδωμα) {// κάντε αυτό ενώ η καρφίτσα είναι ΧΑΜΗΛΗ, με άλλα λόγια, χρονόμετρο ανοίγματος κλείστρου2 = micros (); // λάβετε ένα χρόνο κλειδώματος δείγματος = digitalRead (readPin); // διαβάστε την κατάσταση καρφίτσας για να μάθετε αν έχει κλείσει το κλείστρο} Serial.print ("Position:"); // αυτό το κείμενο προορίζεται για την εμφάνιση των απαιτούμενων πληροφοριών Serial.print (επιλέξτε [j]). Serial.print ("|"); Serial.print ("openedρα άνοιξε:"); διαβάστηκε = (χρονόμετρο2 - χρονόμετρο); // υπολογίστε πόσο χρόνο ήταν ανοιχτό το κλείστρο Serial.print (διαβάστηκε). Serial.print ("εμείς"); Serial.print ("|"); Serial.print ("Αναμενόμενο:"); Serial.println (αναμενόμενο [j]*1000); j ++; // αυξήστε τη θέση του κλείστρου, αυτό θα μπορούσε να γίνει με ένα κουμπί}}

Αφού ολοκληρωθεί η μεταφόρτωση, ανοίξτε τη σειριακή οθόνη (Εργαλεία -> Σειριακή οθόνη) και προετοιμάστε την κάμερα για αναγνώσεις

Τα αποτελέσματα εμφανίζονται μετά τις λέξεις "άνοιξε ο χρόνος:", όλες οι άλλες πληροφορίες είναι προ-προγραμματισμένες.

Βήμα 3: Ρύθμιση και μέτρηση

Ρύθμιση και μέτρηση
Ρύθμιση και μέτρηση
Ρύθμιση και μέτρηση
Ρύθμιση και μέτρηση
Ρύθμιση και μέτρηση
Ρύθμιση και μέτρηση
Ρύθμιση και μέτρηση
Ρύθμιση και μέτρηση

Βγάλτε τους φακούς της κάμεράς σας και ανοίξτε το διαμέρισμα της μεμβράνης. Εάν έχετε ήδη φορτώσει μια ταινία, θυμηθείτε να την ολοκληρώσετε πριν κάνετε αυτήν τη διαδικασία, διαφορετικά θα καταστρέψετε τις φωτογραφίες που τραβήχτηκαν.

Τοποθετήστε το IR LED και το τρανζίστορ φωτογραφιών IR στις αντίθετες πλευρές της κάμερας, το ένα στο πλάι της μεμβράνης και το άλλο στο πλάι ήταν οι φακοί. Ανεξάρτητα από την πλευρά που χρησιμοποιείτε για το LED ή το τρανζίστορ, βεβαιωθείτε ότι έχουν οπτική επαφή όταν πατάτε το κλείστρο. Για να το κάνετε αυτό, ρυθμίστε το κλείστρο στο "1" ή "B" και ελέγξτε τη σειριακή οθόνη όταν "τραβάτε" μια φωτογραφία. Εάν το κλείστρο λειτουργεί καλά, η οθόνη θα πρέπει να δείχνει μια ένδειξη. Επίσης, μπορείτε να τοποθετήσετε ένα αδιαφανές αντικείμενο μεταξύ τους και να το μετακινήσετε για να ενεργοποιήσετε το πρόγραμμα μέτρησης.

Επαναφέρετε το Arduino με το κουμπί επαναφοράς και τραβήξτε φωτογραφίες μία προς μία με διαφορετικές ταχύτητες κλείστρου ξεκινώντας από "Β" έως "1000". Η σειριακή οθόνη θα εκτυπώσει τις πληροφορίες μετά το κλείσιμο του κλείστρου. Για παράδειγμα, μπορείτε να δείτε τους χρόνους που μετρήθηκαν από τις κάμερες Miranda και Praktica στις συνημμένες εικόνες.

Χρησιμοποιήστε αυτές τις πληροφορίες για να κάνετε διορθώσεις κατά τη λήψη φωτογραφιών ή να διαγνώσετε την κατάσταση της κάμεράς σας. Εάν θέλετε να καθαρίσετε ή να ρυθμίσετε τη φωτογραφική σας μηχανή, συνιστώ ανεπιφύλακτα να τις στείλετε σε έναν έμπειρο τεχνικό.

Βήμα 4: Geeks Stuff

Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff

Τα τρανζίστορ αποτελούν τη βάση όλης της ηλεκτρονικής τεχνολογίας που βλέπουμε σήμερα, για πρώτη φορά κατοχυρώθηκαν με δίπλωμα ευρεσιτεχνίας γύρω στο 1925 από έναν Γερμανοαμερικανό φυσικό, αυστροουγγρικό, γεννημένο στην Αμερική. Περιγράφηκαν ως συσκευή ελέγχου του ρεύματος. Πριν από αυτούς, έπρεπε να χρησιμοποιήσουμε σωλήνες κενού για να κάνουμε τις λειτουργίες που κάνουν σήμερα τα τρανζίστορ (τηλεόραση, ενισχυτές, υπολογιστές).

Ένα τρανζίστορ έχει τη δυνατότητα να ελέγχει το ρεύμα που ρέει από τον συλλέκτη στον πομπό και μπορούμε να ελέγξουμε αυτό το ρεύμα, στα κοινά τρανζίστορ με 3 πόδια, εφαρμόζοντας ρεύμα στην πύλη του τρανζίστορ. Στα περισσότερα τρανζίστορ το ρεύμα πύλης ενισχύεται, έτσι, για παράδειγμα, εάν εφαρμόσουμε 1 mA στην πύλη, έχουμε 120 mA που ρέουν από τον πομπό. Μπορούμε να το φανταστούμε ως βαλβίδα βρύσης νερού.

Το τρανζίστορ φωτογραφιών είναι ένα κανονικό τρανζίστορ, αλλά αντί για ένα πόδι πύλης, η πύλη συνδέεται με ένα υλικό αισθητό υλικό. Αυτό το υλικό δημιουργεί ένα μικρό ρεύμα όταν διεγείρεται από φωτόνια, στην περίπτωσή μας, IR φωτόνια μήκους κύματος. Έτσι, ελέγχουμε ένα τρανζίστορ φωτογραφιών που τροποποιεί την ισχύ της πηγής φωτός IR.

Υπάρχουν ορισμένες προδιαγραφές που πρέπει να λάβουμε υπόψη πριν αγοράσουμε και συνδέσουμε τα στοιχεία μας. Επισυνάπτονται πληροφορίες που ανακτήθηκαν από τα τρανζίστορ και τα φύλλα δεδομένων LED. Πρώτον, πρέπει να ελέγξουμε την τάση διάσπασης του τρανζίστορ, η οποία είναι η μέγιστη τάση που μπορεί να χειριστεί, για παράδειγμα, η τάση διάσπασης από εκπομπή σε συλλέκτη είναι 5V, οπότε αν το συνδέσω με λάθος πηγή 8V, θα τηγανίσω το τρανζίστορ. Επίσης, ελέγξτε για τη διάχυση ισχύος, σημαίνει πόσο ρεύμα μπορεί να δώσει το τρανζίστορ πριν πεθάνει. Το δικό μου λέει 150mW. Στα 5V, 150mW σημαίνει προμήθεια 30 mA (Watts = V * I). Γι 'αυτό αποφάσισα να χρησιμοποιήσω μια αντίσταση περιορισμού 220 Ω, επειδή, στα 5V, μια αντίσταση 220 Ω επιτρέπει μόνο να περάσει ένα μέγιστο ρεύμα 23 mA. (Νόμος του Ohm: V = I * R). Η ίδια περίπτωση ισχύει και για το LED, οι πληροφορίες του φύλλου δεδομένων λένε ότι το μέγιστο ρεύμα είναι περίπου 50mA, οπότε μια άλλη αντίσταση 220 Ω θα είναι εντάξει, επειδή το μέγιστο ρεύμα εξόδου του pin Arduino είναι 40 mA και δεν θέλουμε να κάψουμε τις ακίδες.

Πρέπει να συνδέσουμε την εγκατάστασή μας όπως αυτή της εικόνας. Εάν χρησιμοποιείτε κουμπιά όπως το δικό μου, φροντίστε να βάλετε τις δύο στρογγυλές προεξοχές στο κέντρο του πίνακα. Στη συνέχεια, ανεβάστε τον ακόλουθο κώδικα στο Arduino.

int readPin = A1; // καρφίτσα όπου είναι συνδεδεμένο το 220resistor από το φωτοδιακόπτη ptValue, j; // το σημείο αποθήκευσης των δεδομένων που διαβάζονται από το analogRead () void setup () {Serial.begin (9600); } void loop () {ptValue = analogRead (readPin); // διαβάζουμε την τιμή τάσης στο readPin (A1) Serial.println (ptValue); // με αυτόν τον τρόπο, στέλνουμε τα αναγνωσμένα δεδομένα στη σειριακή οθόνη, ώστε να μπορούμε να ελέγξουμε τι συμβαίνει με καθυστέρηση (35). // απλώς μια καθυστέρηση για να διευκολύνουμε τα στιγμιότυπα οθόνης}

Μετά τη μεταφόρτωση, ανοίξτε το σειριακό plotter (Εργαλεία -> Serial plotter) και παρακολουθήστε τι συμβαίνει όταν πατήσετε το κουμπί διακόπτη IR LED. Αν θέλετε να ελέγξετε αν λειτουργεί το LED IR (επίσης τηλεχειριστήρια), απλώς τοποθετήστε την κάμερα του κινητού σας μπροστά από το LED και τραβήξτε μια φωτογραφία. Εάν είναι εντάξει θα δείτε ένα μπλε-μοβ φως που προέρχεται από το LED.

Στο σειριακό plotter μπορείτε να διαφοροποιήσετε όταν η λυχνία LED είναι αναμμένη και απενεργοποιημένη, αν όχι, ελέγξτε την καλωδίωσή σας.

Τέλος, μπορείτε να αλλάξετε τη μέθοδο analogRead για ένα digitalRead, ώστε να μπορείτε να δείτε μόνο 0 ή 1. Προτείνω να κάνετε μια καθυστέρηση μετά τη ρύθμιση () για να αποφύγετε μια ψευδή LOW ανάγνωση, (εικόνα με μια μικρή κορυφή LOW).

Συνιστάται: