Isi kandungan:

Cara Membaca Banyak Suis Dengan Satu Pin MCU: 4 Langkah
Cara Membaca Banyak Suis Dengan Satu Pin MCU: 4 Langkah

Video: Cara Membaca Banyak Suis Dengan Satu Pin MCU: 4 Langkah

Video: Cara Membaca Banyak Suis Dengan Satu Pin MCU: 4 Langkah
Video: Skema Timer 1-3 Kulkas 2 Pintu dan Cara Kerjanya 2024, November
Anonim
Cara Membaca Banyak Suis Dengan Satu MCU Pin
Cara Membaca Banyak Suis Dengan Satu MCU Pin

Adakah anda pernah memilih projek dan projek itu terus berkembang dan berkembang, sementara anda menambah lebih banyak perkara (kami menyebutnya sebagai Feur Creaturism)? Pada projek baru-baru ini, saya sedang membina meter frekuensi dan menambahkan penjana isyarat lima fungsi / synthesizer frekuensi. Saya segera mendapat lebih banyak suis daripada pin yang ada, jadi apa yang perlu dilakukan oleh lelaki?

Namun, saya tidak lama lagi mempunyai tujuh suis pada Funbox saya (ya, itulah yang saya panggil penjana fungsi saya … Saya tahu, saya tidak mempunyai kreativiti) dan inilah arahan ringkas yang menunjukkan kepada anda bagaimana anda boleh melakukan perkara yang sama. Ia tidak memerlukan register shift atau IC tertentu. Sebenarnya, ia tidak memerlukan pengawal mikro, sama ada, jika semikonduktor diskrit adalah bagaimana anda melancarkan. Inilah salah satu cara anda dapat membaca / mengurus banyak suis menggunakan satu pin pada AVR anda (atau mikrokontroler lain … Saya pernah mendengar terdapat mikrokontroler lain selain AVR, tetapi saya tidak dapat membayangkan…).:)

Langkah 1: Keperluan Asas (Tidak Betul)

Untuk mencapai ini, anda memerlukan beberapa komponen. Ini membantu untuk mempunyai banyak suis yang harus anda uruskan. Anda juga memerlukan beberapa perintang dan mikrokontroler yang mempunyai ADC (Analog-ke-Digital Conversion) atau cara lain yang ingin anda nyatakan bahawa ada suis diaktifkan dan suis mana yang ada.

Sekiranya anda mahukan, anda boleh menggunakan pengayun voltan untuk menunjukkan ini, mungkin dengan beberapa lampu berkelip, atau sebagai alternatif, dengan bunyi. Dalam ible ini, saya akan berpura-pura menggunakan AVR, tetapi di dunia anda boleh berpura-pura apa sahaja yang membuat anda bahagia. Saya rindukan Bob Ross.

Langkah 2: Pembahagi Voltan

Pembahagi Voltan
Pembahagi Voltan
Pembahagi Voltan
Pembahagi Voltan

Pada dasarnya, cara kita melakukan ini adalah dengan menggunakan teknik dan litar yang disebut pembahagi voltan. Pembahagi voltan melakukan, seperti yang anda duga, membahagikan voltan V,, in, dengan beberapa nilai yang anda tentukan. Anda boleh membahagikan voltan dengan beberapa komponen, termasuk kapasitor dan induktor, tetapi di sini saya akan melakukannya dengan perintang yang baik. Idea Apa yang kita lakukan ialah meletakkan dua komponen secara bersiri yang akan menyebabkan, masing-masing secara berasingan, penurunan voltan merentasi komponen. Lihat gambar pertama jika saya tidak masuk akal. Terdapat kemungkinan perbezaan 9V dari rel ke rel. Antara 9V dan 0V terdapat dua perintang secara bersiri. Masing-masing akan mengalami penurunan voltan, bergantung pada rintangan, kerana anda mungkin ingat dari V = IR. Sekiranya anda melakukan pengukuran voltan antara kedua-dua perintang, anda akan mendapat beberapa nilai antara 9V dan 0V, bergantung pada berapa banyak voltan yang turun di perintang pertama dan berapa banyak yang tersisa untuk jatuh ke atas perintang ke-2, sebelum 0V. Terdapat formula mudah untuk mengira penurunan voltan merintangi perintang dalam keadaan ini dan kelihatan seperti ini. Biarkan voltan atas perintang 1 (R1) menjadi V1 dan voltan atas perintang dua (R2) menjadi V2. Oleh kerana saya tidak dapat menggunakan pemformatan lagi, lihat gambar 2 di bawah untuk formula… Jadi, di pembahagi resistif kami, voltan Vout dapat ditentukan oleh formula kami untuk V2 (kerana kami akan merujuk GND ke 0V). Apa kaitannya dengan sekumpulan suis yang dikesan dari satu pin? Baiklah, balik halaman dan saya akan tunjukkan!

Langkah 3: Tangga Pembahagi Voltan

Tangga Pembahagi Voltan
Tangga Pembahagi Voltan

Sekarang andaikan kita mempunyai semua suis kita, mungkin enam atau lapan atau enam belas, semuanya dihubungkan melalui perintang yang masing-masing bertindak sebagai pembahagi voltan sehingga apabila keadaan pin suis berubah, voltan dibaca dan berdasarkan tahap voltan, kita boleh tahu suis mana yang baru diaktifkan. Lihat di bawah. Dalam gambar di bawah, saya telah menghubungkan dua blok suis. Blok paling atas mempunyai dua suis, dan blok paling bawah mempunyai lima suis. Anda boleh menyambungkan suis togol, sesaat, taktil, dan lain-lain dengan cara yang sama. Perkara penting yang perlu diperhatikan ialah perintang yang dihubungkan dengan suis anda. Dalam contoh saya, saya hampir menggandakan rintangan perintang seterusnya untuk membuat jurang voltan yang mudah diukur dan tidak salah untuk suis sebelum atau sesudahnya. Sekiranya anda tidak perasan sebelumnya, lihat lagi, dan sedar bahawa kita kembali kepada rakan lama kita pembahagi voltan resistif. Perintang pertama, 10k ohm, disambungkan ke 5V dan perintang ke-2 - perintang yang akan menentukan Vkeluar untuk pin SWITCH_ADC, disambungkan ke setiap suis dan oleh itu, setiap suis dihubungkan dengan voltan Vout tertentu yang dapat dibaca dari pin ADC yang dihubungkan di SWITCH_ADC. Seterusnya, tentukan Vout yang diharapkan dari setiap suis seperti itu

Vout = Vin * (R2 / (R1 + R2))

untuk suis satu:

Vout = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V atau 240 mV

untuk suis dua:

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V atau ~ 900mV

dan lain-lain.. Jangan ganti nilai R2 anda sendiri jika anda hanya mempunyai perintang tertentu yang berguna … Yang penting di sini adalah untuk mengekalkan jurang voltan yang cukup luas antara suis sehingga margin kesalahan pada ADC menang ' untuk memasukkan voltan yang diharapkan dari suis tetangga. Saya dapati perkara paling senang dilakukan ialah membina tangga pembahagi dan meletakkan multimeter / voltmeter pada pin ADC dan tekan setiap pin dan lihat nilai apa yang anda dapat. Mereka mesti tepat pada apa yang anda kira. Setelah anda mempunyai semua nilai voltan yang diharapkan dari setiap suis menggunakan perintang tertentu, maka anda boleh meminta MCU anda membaca pin ADC dan membandingkannya dengan nilai yang anda ketahui untuk menentukan suis mana yang ditekan. Sebagai contoh, katakan anda telah mendaftarkan rutin perkhidmatan gangguan yang akan dipanggil setiap kali terdapat perubahan yang dikesan pada pin ADC. Di dalam ISR itu, anda dapat membaca ADC dan membandingkan nilai itu dengan jadual beralih anda. Sekiranya anda menggunakan nilai ADC 8-bit, voltan anda akan ditukar menjadi nombor antara 0 dan 255 yang sepadan dengan voltan antara 0V dan 5V. Ini mengandaikan bahawa anda telah mengkonfigurasi ADC anda dengan cara ini.

Langkah 4: Ringkasan

Jadi, sekarang anda harus tahu bagaimana berhemat menggunakan pin GPIO untuk suis. Setiap kali anda kekurangan pin GPIO, atau hampir tidak mempunyai permulaan, atau jika anda menyedari bahawa anda akan menggunakan sekumpulan suis, pembahagi resistif adalah cara untuk menyelamatkan pin GPIO anda sementara masih menyediakan mekanisme yang kuat untuk mengesan akses suis.

Disyorkan: