Saya mencari bagian yang memungkinkan pengguna untuk sering mengubah konfigurasi. Saat ini saya menggunakan saklar DIP SMD yang terhubung ke I2C I / O expander.
Apa yang mengganggu saya adalah jejak besar dari komponen-komponen ini (saklar DIP dikombinasikan dengan IO expander IC) juga pada antarmuka pengguna yang agak membosankan. Apakah ada DIP switch atau sesuatu yang melayani fungsi yang sama yang saya dapat berbicara melalui bus digital seperti I2C untuk membaca kondisinya?
Saya juga terbuka untuk pendekatan yang sama sekali berbeda. Yang saya butuhkan adalah sesuatu yang dapat diubah secara mekanis secara permanen dan memungkinkan setidaknya 64 negara bagian yang berbeda. Penting bahwa konfigurasi dapat dibuat ketika sirkuit tidak dinyalakan dan memberikan umpan balik visual dari konfigurasi yang tepat kepada pengguna. Satu-satunya cara di mana itu akan baik-baik saja untuk menghidupkan rangkaian adalah jika konfigurasi dan umpan balik visual mandiri tanpa perlu kontrol dari mikrokontroler atau SoC.
Pertanyaannya agak terkait dengan pertanyaan ini dari 6 tahun yang lalu: penggantian saklar DIP
Sunting: Ada beberapa saran bagus dalam jawaban dan saya pikir saya meninggalkan pertanyaan ini tanpa jawaban, suara masyarakat harus memutuskan mana yang bermanfaat dan apa yang tidak. Jika Anda memiliki masalah yang sama seperti saya, lihat semua jawaban.
Jawaban:
Anda bisa menggunakan sakelar SIP alih-alih DIP. Penghematan di area papan akan memberi Anda ruang untuk antarmuka I2C Anda (atau antarmuka yang lebih sederhana seperti register geser dengan kait input):
Gambar menunjukkannya horisontal tetapi sebenarnya dipasang secara vertikal.
sumber
Saklar "DIP"
Pertama-tama, "DIP" -witch tidak harus besar. Ini adalah saklar SMD 6-bit dengan pin J-hook dan pitch 1,27 mm:
Potensiometer
Jika Anda putus asa mengurangi jejak, dan Anda bisa sedikit merepotkan pengguna, Anda bisa menggunakan potensiometer yang terhubung ke konverter A / D. Karena Anda memerlukan 64 pengaturan, konverter 12-bit harus memiliki ruang kepala resolusi lebih dari cukup untuk membedakan antara langkah-langkah, mengingat beberapa penyaringan dan pengurasan listrik dan perangkat lunak. Inilah solusi 2 x 2 mm:
Namun, saya belum pernah melihat potensiometer analog dengan 64 penahanan fisik. Ini berarti Anda tidak akan memiliki umpan balik taktis yang andal bagi pengguna saat mengonfigurasi perangkat. Juga sulit untuk menemukan pengaturan yang benar saat boot, karena dapat dibiarkan tepat di ambang batas antara dua pengaturan - Saya akan menyimpan pengaturan sebelumnya dalam EEPROM, dan jika potensiometer cukup dekat dengan nilai yang disimpan saat boot, saya akan menganggap mereka sama.
Juga, saya mungkin tidak akan menggunakan trimmer 2 kali 2 mm, tetapi ada ribuan trimpots berbeda.
sumber
Apakah Anda memiliki ADC cadangan?
Jika Anda memiliki 8-bit ADC cadangan pada mikrokontroler terdekat, Anda mungkin bisa membuang IO expander yang mendukung jaringan resistor - baik tangga R-2R atau tangga biner berbobot biner. Itu akan menyandikan posisi sakelar sebagai level analog. Tangga resistor tersedia dalam paket yang sangat kecil, tetapi saya tidak tahu apakah Anda akan mendapatkan yang lebih kecil dari expander I2C Anda.
Berapa banyak tujuan umum IO baris yang Anda miliki?
Jika Anda bisa bertahan dengan lebih sedikit jalur IO, mungkin Anda bisa membuang IO expander dan menggunakan yang Anda miliki? Anda dapat multiplex switch ke kurang dari enam jalur IO. Bahkan, jika Anda memiliki ruang untuk 3 dioda dan mikrokontroler Anda memiliki pin tristate, maka Anda dapat mengaturnya hanya dengan 3 pin.
Bisakah pengguna Anda mengelola sesuatu yang sedikit teknis?
Jika pengguna Anda dapat mengikuti instruksi, dan konfigurasi hanya jarang berubah, Anda bisa memiliki terminal terbuka di mana mereka dapat dimasukkan ke dalam resistor. Anda akan mengukur resistor dengan ADC, atau dengan mengukur konstanta waktu terhadap kapasitor. Anda harus dapat membedakan nilai-nilai resistor 64, yang bisa rumit dengan pendekatan yang terakhir. Dan tentu saja pengguna Anda perlu memiliki nilai-nilai resistor / gaya huruf yang tepat.
sumber
Satu atau lebih sakelar putar kode adalah yang Anda cari.
Secara teoritis jumper menawarkan lebih banyak konfigurasi ketika Anda membutuhkan 100-an opsi karena pengguna dapat mempersingkat jumlah mereka bersama-sama dalam konfigurasi yang berbeda, menambahkan resistor, kapasitor, dioda, dll. Tetapi itu sangat teknis bagi pengguna dan untuk diuraikan oleh board!
sumber
NFC NTAG dari smartphone NXP +. Ini pada dasarnya adalah EEPROM I2C, yang juga dapat dibaca dan ditulis melalui NFC tanpa daya sistem.
sumber
Banyak pilihan bagus di sini! Satu lagi yang agak tidak jelas: Gunakan penerima IR, dan kemudian gunakan remote TV atau komputer untuk menyorot pengaturan. Begitulah cara lampu RGB melakukannya.
sumber
Saat meneliti ini, saya mendapat rekomendasi untuk Rotary Coded Switches. Jejak kaki mereka sebanding dengan saklar DIP pitch 1,27 mm yang sedikit setara. Meskipun mereka menawarkan antarmuka pengguna yang jauh lebih unggul dibandingkan dengan switch DIP / SIP menurut saya.
Alih-alih perlu mengubah angka desimal atau heks menjadi biner dan membalik satu ton sakelar kecil, Anda cukup memutar 1 atau 2 sakelar putar ini dan bekerja dengan bilangan hex. Jauh lebih mudah untuk memberi tahu pengguna untuk "memasukkan" E6 daripada memerintahkan mereka untuk membalik banyak sakelar dalam pola tertentu.
sumber
Pendekatan yang berbeda dapat berupa rotary encoder, EEPROM dan 6 LED kecil.
Status disimpan dalam EEPROM, dan LED menunjukkan mode yang dipilih saat ini.
Mengubah encoder akan beralih di antara mode.
Mungkin tidak menghemat banyak ruang juga - encoder tipikal Anda memiliki poros 6 mm dan kemudian Anda membutuhkan ruang untuk LED juga.
Hanya menggunakan sakelar putar tunggal tidak terlihat menjanjikan. Dengan 64 posisi, Anda akan berakhir dengan hanya di bawah 6 ° per posisi, merasa bahwa atau pelabelan akan menjadi sulit.
Baca saja jawaban Anda @Trevors, jadi pendekatan ini juga tidak berguna.
sumber
Tiga opsi.
Analog. Pembagi tegangan yang bisa disetel. Pengguna memasok resistor rentang 5% standar mereka sendiri untuk menetapkan nilainya.
PWM. Sirkuit PWM atau RC gaya terisolasi terisolasi dengan 64 langkah yang dibaca perangkat Anda. Mereka dapat diaktifkan secara terpisah atau dari sumber yang sama, tetapi karena itu opto terisolasi perangkat Anda tidak akan hidup. Anda dapat menonaktifkan sirkuit PWM setelah boot.
Digital. Potensiometer digital dengan kontrol tombol. Sekali lagi, sirkuit dapat diberdayakan secara independen dari perangkat Anda.
sumber
Encoder petir? Ini berkisar dari 0 hingga 9, dapat ditumpuk dan memiliki keluaran biner:
sumber
Anda selalu dapat mengeluarkan I2C atau antarmuka lain mungkin USB dan membiarkan pengguna memasang teleponnya dengan aplikasi khusus yang memungkinkan Anda mengonfigurasi beberapa alamat EEPROM internal.
Namun, menggunakan aplikasi telepon bisa sangat bermasalah. Anda perlu mendukung aplikasi dan tetap mengikuti perkembangan teknologi terbaru, dan Anda perlu mendukung banyak vendor ponsel.
Atau Anda bisa menyediakan "Dongle" kustom yang dihubungkan dengan memungkinkan Anda melakukan hal serupa.
Tapi saya ragu itu akan menghemat banyak ruang.
Jika Anda memiliki input pengguna lain, ucapkan dua atau tiga tombol dan semacam indikator, juga dimungkinkan untuk, dengan input pengguna yang sesuai pada tombol (tahan waktu, dll.), Letakkan perangkat dalam mode pemrograman, dan konfigurasikan seperti itu. Hal yang sama Anda lihat pada peralatan rumah tangga seperti termostat, pelembut air, komputer, dll.
Anda dapat melakukan banyak hal dengan dua atau tiga tombol dan LED.
Jika perlu dikonfigurasi saat tidak berdaya, Anda cukup macet dengan sakelar atau jumper.
sumber