สารบัญ:

ตัวตรวจสอบชัตเตอร์กล้องฟิล์ม Arduino: 4 ขั้นตอน
ตัวตรวจสอบชัตเตอร์กล้องฟิล์ม Arduino: 4 ขั้นตอน

วีดีโอ: ตัวตรวจสอบชัตเตอร์กล้องฟิล์ม Arduino: 4 ขั้นตอน

วีดีโอ: ตัวตรวจสอบชัตเตอร์กล้องฟิล์ม Arduino: 4 ขั้นตอน
วีดีโอ: รู้ก่อนเล่นกล้องฟิล์ม #6 วิธีเช็คการทำงานของชัตเตอร์ในกล้องฟิล์ม 2024, พฤศจิกายน
Anonim
ตัวตรวจสอบชัตเตอร์กล้องฟิล์ม Arduino
ตัวตรวจสอบชัตเตอร์กล้องฟิล์ม Arduino
ตัวตรวจสอบชัตเตอร์กล้องฟิล์ม Arduino
ตัวตรวจสอบชัตเตอร์กล้องฟิล์ม Arduino

ล่าสุดผมซื้อกล้องฟิล์มเก่ามือสองมาสองตัว หลังจากทำความสะอาดแล้ว ฉันพบว่าความเร็วชัตเตอร์อาจล่าช้าเนื่องจากฝุ่น การกัดกร่อน หรือน้ำมันไม่เพียงพอ ฉันจึงตัดสินใจทำบางอย่างเพื่อวัดเวลาการแสดงแสงจริงของกล้องใดๆ เพราะด้วยตาเปล่าของฉัน ฉันไม่สามารถวัดได้ อย่างแม่นยำ โครงการนี้ใช้ Arduino เป็นองค์ประกอบหลักในการวัดเวลาแสดง เรากำลังจะสร้าง opto couple (IR LED และ IR photo-transistor) และอ่านเวลาที่ชัตเตอร์ของกล้องเปิดอยู่ อันดับแรก ฉันจะอธิบายวิธีที่รวดเร็วในการบรรลุเป้าหมาย และในตอนท้าย เราจะเห็นทฤษฎีทั้งหมดที่อยู่เบื้องหลังโครงการนี้

รายการส่วนประกอบ:

  • 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 Phototransistor ในอีกอันหนึ่ง เพื่อให้เราสามารถให้พวกมันหันเข้าหากัน เชื่อมต่อตัวต้านทาน 220 Ω หนึ่งตัวกับขั้วบวก LED (ขายาวหรือด้านข้างที่ไม่มีขอบแบน) และเชื่อมต่อตัวต้านทานกับแหล่งจ่ายไฟ 5V บน Arduino เชื่อมต่อแคโทด LED (ขาสั้นหรือด้านข้างที่มีขอบแบน) เข้ากับพอร์ต GND ตัวใดตัวหนึ่งใน Arduino

ถัดไป ต่อสายพิน Collector บนทรานซิสเตอร์ภาพถ่าย (สำหรับฉันคือขาสั้น แต่คุณควรตรวจสอบแผ่นข้อมูลทรานซิสเตอร์ของคุณเพื่อให้แน่ใจว่าคุณกำลังเดินสายอย่างถูกต้องหรือคุณอาจจะระเบิดทรานซิสเตอร์) ไปที่ตัวต้านทาน 220 Ω และ ตัวต้านทานกับพิน A1 บน Arudino จากนั้นเชื่อมต่อพิน Emitter ของทรานซิสเตอร์ภาพถ่าย (ขายาวหรือขาที่ไม่มีด้านขอบแบน) วิธีนี้จะทำให้ IR LED เปิดอยู่เสมอและตั้งค่าทรานซิสเตอร์ภาพถ่ายเป็นสวิตช์ซิงก์

เมื่อไฟ IR มาถึงทรานซิสเตอร์ กระแสไฟจะผ่านจากพินของ Collector ไปยังพินของ Emitter เราจะตั้งค่าพิน A1 ให้เป็นอินพุตแบบดึงขึ้น ดังนั้น พินจะอยู่ในสถานะสูงเสมอ เว้นแต่ทรานซิสเตอร์จะจมกระแสให้เป็นมวล

ขั้นตอนที่ 2: การเขียนโปรแกรม

