สารบัญ:
- ขั้นตอนที่ 1: การเดินสายไฟ
- ขั้นตอนที่ 2: การเขียนโปรแกรม
- ขั้นตอนที่ 3: การตั้งค่าและการวัดผล
- ขั้นตอนที่ 4: เรื่อง Geeks
วีดีโอ: ตัวตรวจสอบชัตเตอร์กล้องฟิล์ม Arduino: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ล่าสุดผมซื้อกล้องฟิล์มเก่ามือสองมาสองตัว หลังจากทำความสะอาดแล้ว ฉันพบว่าความเร็วชัตเตอร์อาจล่าช้าเนื่องจากฝุ่น การกัดกร่อน หรือน้ำมันไม่เพียงพอ ฉันจึงตัดสินใจทำบางอย่างเพื่อวัดเวลาการแสดงแสงจริงของกล้องใดๆ เพราะด้วยตาเปล่าของฉัน ฉันไม่สามารถวัดได้ อย่างแม่นยำ โครงการนี้ใช้ 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
ทรานซิสเตอร์เป็นพื้นฐานของเทคโนโลยีอิเล็กทรอนิกส์ทั้งหมดที่เราเห็นในปัจจุบัน โดยได้รับการจดสิทธิบัตรครั้งแรกเมื่อราวปี พ.ศ. 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 ขนาดเล็กหนึ่งจุด)
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino