Reed switch wiring

9

Bekerja melalui proyek pintu garasi. Saya membeli beberapa di antaranya, tetapi saya akan terguncang jika saya dapat menemukan jawaban yang konsisten tentang bagaimana mereka terhubung ke Rpi.

Pikiranku baru saja mulai mengaitkannya dan mencobanya, aku khawatir akan meledakkan pi saya.

Ada beberapa situs yang mengatakan menggunakan pull up, ada yang mengatakan menggunakan beberapa resistor. Beberapa orang telah Anda hubungkan melalui ground (yang paling tidak masuk akal bagi saya sama sekali) bahwa reed switch tidak diaktifkan, saya tidak tahu bagaimana contoh Adafruit bekerja.

Saya berasumsi saya membutuhkan kekuatan untuk hal-hal umum, lalu keluar dari pos TIDAK / NC Saya perlu menangkap status pada pin GPIO, tetapi saya tidak benar-benar mengerti di mana harus meletakkan tanah? Apakah itu terpisah seperti tautan banyak resistor? Apakah dengan meletakkan sakelar ke ground akan membuat seluruh sirkuit seperti itu?

Saya mencoba membaca beberapa posting di sini, tetapi mereka tidak benar-benar membuat saya mengerti mengapa. Adakah yang bisa membantu saya menghilangkan mitos ini sedikit? Jika Anda punya sumber daya untuk membangun beberapa fundamental saya pasti akan menghargainya. Saya seorang programmer oleh perdagangan jadi saya keluar dari elemen saya.

EDIT:

Saya memiliki beberapa kebingungan pada NO / NC. Saya pikir itu sudah beres sedikit, saya melihatnya dari sudut pandang pintu saya dan bukan dari kontak saklar. SW harus terbuka secara normal.

Saya punya tiga diagram di sini dan saya sedang mencari klarifikasi. Bagaimana Anda mengkonfigurasi pull up vs pull down dengan resistor. Apakah saya memerlukan resistor tambahan untuk melakukan 'tarikan' dan memastikan keamanan prajurit GPIO # 18 saya yang berani? Apakah memindahkan resistor mengubah properti / fungsi rangkaian?

Diagram Sirkuit

Apakah saya memerlukan resistor yang lebih kecil? Saya sudah memiliki 4,7 di papan tulis jadi saya menggunakannya. Apakah ada cara untuk menghitung yang sesuai? Saya tidak mendapatkan penggantian pin.

Jadi, saya mengerti ini adalah pelanggaran protokol SO, mengajukan pertanyaan pada pertanyaan tapi saya lebih suka memahami apa yang terjadi daripada hanya menghancurkan salah satu jawaban Anda dan menyebutnya selesai.

EDIT 2:

Ketika saya mendapatkan solusi yang berfungsi, saya mencoba meningkatkannya tetapi membutuhkan resistor pada setiap baris dan mengubahnya ke skema yang ditunjukkan. Ini berfungsi dan belum meledak pi saya juga tidak dibakar.

Saya menggunakan pull-down dan debounce perangkat lunak.

Apa yang akan memindahkan daya sakelar ke sisi dasar resistor? Tidak ada?

wireDiagram

Bmo
sumber
1
Sakelar Anda biasanya tertutup dan kontak biasanya terbuka. Ini akan membuat proyek Anda lebih mudah. Kawat resistor 4.7K ke pin dan 3,3V rail. Ambil kabel dari tanah dan pin GPIO dan kabel ke kontak saklar (NC) dan common (COM) yang biasanya tertutup dan pin 18 GPIO "bingo" akan rendah sampai pintu dibuka. Saklar terbuka dan resistor tarik 4.7k "menarik" pin GPIO ke 3.3V untuk memberikan input yang Anda cari. Ini adalah opsi yang jauh lebih aman untuk melindungi pi dari kesalahan kabel.
Bob Fk

Jawaban:

4

Itu sebuah saklar. Hubungkan seperti Anda akan beralih lainnya. Satu-satunya hal yang harus diputuskan adalah apakah Anda ingin menggunakannya sebagai normal terbuka (biasanya terbaca off) atau biasanya ditutup (normalnya berbunyi on).

Ada dua cara dasar - menghubungkan common ke ground atau menghubungkan common ke 3V3. Apa pun yang Anda pilih, lebih aman untuk membuat koneksi melalui resistor untuk mencegah risiko korsleting. Sesuatu antara 1-5 ribu ohm harus cocok.

Hubungkan kontak yang dipilih lainnya ke GPIO yang ditetapkan sebagai input.

Connecting common to ground dan biasanya tertutup untuk GPIO

Atur GPIO menjadi input dengan pull-up internal ke set 3V3.

GPIO biasanya akan membaca 0 (ketika sakelar dimatikan). Ini akan membaca 1 saat sakelar dihidupkan.

Connecting common to ground dan biasanya terbuka untuk GPIO

Atur GPIO menjadi input dengan pull-up internal ke set 3V3.

GPIO biasanya akan membaca 1 (ketika sakelar dimatikan). Ini akan membaca 0 saat sakelar dihidupkan.

Menghubungkan umum ke 3V3 dan biasanya tertutup untuk GPIO

Atur GPIO menjadi input dengan set pull-down ke ground internal.

GPIO biasanya akan membaca 1 (ketika sakelar dimatikan). Ini akan membaca 0 saat sakelar dihidupkan.

Menghubungkan umum ke 3V3 dan biasanya terbuka untuk GPIO

Atur GPIO menjadi input dengan set pull-down ke ground internal.

GPIO biasanya akan membaca 0 (ketika sakelar dimatikan). Ini akan membaca 1 saat sakelar dihidupkan.