ตั้งค่า Arduino IDE ของคุณ (พอร์ต บอร์ด และโปรแกรมเมอร์) เพื่อให้ตรงกับการกำหนดค่าที่จำเป็นสำหรับบอร์ด Arduino ของคุณ

คัดลอกโค้ดนี้ คอมไพล์และอัปโหลด:

int readPin = A1; // พินที่เชื่อมต่อ 330 ตัวต้านทานจากโฟโตทรานซิสเตอร์

int ptValue, เจ; //จุดจัดเก็บข้อมูลที่อ่านจากล็อกบูล analogRead() // bolean ใช้ในการอ่านสถานะของ readPin ตัวจับเวลานานที่ไม่ได้ลงนาม, timer2; อ่านสองครั้ง; เลือกสตริง [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}; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); // เราตั้งค่าการสื่อสารแบบอนุกรมที่ 9600 บิตต่อวินาที pinMode (readPin, INPUT_PULLUP); // เราจะตั้งค่าพินให้สูงเสมอ ยกเว้นเมื่อโฟโต้ทรานซิสเตอร์กำลังจม ดังนั้น เราจะ "ย้อนกลับ" ตรรกะ // มันหมายถึง HIGH = ไม่มีสัญญาณ IR และ LOW = สัญญาณ IR ที่ได้รับล่าช้า (200); //การหน่วงเวลานี้มีไว้สำหรับให้ระบบเริ่มทำงานและหลีกเลี่ยงการอ่านค่าผิดพลาด j = 0; // เริ่มต้นตัวนับของเรา } void loop(){ lock = digitalRead(readPin); // อ่านสถานะของพินที่กำหนดและกำหนดให้กับตัวแปร if (!lock){ // รันเฉพาะเมื่อพินเป็น LOW timer = micros(); //ตั้งค่าตัวจับเวลาอ้างอิงในขณะที่ (!lock){ //ทำสิ่งนี้ในขณะที่พินอยู่ในระดับต่ำ กล่าวคือ ตัวจับเวลาเปิดชัตเตอร์2 = micros();// ใช้เวลาล็อกตัวอย่าง = digitalRead (readPin); //อ่านสถานะพินเพื่อดูว่าชัตเตอร์ปิดหรือไม่ } Serial.print("Position: "); //ข้อความนี้ใช้สำหรับแสดงข้อมูลที่ต้องการ Serial.print(select[j]); Serial.print(" | "); Serial.print("เวลาเปิด: "); อ่านแล้ว = (timer2 - จับเวลา); //คำนวณเวลาที่ชัตเตอร์เปิด Serial.print (อ่านแล้ว); Serial.print("เรา"); Serial.print(" | "); Serial.print("คาดว่า: "); Serial.println(คาดว่า[j]*1000); j ++;// เพิ่มตำแหน่งของชัตเตอร์ สามารถทำได้ด้วยปุ่ม } }

หลังจากอัพโหลดเสร็จแล้ว ให้เปิดมอนิเตอร์ซีเรียล (Tools -> Serial monitor) และเตรียมกล้องสำหรับการอ่านค่า

ผลลัพธ์จะแสดงหลังคำว่า "เวลาที่เปิด:" ข้อมูลอื่นๆ ทั้งหมดได้รับการตั้งโปรแกรมไว้ล่วงหน้า

ขั้นตอนที่ 3: การตั้งค่าและการวัดผล

การตั้งค่าและการวัดผล
การตั้งค่าและการวัดผล
การตั้งค่าและการวัด
การตั้งค่าและการวัด
การตั้งค่าและการวัดผล
การตั้งค่าและการวัดผล
การตั้งค่าและการวัดผล
การตั้งค่าและการวัดผล

ถอดเลนส์กล้องและเปิดช่องฟิล์ม หากคุณมีฟิล์มที่โหลดไว้แล้ว อย่าลืมทำให้เสร็จก่อนทำตามขั้นตอนนี้ ไม่เช่นนั้นภาพถ่ายที่ถ่ายอาจเสียหายได้

