เสียบ LDR เข้ากับ GPIO พินของ Raspberry Pi


12

ฉันต้องการเชื่อมต่อ LDR เข้ากับ GPIO พินของ Raspberry Pi ของฉันฉันรู้ว่า Raspberry Pi ไม่มีตัวแปลงแอนะล็อกเป็นดิจิทัลดังนั้นสิ่งที่ฉันต้องการทำคือส่งสัญญาณ HIGH (3.3v) บน GPIO เมื่อมีความต้านทานต่ำใน LDR (บางสิ่งบางอย่างต่ำกว่า 200 โอห์ม) และสัญญาณ LOW เมื่อความต้านทานของ LDR สูง (สูงกว่า 2k เป็นต้น) กระแสสูงสุดที่ฉันสามารถดึงได้อย่างปลอดภัยจาก GPIO ของ Raspberry Pi ตามเอกสารคือ 50mA ฉันจะคำนวณตัวต้านทานที่ต้องการได้อย่างไรฉันจะต้องเพิ่มตัวต้านทานแบบดึงขึ้น / ลงด้วยหรือไม่ ฉันไม่มีความคิดที่ชัดเจนเกี่ยวกับวิธีการทำอย่างปลอดภัยโดยไม่ต้องเผาโปรเซสเซอร์ของฉัน

ฉันคิดว่าฉันต้องเสียบตัวต้านทานบนวงจรเพื่อให้แน่ใจว่ามันจะมีความต้านทานเสมอเมื่อ LDR อยู่ในสถานะต้านทานต่ำมาก

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


1
"GPIO อินพุตฮิสเทอเรซิส (ตัวเหนี่ยวไกชมิตต์) สามารถเปิดหรือปิดอัตราการสโลว์เอาท์พุตอาจเร็วหรือ จำกัด และแหล่งจ่ายกระแสและซิงค์จะกำหนดค่าได้ตั้งแต่ 2 mA ถึง 16 mA" 50mA คือการจับรางวัลสูงสุดจาก 3V3 พิน
Ignacio Vazquez-Abrams

คำตอบ:


13

วิธีที่ดีที่สุดในการทำเช่นนี้คือการใช้ทรานซิสเตอร์เป็นตัวเปรียบเทียบเพื่อทำให้การเปลี่ยนแปลงมีความคมชัด
นี่คือวงจรตัวอย่าง:

LDR

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

สมมติว่าค่าความต้านทาน LDR เปลี่ยนจาก200Ω (มืด) ถึง10kΩ (มืด) เราต้องการให้ทรานซิสเตอร์เปิดเมื่อ LDR อยู่ที่5kΩ แหล่งจ่าย (V +) อยู่ที่ 3.3V ทรานซิสเตอร์ NPN ทั่วไปเปิดที่ประมาณ 0.7V ดังนั้นหากเรา:

5,000 * (0.7 / 3.3) = 1,060Ωที่จำเป็นสำหรับตัวต้านทานฐาน เราสามารถเลือกตัวต้านทาน1kΩเนื่องจากใกล้พอ ปรับค่าของคุณให้เหมาะกับจุดเลี้ยวของคุณ

นี่คือการจำลองวงจร:

LDR ซิม

แกนแนวนอนคือความต้านทาน LDR และเส้นสีน้ำเงินคือแรงดันไฟฟ้าที่จุด Vout (คุณเชื่อมต่อสิ่งนี้กับพินอินพุต Rpi - ต้องตั้งค่าเป็นอินพุตคุณสามารถเพิ่มตัวต้านทาน1kΩระหว่าง Vout และ Rpi พินเพื่อปกป้องมัน ในกรณีที่ตั้งค่าเป็นเอาท์พุทโดยไม่ตั้งใจ) เราสามารถเห็นทรานซิสเตอร์เปิดทำงานที่ประมาณ5kΩตามที่คาดการณ์ไว้ (จะไม่ถูกต้องเนื่องจากแรงดันฐานตัวส่งทรานซิสเตอร์จะเปลี่ยนแปลงตามอุณหภูมิ ฯลฯ แต่ใกล้พอสำหรับวัตถุประสงค์ของคุณ)

โปรดทราบว่าเอาท์พุทของทรานซิสเตอร์ต่ำเมื่อมันสว่างและสูงเมื่อมันมืดคุณสามารถสลับ LDR และตัวต้านทานไปรอบ ๆ และใช้ 5,000 * (3.3 / 0.7) = 23.5kΩสำหรับตัวต้านทานหากคุณต้องการอีกทางหนึ่ง - นี่คือ อันที่จริงแล้วการกำหนดค่าที่ดีกว่าเพราะมันดึงกระแสน้อยลง (เนื่องจากความต้านทานที่สูงขึ้น) ดังนั้นหากเป็นสิ่งสำคัญที่ใช้รุ่นนี้


ตกลง ฉันจะแนะนำตัวเปรียบเทียบ op-amp แต่แล้วคิดว่ามันเกินความจริง วิธีง่ายๆในการใช้ทรานซิสเตอร์เป็นสวิตช์ไม่ได้เกิดขึ้นกับฉัน
Ignacio Vazquez-Abrams

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

@ ทารันทูล่า - ไม่มีปัญหาดีใจที่ได้ช่วย
Oli Glaser
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.