สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในระบบที่ประกอบด้วย RaspberryPi ที่ขับเคลื่อนโดยหน่วยจ่ายไฟ ATX เป้าหมายของวงจรนี้คืออนุญาตให้เปิดหรือปิดระบบด้วยปุ่มกดเพียงปุ่มเดียว
บทช่วยสอนนี้ได้รับการพัฒนาโดย sitelec.org
ขั้นตอนที่ 1: การนำเสนอตามหน้าที่
ด้านล่างนี้เป็นรายละเอียดขั้นตอนการทำงานของวงจร
โปรดดูแผนผังและแผนภาพจำลองที่แนบมา:
X: 2s / div, Y: 0.5v / divATX_PS-ON (สีเหลือง) (วัด)PWR_SW (reg) (การจำลอง)RPI_GPIO (สีน้ำเงิน) (วัด) RPI_UART0-TXD (สีเขียว) (การจำลอง)
เปิดเครื่อง
วงจรนี้ทำงานบนพิน ATX_PS-ON ATX PSU เพื่อเปิดหรือปิดเครื่อง โดยค่าเริ่มต้น พินนี้ถูกตั้งค่าเป็น 5V ซึ่งหมายความว่า PSU หยุดทำงาน ในการเปิด PSU วงจรต้องตั้ง ATX_PS-ON ไว้ที่พื้น เมื่อกดปุ่ม ทรานซิสเตอร์ Q2 จะตั้งค่า ATX_PS-ON ไปที่พื้น ซึ่งจะกระตุ้นการเปิด PSU และการเริ่มต้น RaspberryPi
ระบบกำลังทำงาน
เมื่อเริ่มต้น RaspberryPi ตั้งค่าพิน RPI_UART0-TXD เป็น 3.3V โดยทำงานบนทรานซิสเตอร์ Q1 ซึ่งทำให้ PSU ทำงานโดยทำให้ ATX_PS-ON อยู่กับพื้น อย่างไรก็ตาม อาจใช้เวลาสักครู่ก่อนที่ RPI_UART0-TXD จะเปลี่ยนเป็น 3.3V (2.6 วินาทีใน RaspberryPi 3) วงจรย่อย RC บนฐาน Q2 ได้รับการออกแบบมาเพื่อรักษาความอิ่มตัวของทรานซิสเตอร์ให้มีเวลาเพียงพอ ตัวเก็บประจุ C1 ดูดซับความผันแปรของแรงดันไฟฟ้าบนพิน RPI_UART0-TXD ซึ่งมีประโยชน์หากใช้ RaspberryPi UART เนื่องจากช่วยให้ระบบทำงานต่อไป
การปิดระบบ
ซอฟต์แวร์บน RaspberryPi ตรวจพบการกดบนปุ่มกดใหม่โดยการอ่านพิน GPIO อินพุต จากนั้นจึงปิดระบบได้ เมื่อ RaspberryPi หยุดทำงาน PCB ของมันจะยังคงได้รับพลังงาน แต่พิน RPI_UART0-TXD จะลงไปที่พื้น จากนั้น Q1 จะถูกตัดออกและ PSU จะหยุดทำงาน
ขั้นตอนที่ 2: การตั้งค่า RaspberryPi
ตั้งค่าพิน RPI_UART0-TXD เป็น 3.3V ขณะทำงาน
ผ่านไคลเอนต์ SSH เข้าสู่ระบบบน RaspberryPi ของคุณ
ขั้นแรก กำหนดค่า RaspberryPi ให้ตั้งค่า RPI_UART0-TXD เป็น 3.3V ขณะทำงาน เพื่อให้ PSU ทำงานต่อไป ในการดำเนินการนี้ ให้แก้ไข /boot/config.txt และเพิ่มในตอนท้าย:
enable_uart=1
RaspberryPi หยุดทำงานโดย GPIO
เพื่อให้กดปุ่มเพื่อเรียกการปิด RaspberryPi วงจรจะต้องเชื่อมต่อกับ GPIO
ดาวน์โหลดสคริปต์ rpi_shutdown.py ที่แนบมา
คุณสามารถแก้ไขเพื่อเปลี่ยนค่าต่อไปนี้:
- HOLD_TIME: เวลาที่กดปุ่มค้างไว้เพื่อทริกเกอร์การปิด (ค่านี้บิดเบี้ยวโดย C2 ซึ่งรักษาระดับไว้ครู่หนึ่งหลังจากปล่อยปุ่ม)
- PIN_NB: หมายเลข GPIO ที่จะใช้
คัดลอกสคริปต์ไปที่ /usr/local/bin และทำให้สามารถเรียกใช้งานได้:
sudo chmod +x /usr/local/bin/rpi_shutdown.py
ติดตั้งการพึ่งพาเช่น gpiozero:
sudo apt-get -y ติดตั้ง python3-gpiozero python3-pkg-resources
เปิดใช้งานเมื่อเริ่มต้นระบบ:
sudo crontab -e
เพิ่มสิ่งต่อไปนี้ในไฟล์เปิด:
@reboot /usr/local/bin/rpi_shutdown.py &
สคริปต์นี้เขียนขึ้นตามเอกสารต่อไปนี้:
รีบูต RaspberryPi ของคุณอย่างถูกต้อง:
sudo รีบูต
ตอนนี้คุณสามารถเชื่อมต่อวงจรกับ RaspberryPi และ PSU และทดสอบสิ่งต่อไปนี้:
- PSU ยังคงทำงานตามที่คาดไว้โดย RPI_UART0-TXD RaspberryPi pin
- การกดปุ่มจะเป็นการทริกเกอร์การปิดระบบ RaspberryPi ซึ่งจะหยุด PSU
ขั้นตอนที่ 3: แหล่งข้อมูลเพิ่มเติม
แหล่งข้อมูลที่เกี่ยวข้องสามารถพบได้จาก sitelec.org:
- กวดวิชาภาษาอังกฤษรวมถึงโครงการ FreeCad ที่ทันสมัยและสภาพแวดล้อมการจำลอง
- กวดวิชาภาษาฝรั่งเศสรวมถึงโครงการ FreeCad ที่ทันสมัยและสภาพแวดล้อมการจำลอง
- กวดวิชาการเริ่มต้นการจำลองภาษาฝรั่งเศส FreeCad ตามวิธีการแยกแผ่นการจำลอง