วาง IR LED และทรานซิสเตอร์ภาพถ่าย IR ไว้ที่ด้านตรงข้ามของกล้อง ตัวหนึ่งอยู่ด้านข้างของฟิล์ม และอีกตัวอยู่ด้านข้างเป็นเลนส์ ไม่ว่าคุณจะใช้ด้านใดสำหรับ LED หรือทรานซิสเตอร์ เพียงตรวจสอบให้แน่ใจว่าพวกมันสัมผัสกันทางสายตาเมื่อกดชัตเตอร์ ในการดำเนินการนี้ ให้ตั้งชัตเตอร์ไว้ที่ "1" หรือ "B" และตรวจสอบจอภาพแบบอนุกรมเมื่อ "ถ่ายภาพ" หากชัตเตอร์ใช้งานได้ดี จอภาพควรแสดงค่าที่อ่านได้ นอกจากนี้ คุณยังสามารถวางวัตถุทึบแสงระหว่างวัตถุเหล่านั้น และย้ายวัตถุนั้นเพื่อเรียกใช้โปรแกรมการวัด

รีเซ็ต Arduino ด้วยปุ่มรีเซ็ตและถ่ายภาพทีละภาพด้วยความเร็วชัตเตอร์ที่ต่างกันโดยเริ่มจาก "B" ถึง "1000" จอภาพแบบอนุกรมจะพิมพ์ข้อมูลหลังจากปิดชัตเตอร์ ตัวอย่างเช่น คุณสามารถดูเวลาที่วัดจากกล้องฟิล์ม Miranda และ Praktica ได้จากภาพที่แนบ

ใช้ข้อมูลนี้เพื่อทำการแก้ไขเมื่อถ่ายภาพหรือวิเคราะห์สถานะของกล้องของคุณ หากคุณต้องการทำความสะอาดหรือปรับแต่งกล้องของคุณ เราขอแนะนำให้คุณส่งกล้องไปให้ช่างผู้เชี่ยวชาญ

ขั้นตอนที่ 4: เรื่อง Geeks

เรื่อง Geeks
เรื่อง Geeks
เรื่อง Geeks
เรื่อง Geeks
เรื่อง Geeks
เรื่อง Geeks
เรื่อง Geeks
เรื่อง Geeks

ทรานซิสเตอร์เป็นพื้นฐานของเทคโนโลยีอิเล็กทรอนิกส์ทั้งหมดที่เราเห็นในปัจจุบัน โดยได้รับการจดสิทธิบัตรครั้งแรกเมื่อราวปี พ.ศ. 2468 โดยนักฟิสิกส์ชาวเยอรมัน-อเมริกันที่เกิดในออสเตรีย-ฮังการี มันถูกอธิบายว่าเป็นอุปกรณ์สำหรับควบคุมกระแส ก่อนหน้านั้น เราต้องใช้หลอดสุญญากาศเพื่อทำงานที่ทรานซิสเตอร์ทำในปัจจุบัน (โทรทัศน์ เครื่องขยายเสียง คอมพิวเตอร์)

ทรานซิสเตอร์มีความสามารถในการควบคุมกระแสที่ไหลจากตัวสะสมไปยังอีซีแอลและเราสามารถควบคุมกระแสนั้นได้ในทรานซิสเตอร์ทั่วไปที่มี 3 ขา โดยใช้กระแสบนเกตทรานซิสเตอร์ ในทรานซิสเตอร์ส่วนใหญ่ กระแสเกทจะถูกขยาย ดังนั้น ตัวอย่างเช่น หากเราใช้ 1 mA กับเกต เราจะได้ 120 mA ที่ไหลจากอีซีแอล เราสามารถจินตนาการได้ว่าเป็นวาล์วก๊อกน้ำ

ทรานซิสเตอร์ภาพถ่ายเป็นทรานซิสเตอร์ปกติ แต่แทนที่จะมีขาเกท ประตูจะเชื่อมต่อกับวัสดุที่ไวต่อภาพถ่าย สารนี้ก่อให้เกิดกระแสขนาดเล็กเมื่อถูกกระตุ้นโดยโฟตอน ในกรณีของเราคือ โฟตอนความยาวคลื่นอินฟราเรด ดังนั้นเราจึงควบคุมทรานซิสเตอร์ภาพถ่ายที่ปรับเปลี่ยนกำลังของแหล่งกำเนิดแสง IR

