Bagaimana cara mendeteksi apakah ada tegangan antara dua titik melalui GPIO?

9

Saya ingin mendeteksi apakah perangkat eksternal dihidupkan atau dimatikan. Saya menemukan dua pin di mana harus ada 5V antara dalam kasus pertama, tetapi tegangan mungkin sedikit berbeda dan saya tidak ingin memecahkan Pi. Bagaimana saya harus menghubungkan titik ke pin GPIO untuk mendeteksi apakah ada tegangan? Atau untuk bertanya lebih umum:

Bagaimana saya bisa menggunakan Raspberry Pi untuk menguji apakah baterai kosong (tidak ada atau sedikit tegangan) atau tidak (tegangan nominal)?

Jika pengukuran analog tidak memungkinkan, dapatkah seseorang mengukur setidaknya jika tegangan di atas ambang batas tertentu? Ini akan menghasilkan sinyal digital, tetapi bagaimana membuatnya dan pin GPIO mana yang digunakan?

Jakob
sumber

Jawaban:

5

Dengan Raspberry Pi saja Anda tidak bisa, karena tidak memiliki konverter analog-ke-digital (ADC). Anda dapat membeli kartu addon ini http://www.abelectronics.co.uk/ dan membuat pembagi tegangan dengan dua resistor atas pasokan baterai Anda.

Kristen
sumber
1
Terima kasih atas klarifikasi dan tautan ke kartu tambahan ADC.
Jakob
3

Anda ingin mencari atau membangun sendiri komparator dengan karakteristik yang sesuai. Dalam kasus Anda, Anda ingin memeriksa tegangan berakhir katakanlah 3V3 dan output 3V3. Pastikan komparator Anda toleran terhadap 5V.

Alex Chamberlain
sumber
Komparator :-) solusi bagus. Tidak pernah menggunakan salah satunya. Akan mengingatnya. +1
Piotr Kula
1

Kartu add on memang keren, tetapi Anda bisa menggunakan pengatur tegangan yang murah dan sederhana.

Regulator tegangan, tergantung pada modelnya, mengharapkan input tegangan apa pun yang dirancang untuk ditangani dan akan menampilkan tegangan yang diinginkan pada pin keluaran. Dalam kasus Anda, Anda ingin merasakan 5 volt tetapi membaca 3 volt yang aman untuk Pi.

Anda dapat menemukan banyak persediaan di ebay tetapi di sini ada tautan Sparkfun ke contoh.

Jika perangkat eksternal menyediakan arus hingga 10vDC maka pin output memberikan 3V (HIGH ON DIGITAL PIN) dan Anda dapat dengan aman membaca itu menggunakan GPIO dengan python atau apa pun yang Anda inginkan.

Anda dapat menemukannya murah jika Anda melihat-lihat. Anda HARUS PASTIKAN output tidak lebih dari 3.3 volt yang terhubung ke Raspberry Anda. Anda bisa meletakkan resistor pada output untuk menjatuhkan tegangan sedikit .. tetapi regulator dirancang agar 99,9% akurat pada output.

Raspberry Pi menggunakan NCP1117 3.3Volt untuk Menggerakkan bus listrik 3V3 yang memperoleh daya dari bus 5V0 yang berasal dari catu daya USB Anda.

Regulator tegangan digunakan untuk memasok daya ke perangkat lain. Dalam hal ini saya hanya menggunakan imajinasi untuk menggunakan solusi murah dan menggunakannya sebaliknya.

Karena pada akhirnya kita hanya perlu merasakan tegangan sebagai sinyal digital. Tidak masalah apa yang Anda gunakan untuk menghasilkannya. Ini bisa berupa baterai 3.3V, power supply 3.3V dc, output digital buffered dari Arduino, Raspberry lain, generator sinyal, timer 555, atau pengatur tegangan sederhana. Ini implementasi dan tujuan yang penting.

  • Akhir hari ...
  • 3.3v = 1
  • 0v = 0

Referensi:

Tegangan maksimum pada GPIO

Arus Maksimum pada GPIO

Piotr Kula
sumber
Alasan untuk downvote akan sangat konstruktif. Mungkin jawaban ini tidak konvensional- Tapi jika sangat cacat maka tolong beri tahu saya.
Piotr Kula
2
Ide yang menarik, mungkin menggunakannya dalam proyek tambang (uji apakah rel 12V aktif atau tidak)
mglauche
Pastikan untuk meletakkan pull down atau pull up resistor pada pin Digital. Ini jawaban yang sangat lama .. salah satu yang pertama. Tetapi ideologinya sama.
Piotr Kula