Apakah ini dapat berfungsi sebagai pengaturan Input ADC dan apakah ini biasa?


8

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.

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Apakah ini bekerja, dan jika demikian, sebagai keingintahuan, mengapa ini tidak lebih populer.


3
Itu akan bekerja dengan baik. Mungkin menambahkan kapasitor kecil di saklar, untuk memotong paku menyapu pot dan memberikan beberapa debouncing saat menggunakan saklar.
Anindo Ghosh

Tidak persis sama, tetapi lihat diagram sirkuit ini dan cobalah untuk menemukan sesuatu yang terlihat familier: sainsmart.com/zen/documents/20-011-901/schematic.pdf
jippie

@ jippie tidak, saya tahu tentang tangga resistif sebagai beberapa tombol, itu cukup umum (kontrol radio roda kemudi mobil, kontrol inline ipod / iphone). Ini secara khusus menggunakan pot dan tombol pada adc yang sama yang saya tanyakan, saya belum pernah melihatnya.
Pejalan kaki

2
Anda mengorbankan beberapa resolusi dalam membaca posisi pot dengan cara ini. Itu mungkin bisa diterima, tergantung pada aplikasi Anda dan sifat kontrol yang menurut pengguna mereka putar.
RBerteig

1
Anda dapat mengidentifikasi sakelar kedua yang menarik input ke VCC, asalkan tidak ada kesempatan kedua sakelar ditekan secara bersamaan. Jadi, decoding satu penyesuaian analog dan dua penutupan saklar yang saling eksklusif dengan input ADC tunggal tidak buruk, dan mungkin merupakan trik yang berguna dalam micro-pin-count rendah. Pikirkan pengertian posisi dengan sakelar batas keras di setiap ujung. Kemudian mereka secara mekanis eksklusif, dan bahkan cocok dengan sinyal analog.
RBerteig

Jawaban:


6

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.


2

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!).


Saya telah melihat ADC digunakan untuk sakelar karet konduktif, dengan alasan bahwa perangkat lunak itu kemudian dapat mengimbangi peningkatan resistensi karena penuaan.
starblue

2

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

masukkan deskripsi gambar di sini

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.

Batasan teknik ini adalah Anda tidak dapat menekan lebih dari satu tombol kapan saja. Selain itu, mikrokontroler dapat membaca posisi potensiometer hanya ketika Anda tidak menekan tombol lainnya. Contoh ini menunjukkan cara menggunakan dua tombol, tetapi jumlah tombol bisa beragam. Rentang input tersedia untuk sebanyak 10 tombol dan satu potensiometer, yang semuanya berbagi pin input yang sama (Gambar 2). Meskipun rentang yang dihitung tidak tumpang tindih dan unik, diragukan bahwa perangkat keras ADC Anda dapat dengan andal membedakan pita-pita ini dalam semua keadaan. Memilih nilai-nilai resistor yang lebih kecil membuat pita-pita ini lebih jauh terpisah, menciptakan rentang pelindung yang lebih besar.

Menggunakan teknik ini dengan empat tombol dan satu potensiometer adalah masuk akal. Bereksperimen dengan spreadsheet membantu membuat kerja cepat menentukan nilai seri-resistor yang tepat untuk setiap switch dan rentang outputnya.

Retas Komentar Hackaday pada catatan aplikasi ini .

Lebih dari satu tombol pada pin yang sama juga merupakan pertanyaan sumber daya yang bagus.


Sistem tertanam yang kami rancang menggunakan voltase berkode untuk mengidentifikasi sebagian besar tombolnya, mengikuti contoh yang ditetapkan dalam desain referensi untuk SOC pada intinya. Banyak sekali kunci, satu pin GPIO. Berfungsi cukup baik karena semua tombol secara fisik terpisah satu sama lain dan tidak ada alasan bagi pengguna untuk mencoba menekan lebih dari satu per satu.
RBerteig

1

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.


