Bagaimana Raspbian Mendeteksi Di Bawah Tegangan


16

Bagaimana Pi tahu itu kurang bertenaga dan menunjukkan baut pencahayaan?

Seperti kebanyakan dari kita tahu, jika Anda menggunakan catu daya yang buruk Anda mendapatkan petir yang memberi tahu Anda kekurangan daya.

Saya perhatikan bahwa ketika saya menjalankan Pi saya pada baterai, sekitar 15 menit terakhir sebelum Pi mulai reboot, baut petir mulai muncul, dan akhirnya tetap di sana sampai reboot, yang masuk akal karena tegangan baterai saya turun seperti itu. terkuras.

Ini membuat saya berpikir saya bisa menggunakan ini untuk membuat program yang mematikan Pi ketika mendeteksi tegangan di bawah konstan. Saya tahu sebelum ini terjadi akan lebih baik tetapi saya tidak khawatir tentang itu.

Apakah ada perintah untuk tegangan seperti sudo vcgenmd measure_tempuntuk suhu untuk mengetahui apa tegangan itu? Jika tidak, bagaimana Pi tahu kapan daya itu kurang?

EDIT : Ini bukan duplikat karena pertanyaan lain menyarankan Anda memerlukan perangkat keras eksternal. Saya menunjukkan ini tidak sepenuhnya diperlukan.


Jawaban:


4

Beberapa model Pi memiliki chip onboard yang mendeteksi tegangan rendah. Ini digunakan untuk menggerakkan LED daya pada beberapa model Pi.

Model A +, B +, Pi2B

LED daya merah terhubung ke GPIO 35. Anda dapat memantau GPIO untuk memeriksa kondisi tegangan di bawah (kurang dari 4,65V).

Pemantauan

Untuk memantau GPIO, Anda perlu membaca nilainya. Jika nilai normal (kondisi daya bagus) tinggi (1) maka undervoltage akan ditunjukkan ketika berbunyi rendah (0). GPIO akan kembali ke kondisi normal jika kondisi undervoltage dihapus. Karena itu, Anda perlu sering membaca GPIO untuk mendeteksi kondisi sementara.


Bagaimana saya bisa memonitor itu ... GPIO adalah pin digital kan?
NULL

@NULL jawaban yang diedit.
joan

18

Jika Anda ingin melakukannya dengan skrip shell, berikut adalah solusi yang berfungsi pada Pi 1, 2 & 3 (tidak diuji dalam nol). Dengan perintah:

/opt/vc/bin/vcgencmd get_throttled

Jika jawabannya adalah:

throttled=0x0

Anda baik dengan voltase yang disediakan dan suhu SoC.

Bit pada angka yang dikembalikan berarti:

0: under-voltage
1: arm frequency capped
2: currently throttled 
16: under-voltage has occurred
17: arm frequency capped has occurred
18: throttling has occurred

Referensi: Raspbian Jessie linux 4.4.9 Degradasi Kinerja Parah .

Ada daftar yang lebih terkini https://github.com/raspberrypi/documentation/blob/JamesH65-patch-vcgencmd-vcdbg-docs/raspbian/applications/vcgencmd.md

0: under-voltage
1: arm frequency capped
2: currently throttled
3: Soft Temp limit reached  3
16: under-voltage has occurred
17: arm frequency capped has occurred
18: throttling has occurred
19: Soft Temp limit has occurred

Ini hanya benar jika undervoltage dan overheating adalah identik atau memiliki semacam hubungan yang diketahui sehingga kita dapat mengatakan jika tegangan terlalu rendah sebesar 0,5 V suhu inti akan menjadi ... tetapi itu tidak terjadi.
goldilocks

Saya baru saja memberikan contoh. Nilai yang dikembalikan berisi beberapa bit yang ditetapkan jika: 1) persediaan tidak memberikan input yang aman (yang diinginkan OP); 2) frekuensi ARM berkurang karena suhu udara yang tinggi; 3) Tegangan lebih dimatikan karena suhu yang sangat tinggi. Tautan yang saya berikan mengabaikan keraguan.
zertyz

1
Lalu mengapa tidak menulis itu sejak awal? Pokoknya, selamat datang - tapi tolong baca kebijakan kami tentang jawaban tanpa tautan saja . Ini tidak sepenuhnya seperti itu, meskipun informasi aktual dalam jawaban tidak menjawab pertanyaan sebenarnya juga. Idenya adalah jawaban yang lengkap dalam dirinya sendiri; hal-hal seperti "baca tautan ini" termasuk dalam komentar. Saya menyadari Anda tidak memiliki reputasi yang cukup untuk mengirim komentar pada pertanyaan, tetapi alangkah baiknya jika Anda menghabiskan beberapa menit merestrukturisasi ini ...
goldilocks

... Perhatikan bahwa kami bukan forum diskusi, di mana daging utas berada di pos santai waktu bolak-balik. Jika Anda mengajukan pertanyaan dan seseorang meminta informasi lebih lanjut, edit ke dalam pertanyaan , jangan hanya meninggalkannya di komentar balasan. Demikian juga, jika Anda memiliki jawaban dan seseorang meminta klarifikasi, apa pun yang belum secara eksplisit dalam jawaban harus diedit menjadi jawaban dan tidak hanya meninggalkan jejak komentar.
goldilocks

1
Itu harus menjadi jawaban yang diterima.
Feriman

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.