การกดปุ่มควบคุมระยะไกลด้วย GPIO และทรานซิสเตอร์


11

แผนภูมิวงจรรวม

ฉันพยายามควบคุมประตูโรงรถระยะไกลด้วยพิน GPIO จาก Raspberry Pi ของฉัน แทนที่จะขับรีเลย์มันจะง่ายกว่าการกดปุ่มกดสั้น ๆ บนรีโมท นี่เป็นวิธีที่ฉันควรทำหรือไม่? ฉันต้องการไดโอดป้องกันหรือไม่และถ้าเป็นเช่นนั้นจะไปที่ไหน?

มันเป็นเรื่องสำคัญที่ pin GPIO 3.3V ถูกอ้างอิงไปยังดินที่แตกต่างกัน (กราวด์ Raspberry Pi) กว่ากราวด์ระยะไกลหรือไม่?

จะขอบคุณคำแนะนำเกี่ยวกับทรานซิสเตอร์ที่จะใช้และค่าตัวต้านทาน

UPDATE; ข้อมูลเพิ่มเติมจากความคิดเห็นโดย OP: หลังจากตรวจสอบคุณถูกต้องปุ่มกดเพียงแค่ลัดวงจรวงจรไปยังเส้นทางกลับของแบตเตอรี่ 9V ข้อกังวลหลักของฉันคือ 3.3V ที่อ้างอิงถึง GND ในขณะที่ทุกอย่างบนรีโมทนั้นลอย

คำตอบ:


10

เพื่อขจัดความเป็นไปได้ของความประหลาดใจใด ๆ และโดยทั่วไปทำให้สิ่งที่มีประสิทธิภาพมากขึ้นผมขอแนะนำให้ใช้ OPTOCOUPLER เช่น4N25

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab

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

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

8.2V9V0.6V0.2V


อาจเป็นทางออกที่ปลอดภัยที่สุดของพวกเขาทั้งหมด (จนถึงตอนนี้)
— jippie

ขอบคุณ Phil ฉันชอบโซลูชัน optocoupler กระแสสูงสุด RPi GPIO ประมาณ 50mA ดังนั้นฉันคิดว่าฉันอาจไม่ต้องการ Q1 ฉันมีตัวต้านทาน 130 โอห์มและมี 3.3V ที่ประมาณ 25mA และฉันมี MCT6 opto ให้ใช้กับกระแสสูงสุด 60mA ที่ด้าน emitter (diode) อัตราส่วนการถ่ายโอนปัจจุบันคือ 20% ซึ่งหมายถึงประมาณ 5mA ที่ด้านตรวจจับ (ทรานซิสเตอร์) ... ซึ่งฉันไม่แน่ใจว่าเพียงพอสำหรับระยะไกล แต่ฉันจะให้มันถ่ายและดู
— nummy

4

ความคิดที่ถูกต้องการดำเนินการที่ผิด สมมติว่าไดอะแกรมของรีโมตของคุณนั้นถูกต้อง (ฉันไม่มีวิธีการตรวจสอบและอาจมีการกำหนดค่าต่าง ๆ มากมาย) คุณต้องการใช้ทรานซิสเตอร์ PNP NPN ในฐานะผู้ติดตาม emitter ที่คุณแสดงจะไม่ทำงานเพราะบล็อกสีน้ำเงินจะเห็นเฉพาะระดับดิจิตอล 3.3V ลบด้วยการลบ BE

นั่นทำให้เกิดปัญหาว่าจะเปิด PNP ได้อย่างไร นี่เป็นวิธีง่ายๆ:

Q2 จะจมประมาณ 2.7 mA เมื่อสัญญาณดิจิตอลสูง การคำนวณ Q1 ควรได้รับอย่างน้อย 50 ซึ่งจะอนุญาตให้บล็อกวาดได้สูงถึง 130 mA ซึ่งน่าจะเป็นมากกว่าระยะไกลจากโรงรถ ปรับ R1 ตามลำดับหากจำเป็นต้องใช้กระแสเพิ่มเติม

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

ที่เพิ่ม:

ตอนนี้คุณบอกว่าปุ่มกดไม่ได้เปิดเครื่อง แต่ใส่กางเกงให้สั้นลง นั่นทำให้รู้สึกมากขึ้น ในกรณีนี้วงจรนี้ควรทำงาน:

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


หลังจากตรวจสอบคุณถูกต้องปุ่มกดจะลัดวงจรไปยังเส้นทางย้อนกลับของแบตเตอรี่ 9V ข้อกังวลหลักของฉันคือ 3.3V ที่อ้างอิงถึง GND ในขณะที่ทุกอย่างบนรีโมทนั้นลอย
— nummy

1
@nummy: ดูเพิ่มเติมที่คำตอบของฉัน อย่าปล่อยให้ความเชื่อโชคลางของผู้อื่นทำให้คุณกลัวเกี่ยวกับการเชื่อมต่อบริเวณ ไม่มีเหตุผลทางไฟฟ้าที่ไม่สามารถเชื่อมต่อได้
— Olin Lathrop