มีข้อกำหนดบางอย่างที่เราควรคำนึงถึงก่อนซื้อและเดินสายองค์ประกอบของเรา สิ่งที่แนบมาคือข้อมูลที่ดึงมาจากแผ่นข้อมูลทรานซิสเตอร์และ LED อันดับแรก เราต้องตรวจสอบแรงดันพังทลายของทรานซิสเตอร์ซึ่งเป็นแรงดันไฟฟ้าสูงสุดที่สามารถรับได้ ตัวอย่างเช่น แรงดันพังทลายของฉันจากอีซีแอลไปยังคอลเลคเตอร์คือ 5V ดังนั้นถ้าฉันต่อสายผิดด้วยการจัดหา 8V ฉันจะทอดทรานซิสเตอร์ นอกจากนี้ ให้ตรวจสอบการกระจายพลังงานด้วย หมายความว่ากระแสไฟสามารถส่งทรานซิสเตอร์ได้มากน้อยเพียงใดก่อนที่จะตาย ของฉันบอกว่า 150mW ที่ 5V 150mW หมายถึงการจัดหา 30 mA (Watts = V * I) นั่นเป็นเหตุผลที่ฉันตัดสินใจใช้ตัวต้านทานแบบจำกัดที่ 220 Ω เพราะที่ 5V ตัวต้านทาน 220 Ω อนุญาตให้ส่งกระแสสูงสุดที่ 23 mA เท่านั้น (กฎของโอห์ม: V = I * R) กรณีเดียวกันเกิดขึ้นกับ LED ข้อมูลแผ่นข้อมูลบอกว่ากระแสสูงสุดอยู่ที่ประมาณ 50mA ดังนั้นตัวต้านทาน 220 Ω อีกตัวก็ใช้ได้ เพราะกระแสเอาต์พุตสูงสุดของพิน Arduino ของเราคือ 40 mA และเราไม่ต้องการเบิร์นพิน

เราจำเป็นต้องวางสายการตั้งค่าของเราตามที่แสดงในภาพ หากคุณกำลังใช้ปุ่มแบบของฉัน โปรดใส่ส่วนที่ยื่นออกมาสองรอบตรงกลางกระดาน จากนั้นอัปโหลดโค้ดต่อไปนี้ไปยัง Arduino

int readPin = A1; // พินที่เชื่อมต่อ 220 ตัวต้านทานจาก phototransistorint ptValue, j; // จุดจัดเก็บข้อมูลที่อ่านจาก analogRead () การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); } วงเป็นโมฆะ () { ptValue = analogRead (readPin); // เราอ่านค่าแรงดันไฟฟ้าบน readPin (A1) Serial.println (ptValue); //ด้วยวิธีนี้ เราจะส่งข้อมูลที่อ่านแล้วไปยังมอนิเตอร์แบบอนุกรม เพื่อให้เราสามารถตรวจสอบสิ่งที่เกิดขึ้นได้ล่าช้า (35); //แค่หน่วงเวลาเพื่อทำให้ภาพหน้าจอง่ายขึ้น }

หลังจากอัปโหลดแล้ว ให้เปิดเครื่องล็อตเตอร์อนุกรม (เครื่องมือ -> พล็อตเตอร์แบบอนุกรม) และดูว่าเกิดอะไรขึ้นเมื่อคุณกดปุ่มสวิตช์ IR LED หากคุณต้องการตรวจสอบว่า IR LED ทำงาน (รวมถึงรีโมททีวีด้วย) หรือไม่ เพียงแค่วางกล้องมือถือของคุณไว้หน้า LED แล้วถ่ายรูป หากเป็นปกติ คุณจะเห็นแสงสีน้ำเงินม่วงมาจาก LED

ในพล็อตเตอร์อนุกรม คุณสามารถแยกความแตกต่างเมื่อไฟ LED เปิดและปิด ถ้าไม่ ให้ตรวจสอบสายไฟของคุณ

สุดท้าย คุณสามารถเปลี่ยนวิธี analogRead สำหรับ digitalRead ได้ ดังนั้นคุณจึงเห็นเพียง 0 หรือ 1 ฉันขอแนะนำให้ทำการหน่วงเวลาหลังจาก Setup() เพื่อหลีกเลี่ยงการอ่าน LOW ที่ผิดพลาด (รูปภาพที่มีจุดสูงสุด LOW ขนาดเล็กหนึ่งจุด)

แนะนำ: