สร้างปุ่มหยุด / ปลุกหรือไม่


10

ฉันติดตั้งปุ่มปลุกจากหยุดโดยใช้หมุด 5 และ 6 หมุดสองตัวนี้เมื่อเชื่อมต่อจะรีเซ็ตกำลังไฟและรีบูตจากหยุด sudo haltฉันต้องการที่จะใช้ปุ่มเดียวกันนี้ถ้าฉันสามารถที่จะเรียกใช้คำสั่งที่เมื่อกดจะปิดเครื่องคอมพิวเตอร์ใช้ สิ่งนี้จะเป็นไปได้ไหม สำหรับsudo haltปุ่มฉันจะต้องเชื่อมต่อจาก GPIO 1 กับปุ่มจากนั้นแยกเป็น GPIO 6 (กราวด์) และพิน GPIO ทั่วไป ฉันไม่ทราบว่าเป็นไปได้ / ปลอดภัยที่จะเชื่อมต่อ GPIO 5 กับสิ่งนี้หรือไม่

คำตอบ:


8

ไม่จำเป็นต้องเพิ่มพิน GPIO อื่น ๆ คุณสามารถใช้หมุดเดียวกันสำหรับปุ่มหยุดของคุณ

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

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import subprocess

GPIO.setmode(GPIO.BOARD)
# set pin 5 to input, and enable the internal pull-up resistor
GPIO.setup(5, GPIO.IN, pull_up_down=GPIO.PUD_UP)

oldButtonState1 = True
while True:
    buttonState1 = GPIO.input(5)

    if buttonState1 != oldButtonState1 and buttonState1 == False :
        # print "Button 1 pressed"
        subprocess.call("halt", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    oldButtonState1 = buttonState1

    time.sleep(.1)

PS ฉันไม่รู้เกี่ยวกับฟังก์ชัน Wake from Halt ขอบคุณคุณฉันรู้ตอนนี้! ขอบคุณมาก


1
ยอดเยี่ยม! ฉันไม่ได้ตระหนักว่าฉันสามารถทำได้ทั้งหมดในเวลาเพียง 5 และ 6 ขอบคุณ! :)
Ryan McClure

ดังนั้นเราทั้งสองจึงเรียนรู้บางสิ่งบางอย่างในวันนี้ (-:
Gerben

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

สคริปต์ของคุณทำงานอย่างต่อเนื่องในทางใดเช่น daemonized คุณสังเกตเห็นการลดลงของประสิทธิภาพเมื่อดูภาพยนตร์หรือไม่?
athanassis

1
อันที่จริงมันเป็นเวลานานมาก แต่ไม่ใช่เมื่อ CPU ได้รับความนิยม 100% ในเวลาไม่กี่วินาทีเช่นถอดรหัสภาพยนตร์ HD เต็มรูปแบบ ฉันจะลองทำดูการทดสอบจะไม่เจ็บ ขอบคุณสำหรับความคิดเห็น!
athanassis

2

ปุ่มรีเซ็ตสามารถเชื่อมต่อกับส่วนหัว P6 ซึ่งสามารถรีเซ็ต Pi ได้ การลัดวงจรขาสองขาของ P6 ไปด้วยกันชั่วขณะจะทำให้ CPU รีเซ็ตแบบนุ่มนวล (ซึ่งสามารถ 'ปลุก' Pi จากสถานะหยุด / ปิดเครื่อง)

CF


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