Dalam semua hal di atas, resistor internal yang lemah (sekitar 50k) akan diganti oleh koneksi ke ground atau 3V3 melalui resistor eksternal yang lebih kuat (kurang resistansi).

joan
sumber
Juga, sakelar Reed memiliki tingkat pentalan yang sangat tinggi. Jadi beberapa debounce akan sangat berguna dalam perangkat lunak.
Piotr Kula
4

Tepat, gunakan saja sebagai saklar. Saya berasumsi ketika pintu terbuka atau tertutup, Pi ingin mengetahuinya melalui salah satu pin inputnya. Apakah pi mencari yang rendah? Kemudian pasang saklar dari pin input ke ground dan ambil pull-up resistor ke jalur + 3.3V. Ketika sakelar terbuka yaitu tidak ada magnet, input akan masuk logika tinggi. Ketika magnet mengaktifkan sakelar, pin input akan masuk akal. Penarik pull-up tidak kritis, mulai dengan 4k7Ohm (kuning, ungu, merah, X). Ukur pin dengan mematikan, itu harus dekat dengan 3.3V jika tidak mencoba resistor dengan Ohm lebih sedikit. katakan 2k2. Jangan pergi di bawah 1k, itu akan menarik 3.3mA. Jika Anda mencari yang tinggi, gunakan kontak yang biasanya tertutup dari saklar buluh. Jangan jalankan 3.3V ke sakelar eksternal. Pendek bisa membunuh chip regulator Pi Anda.

Bob Fk
sumber
Terima kasih telah menjawab, saya pikir saya semakin dekat. Saya mengedit pertanyaan saya jika Anda ingin melihatnya.
Bmo
1

Diagram Anda kiri dan tengah tidak bagus sama sekali GPIO disingkat menjadi ground dan tidak dapat melakukan apa-apa.

Diagram tangan kanan benar jika program pin 18 GPIO Anda sedang mencari input untuk mengambil langkah berikutnya. Namun kami biasanya tidak menghubungkan power rail, 3.3V, langsung ke input, kami biasanya memberi makan melalui resistor 2.2k atau lebih. Coba 4.7k dan lihat apakah pinnya tinggi. Saya akan memasang resistor dari pin GPIO 18 ke sakelar dan minta sisi lain ke saluran listrik 3.3V. Saya tidak senang memiliki garis 3.3V pergi ke pintu garasi tanpa resistor untuk membatasi arus jika terjadi korsleting di kabel Anda. Jika resistor 4.7k cukup untuk menarik pin tinggi saya akan membaginya dalam produk akhir dengan 2.2k kedua sisi saklar di ujung Pi untuk melindungi Input Pi dan catu daya Pi dari celana pendek yang tidak disengaja di kabel eksternal ke saklar pintu garasi. Resistor di sirkuit kanan Anda akan disebut pull down dan biasanya tidak diperlukan. Sekali lagi periksa apakah dengan voltmeter atau probe logika jika input biasanya rendah sampai ditarik tinggi oleh saklar dan pastikan mendekati 3V. Saya lawan Anda, baik dengan perangkat keras, tidak tahu apa-apa tentang pemrograman, mencoba belajar sedikit tentang Linux.

Bob Fk
sumber
Terima kasih lagi. Saya telah menambahkan diagram pengaturan saya saat ini. Apakah Anda mengatakan saya harus memindahkan pasokan 3.3V di sisi dasar resistor? Saya harus merasa lebih nyaman dengan penguji saya ...
Bmo
0

Lepaskan resistor 4.7K ke ground. Itu tidak dibutuhkan. Itu hanya beban kecil yang tidak perlu pada catu daya. Sirkuit Anda saat ini akan bekerja sebagaimana mestinya, TETAPI akan lebih baik untuk memiliki resistor secara seri dari 3.3V power rail ke masing-masing sakelar untuk melindungi catu daya seandainya salah satu sakelar secara tidak sengaja terhubung ke ground. Apa ukuran resistor? Coba 10k, jika berhasil, itu berarti Anda memiliki> 3v pada pin GPIO, bagus, jika tidak mencoba 4.7k atau 2.2k atau bahkan 1k

Bob Fk
sumber
0

Hanya sirkuit tangan kanan Anda yang akan bekerja. Jawaban yang Anda dapatkan di atas mungkin benar (mencoba menggambarkan rangkaian kata-kata membingungkan, bahkan bagi insinyur listrik).

Saya merasa ini memberi terlalu banyak pilihan. Saya merekomendasikan yang berikut ini. http://elinux.org/RPi_GPIO_Interface_Circuits#Buttons_and_switches

Untuk alasan teknis terkait interferensi dan keselamatan, tarik ke Vcc dengan sakelar ke ground lebih disukai, tetapi keduanya akan berfungsi. (Anda dapat menggunakan sakelar Biasanya Terbuka atau Biasanya Tertutup).

Jika Anda ingin menjadi super aman, Anda bisa menyertakan resistor kecil secara seri dengan timah dari GPIO. Ini hanya diperlukan jika Anda menghubungkan sakelar ke pin yang dikonfigurasi sebagai output. Pi tidak akan rusak bahkan jika Anda melakukannya, karena memiliki perlindungan internal dari kelebihan beban, tetapi dapat berdampak pada pengoperasian pin lainnya.

Sakelar buluh PS memantul seperti anak kecil di atas trampolin. Anda akan memerlukan beberapa teknik anti-bouncing, baik dalam perangkat keras maupun perangkat lunak.

Milliways
sumber
-1

Saya bisa membuatnya bekerja dengan mengikuti contoh ini yang menggunakan tegangan dari pin dan ground GPIO. Saya melewatkan Streamer karena saya tidak tertarik.

Reed beralih tutorial

Jon F
sumber
1
Harap cantumkan ringkasan kecil dari tautan jika itu terjadi.
Manusia