Bagaimana saya bisa menggunakan pin GPIO sebagai output digital?

28

Saya pernah membaca bahwa Raspberry Pi memiliki sejumlah pin input dan output.

  • Bagaimana saya bisa mengubahnya? (dari Python?)
  • Apa logika tegangan?
  • Apakah saya perlu resistor pull-up atau pull-down?
  • Apakah saya perlu mengganti pin dari input ke output?
  • Pin mana yang tersedia?
Alex L
sumber
Pertanyaan kedua Anda tidak jelas
Sohan Arafat

Jawaban:

16

Pin GPIO adalah 3,3 V, dan arus maksimum adalah 16 mA. Itu berarti Anda tidak akan dapat mengendalikan hampir semua hal secara langsung. Itu sebabnya Anda setidaknya harus menggunakan saklar transistor, jika bukan sirkuit perlindungan yang lebih maju. Anda dapat membaca lebih lanjut tentang mereka di RPi Tutorial EGHS: GPIO Protection Circuits .

Panduan umum adalah periferal level rendah RPi .

Gil
sumber
3
Bisakah Anda memperluas jawaban Anda? Saya ingin melihat semua pertanyaan dijawab, dan informasi dalam tautan yang disediakan dirangkum. Saat ini informasi tentang RTC salah (RTC tidak relevan)
Alex L
11

Instruksi ini tidak khusus untuk Python, tetapi mereka mungkin membantu Anda memulai dengan bereksperimen dengan GPIO. /raspberrypi//a/350/668 memiliki info tentang perpustakaan dan penggunaan khusus untuk Python.

Ketika Anda telah mem-boot Raspberry Pi Anda menggunakan distro Debian yang disarankan, GPIO dinonaktifkan. Anda harus mengaktifkan setiap pin secara terpisah.

Jika Anda melakukannya melalui / sys, Anda akan menemukan "Paths in Sysfs" menarik (cari di dalam https://www.kernel.org/doc/Documentation/gpio/sysfs.txt ). Khususnya, Anda akan mengaktifkan pin dengan "mengekspor" pin itu. Setiap perintah di bawah ini menganggap Anda menjalankan hak akses root (sudo atau lainnya) atau Anda telah mengubah izin / kepemilikan file virtual yang sedang dimodifikasi.

echo 4 > /sys/class/gpio/export

Ini memungkinkan pin GPIO # 4 yang kemudian menyebabkan / sys / class / gpio / gpio4 ada, yang berisi beberapa file virtual. File-file itu termasuk "arah" yang mendefinisikan apakah itu input atau pin output, "nilai" yang dapat dibaca-saja untuk input atau dapat ditulis untuk output dan berisi nilai saat ini, dan lainnya.

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

Tentu saja Anda mungkin lebih suka menggunakan pustaka yang sudah ada sebelumnya untuk melakukan GPIO yang disediakan atau kompatibel dengan bahasa pilihan Anda. Tetapi jika Anda menginginkan sesuatu yang sederhana, Anda bisa langsung berinteraksi dengan sysfs untuk melakukan GPIO yang sangat dasar.

Emmaly Wilson
sumber
0

Impor pustaka python dan Anda dapat dengan mudah mengontrol pin. Ada banyak tutorial online. Anda perlu dan ide dengan dukungan python dan pengetahuan dasar tentang pemrograman python.

Pin GPIO tersedia untuk input dan output.

Sohan Arafat
sumber