3

แนวคิดเบื้องหลังวงจรของคุณดีการใช้งานต้องมีการปรับปรุงบางอย่าง:

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab

คุณมีสองทางเลือกฉันชอบวงจรซ้ายที่สุด:

  • LEFT : ย่อสวิตช์และย้ายทรานซิสเตอร์NPNไปยังด้านล่างของแบตเตอรี่ นี่เป็นวิธีที่ใช้กันโดยทั่วไปในการควบคุมโหลดจากไมโครคอนโทรลเลอร์ กราวด์ของ RPi และกราวด์ของรีโมตจะถูกแชร์
  • ขวา : ถ้าคุณต้องการใช้รายชื่อติดต่อสำหรับปุ่มกดซึ่งอาจทำให้ใช้งานได้ง่ายขึ้นคุณต้องใช้PNPทรานซิสเตอร์และคุณต้องการ RPi Vcc และ Vcc จากระยะไกลเชื่อมต่อกัน นี่อาจเป็นเรื่องยากหาก RPi มีตัวควบคุมแรงดันไฟฟ้าบนบอร์ด คุณต้องการรางจ่ายไฟ 3V3 ของ RPi ที่นี่ ด้วยเหตุนี้ฉันจะไปทางซ้าย; มันมีประสิทธิภาพมากขึ้นง่ายกว่าที่จะใช้ ที่จริงแล้วฉันชอบทางออกของแลงดีกว่าวงจรที่เหมาะสมด้วย

ทรานซิสเตอร์ขนาดเล็กที่ใช้งานทั่วไปราคาถูก ๆ จะทำงานได้

  • สำหรับ NPN ซ้ายเช่น: BC547, BC548, 2N3904, ...
  • สำหรับ PNP ที่ถูกต้องเช่น: BC557, BC558, 2N3906 ...

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

  • ชั่วโมงFEβ

  • VCE, สูงสุด>15V

  • ผมC, สูงสุด>100mA
  • ฉันเดาว่าคุณต้องการแพ็คเกจTO-92ซึ่งง่ายต่อการทดลอง
  • บ่งชี้ราคาในร้านค้าปกติเมื่อขายต่อชิ้น? ฉันจะบอกว่า€ 0.20 อีกครั้งขึ้นอยู่กับที่ตั้งทางภูมิศาสตร์

ตัวต้านทานสามารถเป็นอะไรก็ได้ประมาณ1kΩ-10kΩ \ $ และ 250mW ฟิล์มคาร์บอนหรือดีกว่า ราคาใกล้เคียงกับทรานซิสเตอร์ในการขายปลีกปกติ


อ๊ะคุณพูดถูก!
— jippie

ฉันคิดว่าฉันแก้ไขข้อผิดพลาดโปรดอ่าน @PhilFrost
— jippie

ดูสมเหตุสมผล
— Phil Frost

1

อันดับแรกใช่จำเป็นต้องเชื่อมต่อด้วยกันหากคุณใช้การเชื่อมต่อกัลวานิกโดยตรงเช่นทรานซิสเตอร์ optocoupler น่าจะปลอดภัยกว่า

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


1
มีหลายสาเหตุที่บางคนอาจต้องการแฮ็คการควบคุมแทนที่จะเป็นอุปกรณ์หลัก การเข้าถึงง่ายในการเปลี่ยนถ้าคุณ fubar มันพกพาขนาด ฯลฯ และจากประสบการณ์ของฉันที่เปิดประตูโรงรถในบ้านของฉันไม่ได้มีปุ่มคู่มืออยู่
— Passerby

ฉันต้องการใช้รีโมทเพราะ RPi อยู่ไกลจากปุ่มกดประตูโรงรถมาก
— nummy

ฉันยอมรับว่าอาจมีเหตุผลที่ถูกต้องในการใช้รีโมทแทนการใส่ปุ่มแบบแมนนวล - แต่โพสต์ดั้งเดิมไม่ได้พูดถึงสิ่งนั้นดังนั้นฉันจึงแนะนำให้ใช้ ปุ่มกดสำหรับการเชื่อมต่อ (ปกติเปิด) สามารถต่อสายแบบขนานได้ คุณสามารถมีสายมากกว่าหนึ่งไปยังที่เปิดเดียวกัน ดังนั้นหาก RPi อยู่ห่างจากปุ่มปัจจุบันคุณสามารถเรียกใช้สายที่สองเพื่อ RPi และใช้สิ่งนั้นสำหรับการเปิด สิ่งนี้น่าจะมีประสิทธิภาพมากกว่าการขับรถทางไกลถึงแม้ว่าแนวคิดระยะไกลอาจทำงานได้ดีเช่นกัน
— Jon Watte
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.