Apakah ini akan berhasil? Saya cukup yakin secara teori seharusnya, tetapi saya tidak sering melihatnya atau tidak sama sekali. Secara teori, pembagi tegangan dari 2: 1 ke 1: 2 harus memberikan 3,3 v di satu ujung dan 1,6 v di ujung pot, memberikan ADC rentang yang luas untuk bekerja dengannya. Dan jika tombol ditekan, R1 + RV akan bertindak sebagai pullup maks 20k, sehingga garis akan turun ke 0v, yang dapat dikodekan oleh ADC sebagai peristiwa unik, memungkinkan tombol dan pot tetap ada pada pin input yang sama, memungkinkan ADC melayani kedua tujuan.
Pin input disimpan, tanpa ada perubahan kode yang signifikan, karena adc sudah di polling untuk pot.
mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab
Apakah ini bekerja, dan jika demikian, sebagai keingintahuan, mengapa ini tidak lebih populer.
sumber
Jawaban:
Ya, itu harus bekerja meskipun ada beberapa masalah yang harus diperhatikan.
Masalah rumitnya adalah Anda harus berhati-hati untuk mendeteksi dan mengabaikan transisi antara level sakelar 0 V dan level pot. Beberapa dari mereka akan terlihat seperti level pot yang valid, jadi Anda harus mempertimbangkan beberapa sampel untuk memutuskan apakah level pot itu nyata atau hanya tegangan menengah sambil beralih di antara sakelar dan pot. Ingatlah bahwa sakelar asli memantul, jadi ini lebih rumit daripada yang mungkin Anda bayangkan. Satu hal yang Anda ketahui tentang tegangan pot yang valid adalah tidak dapat berubah secepat itu. Ini akan membantu dalam menghilangkan bacaan perantara.
Masalah lainnya adalah Anda tidak bisa membaca pot ketika sakelar ditekan. Tidak ada yang dapat Anda lakukan tentang ini dengan pengaturan ini. Apakah itu penting tergantung pada sistem dan apa arti posisi pot dan saklar yang ditekan.
Saya tidak bisa mengatakan apakah ini dilakukan "sering" atau tidak. Input pot sendiri tidak biasa, tetapi tentu saja mereka ada. Agar skema ini masuk akal, Anda harus memiliki sistem yang membutuhkan tombol dan pengaturan terus menerus dari pengguna, dan di mana Anda benar-benar tidak ingin menghabiskan pin tambahan. Jika ini adalah perbedaan antara pemasangan mikro 28 pin atau harus menggunakan mikro 44 pin, saya mungkin akan melakukannya. Jika saya memiliki pin lain yang tersisa, saya tidak akan melakukan ini karena lebih baik menjaga kompleksitasnya tetap rendah. Pisahkan pin untuk pot dan tombol akan lebih mudah, dan karena itu lebih kecil kemungkinannya memiliki bug, di firmware.
sumber
Saya telah menggunakan ADC sebagai input tanpa masalah, dalam topologi yang sangat mirip dengan Anda.
Saya tidak punya pot, tapi saya punya pembagi dua-resistor untuk mengurangi tegangan input (itu pada ATxmega, yang memiliki input maksimum ADC 2/3 Vcc), dan sebuah saklar untuk menarik input ke tanah.
Saya pikir itu akan berfungsi dengan baik.
Satu hal yang mungkin harus Anda pikirkan adalah tombol mungkin tidak membuat Anda sepenuhnya terhubung ke tanah. Bergantung pada resistansi sakelar, Anda mungkin masih memiliki beberapa milivolt pada input, jadi Anda tidak boleh berasumsi bahwa tombol yang ditekan menghasilkan nilai ADC 0, tetapi nilai ADC <<10 hitungan, atau sekitar itu coba ini!).
sumber
Semua jawaban ini dan komentar mereka baik, dan menambah banyak wawasan. Saya mencoba untuk melihat mana yang pantas mendapatkan hadiah, tetapi ingin menambahkan ini juga.
Menemukan catatan aplikasi terperinci tentang hal ini. Bukan hanya switch, tapi switch plus pot pada input adc yang sama. Versi PDF dengan Grafik
Artikel ini menyertakan rumus (dan spreadsheet Excel 2007 untuk mengotomatiskan hal-hal) tentang cara memilih resistor bias dan pot, meskipun kode contoh untuk mikrokontroler tidak lagi tersedia.
Retas Komentar Hackaday pada catatan aplikasi ini .
Lebih dari satu tombol pada pin yang sama juga merupakan pertanyaan sumber daya yang bagus.
sumber
Ini akan berfungsi untuk merasakan posisi pot yang tidak terhubung ke ground, atau dengan sumber analog lain yang Anda tahu tidak akan mendekati ground, asalkan Anda tidak keberatan kehilangan beberapa resolusi ADC.
Dalam kasus yang lebih umum, banyak input sensor analog akan dirujuk ke ground, dan mungkin masuk ke ground dalam beberapa keadaan, sehingga skema ini tidak dapat digunakan. Juga, banyak sumber analog mungkin keberatan untuk ditanahkan - sering dengan memancarkan asap ajaib.
Sirkuit ini dapat digunakan jika Anda benar-benar membutuhkan satu input digital lagi, dan menyadari keterbatasannya, tetapi saya tidak akan merekomendasikannya untuk penggunaan umum.
sumber
Ini seharusnya bekerja. Tapi Anda bisa membuatnya lebih baik, itulah sebabnya saya ragu itu biasa.
Dengan asumsi Anda memiliki ADC full-range (0 hingga 5V), mengurangi R1 dan R2 akan meningkatkan jangkauan dinamis Anda dan karenanya resolusi posisi potensiometer. Tentu saja, Anda tidak dapat mengurangi R2 menjadi nol atau Anda kehilangan perbedaan aktivasi aktivasi.
Ini tidak berdaya rendah seperti yang seharusnya. Jika Anda mampu membeli kapasitor keramik, katakanlah 10nF, untuk menghubungkan seluruh sakelar, Anda dapat dengan mudah meningkatkan resistor Anda dengan faktor 10 atau bahkan 100, mengurangi konsumsi daya yang sesuai. Kapasitor juga akan membantu akurasi dan pengulangan, dengan menyaring tegangan rendah yang terlihat oleh ADC dan menyediakan sumber tegangan impedansi rendah. Dan, akhirnya, itu akan menghilangkan bouncing switch (Anda mungkin tahu bahwa hampir semua switch mekanik menunjukkan bouncing kontak, dengan cepat membuat dan memutuskan kontak beberapa kali ketika dioperasikan sekali, memerlukan de-bouncing baik dalam perangkat lunak atau perangkat keras). Seperti yang ditunjukkan sebelumnya, kapasitor semacam itu juga penting untuk mendapatkan perilaku yang terdefinisi dengan baik ketika potensiometer diputar, karena ini dapat menghasilkan transien, paling tidak dalam bentuk impedansi tinggi yang intermiten.
Tentu saja, dengan kapasitor seperti itu, C * R akan konstan waktu Anda (jadi ketika menginginkan (1-e) ^ 3 akurasi dalam 0,1 detik dari rilis switch, Anda sebaiknya tetap di bawah kombinasi 10 nF dan 3 Mega- ohm ...)
Perangkat lunak Anda membutuhkan perhatian. Anda akan melihat transien, baik dari sakelar dan dari gerakan mekanis di dalam potensiometer. Ini tidak sulit untuk dikodekan, tetapi lebih terlibat daripada hanya menanyakan satu hasil konversi ADC. Paling tidak Anda harus memeriksa apakah nilai yang Anda baca cukup stabil di beberapa konversi untuk menganggap Anda tidak sementara.
Anda mungkin termasuk komponen yang tidak perlu:Apa gunanya R1 untuk(dengan asumsi rentang input ADC Anda pergi ke jalur positif)?Jika R1 seharusnya membatasi tegangan output maksimum agar sesuai dengan rentang ADC Anda, maka mengapa potensiometer tidak didukung dari tegangan referensi pada atau di bawah rel ADC positif? Itu akan membutuhkan resistor yang membatasi arus pada keluaran di potensiometer, tetapi itu akan lebih baik. Karena tegangan suplai analog seperti itu dapat dengan mudah dibuat lebih stabil daripada tegangan suplai IC (yang saya anggap baterai 5V Anda akan melambangkan), maka Anda dapat memperoleh lebih sedikit noise teknis dalam konversi ADC Anda.Dan akhirnya, bahkan jika R1 tidak diperlukan untuk mengurangi tegangan output maksimum, perubahan yang sama dalam rangkaian, jika dikombinasikan dengan perpindahan ke pasokan analog yang dapat sesederhana menghubungkan ke + 5V di tempat lain, membawa manfaat gabungan dari di atas dan lebih baik menggunakan rentang input ADC Anda tanpa komponen tambahan.
sumber
Saya tidak akan merekomendasikan pembagi tegangan karena satu alasan:
Ketika Anda menghubungkan perangkat impedansi tinggi untuk pengukuran, itu akan memiliki resistansi aquivalen antara perangkat dan resistor sirkuit (paralel paralel), mengubah hubungan resistor.
Misalnya, jika Anda mengonfigurasi resistor dan pot menjadi 50-50%, saat Anda menghubungkan perangkat, ia akan memiliki 49-51%. Ini tidak akan berubah terlalu banyak karena impedansi tinggi dari ADC, tetapi Anda akan kehilangan akurasi. Maksud saya, Anda dapat melihat ADC sebagai resistor lain yang akan mengubah resistansi yang setara.
mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab
sumber