สถานะของ GPIOs คืออะไรเมื่อใช้พลังงาน เช่นสูงต่ำ Hi-Z
ระบบปฏิบัติการใด ๆ จะเปลี่ยนสถานะของ GPIO ใด ๆ เมื่อมันโหลด? หวังว่าจะไม่
สถานะของ GPIOs คืออะไรเมื่อใช้พลังงาน เช่นสูงต่ำ Hi-Z
ระบบปฏิบัติการใด ๆ จะเปลี่ยนสถานะของ GPIO ใด ๆ เมื่อมันโหลด? หวังว่าจะไม่
คำตอบ:
ผมพบคำตอบที่นี่ต้องขอบคุณrussellstrong ฉันพูดส่วนที่เกี่ยวข้องด้านล่าง
ฉันได้เพิ่มข้อสรุปเกี่ยวกับตัวต้านทานแรงดึง / ความไวของวงจรของฉันไปเป็นตัวต้านทานแบบดึงลง RPi ไม่ได้ตั้งค่า GPIO เป็นเอาท์พุทเมื่อบู๊ตครั้งแรก กำลังเปิดตัวต้านทานแบบดึงลงเป็นเวลา 740 มิลลิวินาที
ฉันใช้ตัวต้านทาน 18K สองตัว (3v3 -> GPIO -> GND) เพื่อดูว่าเกิดอะไรขึ้นกับขา นี่คือร่องรอย เส้นสีฟ้าคือกำลัง 3v3 เส้นสีเหลืองคือเส้น GPIO
เมื่อเริ่มใช้ Debian distro ที่แนะนำสำหรับ RPi GPIO จะถูกปิดการใช้งาน คุณต้องเปิดใช้งานหมุดแต่ละที
หากคุณทำผ่าน/ sysคุณจะพบ "เส้นทางใน Sysfs" ที่น่าสนใจ (ค้นหาภายในhttp://www.kernel.org/doc/Documentation/gpio.txt ) โดยเฉพาะอย่างยิ่งคุณจะเปิดใช้งานพินโดย "ส่งออก" คำสั่งใด ๆ ด้านล่างถือว่าคุณกำลังใช้งานด้วยสิทธิ์พิเศษ (sudo หรืออื่น ๆ ) หรือคุณเปลี่ยนสิทธิ์ / ความเป็นเจ้าของของไฟล์เสมือนที่กำลังแก้ไข
echo 4 > /sys/class/gpio/export
สิ่งนี้ทำให้ GPIO pin # 4 ซึ่งทำให้ / sys / class / gpio / gpio4 มีอยู่ซึ่งมีไฟล์เสมือนหลายไฟล์ ไฟล์เหล่านั้นรวมถึง "ทิศทาง" ซึ่งกำหนดว่าเป็นอินพุตหรือพินเอาต์พุต "ค่า" ซึ่งเป็นแบบอ่านอย่างเดียวสำหรับอินพุตหรือเขียนได้สำหรับเอาต์พุตและมีค่าปัจจุบันและอื่น ๆ
echo out > /sys/class/gpio/gpio4/direction # set it as an output pin
echo 1 > /sys/class/gpio/gpio4/value # set the value to ON
echo 0 > /sys/class/gpio/gpio4/value # set the value to OFF
echo in > /sys/class/gpio/gpio4/direction # set it as input
cat /sys/class/gpio/gpio4/value # get the value
echo 4 > /sys/class/gpio/unexport # disables pin 4 and removes the gpio4 directory
แน่นอนว่าคุณอาจต้องการใช้ไลบรารีที่มีอยู่ก่อนหน้าเพื่อทำ GPIO ที่มาพร้อมกับหรือเข้ากันได้กับภาษาที่คุณเลือก แต่ถ้าคุณต้องการอะไรที่เรียบง่ายคุณสามารถเชื่อมต่อโดยตรงกับ sysfs เพื่อทำ GPIO พื้นฐาน
cat /sys/class/gpio/gpio4/direction
พูดว่า "ใน" ฉันอ่านในแผ่นข้อมูลว่าไม่สามารถอ่านสถานะของ pullups / pulldowns ได้ ฉันจะพยายามวัดพวกเขา