1
Dan itu mungkin alasan itu tidak bahwa umum. Tetapi jika Anda memiliki kenop dan sakelar (klik poros untuk masuk?) Itu akan memungkinkan membaca keduanya dari satu pin.
RBerteig

@RBerteig Saya benar-benar lupa tentang jenis-jenis pot kombo / sakelar ketika menanyakan ini. Itu aplikasi yang sangat tepat.
Pejalan kaki

@ PeterBennett ketika Anda mengatakan input sensor analog mungkin ke ground atau sumber analog yang keberatan untuk di-ground, dapatkah Anda menjelaskan / menjelaskannya? Dalam kasus khusus saya, ini adalah input adc MCU umum, yang seharusnya tidak memiliki masalah dengan mendapatkan VCC langsung atau input referensi Gnd.
Pejalan kaki

@Passerby: Jika output sensor yang berbagi input ADC dengan tombol ground (atau dekat dengannya), program Anda tidak akan dapat membedakan antara pembacaan sensor rendah dan penekanan tombol, dan tidak akan mendeteksi tombol tekan ketika output sensor analog rendah. Jika sensor analog memiliki output "tiang totem" atau tahap keluaran dengan impedansi rendah lainnya, sensor ajaib ini akan mengeluarkan asap ketika tombol tekan menarik garis rendah.
Peter Bennett

@ PeterBennett jadi itu hanya masalah jika saya berbagi input ADC antara pot / tombol dan sensor lain? Jika saya hanya melakukan kombo port / tombol di atas, itu seharusnya tidak menjadi masalah kan?
Pejalan kaki

1

Ini seharusnya bekerja. Tapi Anda bisa membuatnya lebih baik, itulah sebabnya saya ragu itu biasa.

  1. 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.

  2. 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 ...)

  3. 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.

  4. 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.


1
Poin 4 salah. R1 memiliki tujuan yang diperlukan, yaitu membatasi arus catu daya ketika sakelar ditekan dan pot berada pada pengaturan atasnya. Tanpa R1, sakelar akan menyingkat catu daya saat pot berada di atas.
Olin Lathrop

Kamu benar! Saya berdiri dikoreksi. Saya belum yakin bagaimana cara menyelamatkan sisa poin 4, tapi ya, tidak semuanya benar seperti sekarang.
piramida

Saya pikir saya berhasil memperbaiki kesalahan sambil menawarkan potensi peningkatan yang sama.
piramida

Saya membatalkan unduhan downvote karena Anda mengoreksi kesalahan terang-terangan. Namun, saya masih tidak setuju. Lebih baik membiarkan bagian atas R1 terhubung ke suplai yang sama dengan menyalakan A / D karena itu membuat pengukuran ratiometrik dengan suplai. Ketika rantai pembagi A / D dan resistor menggunakan voltase referensi yang sama, variasi voltase tersebut akan dibatalkan.
Olin Lathrop

Terima kasih. Dengan konfigurasi ratiometrik, +5 V adalah tegangan referensi yang sesuai, dan menghapus R1 tidak mengubah itu. Tetapi ini membantu dengan mengambil keuntungan dari rangkaian pengaturan ratiometrik yang lebih besar. Satu-satunya kelemahan yang mungkin adalah jika R2 dan Rv memiliki koefisien suhu yang sangat berbeda. Maka sirkuit asli membatalkan efek jika, dan hanya jika, potensiometer diatur tepat 50%. Tetapi efeknya sangat kecil, dan, seperti yang dikatakan, ini, well, kompensasi hanya berfungsi untuk satu pengaturan potensiometer.
piramida

1

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.

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab


Bukankah itu berarti setiap penggunaan pot dengan adc akan memiliki ketidaktepatan yang melekat itu?
Pejalan kaki

Bukan hanya karena pot, karena ADC itu sendiri memiliki impedansi dan jika Anda menghubungkannya ke pembagi voltaje, relasinya akan berubah karena akan seperti memiliki resistor paralel ke R2.
Chirry
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.