Daftar Isi:
- Langkah 1: Yang Esensial (tidak Benar-benar)
- Langkah 2: Pembagi Tegangan
- Langkah 3: Tangga Pembagi Tegangan
- Langkah 4: Ringkasan
Video: Cara Membaca Banyak Switch Dengan Satu Pin MCU: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:59
Pernahkah Anda menenggak sebuah proyek dan proyek itu terus tumbuh dan berkembang, sementara Anda menambahkan lebih banyak hal ke dalamnya (kami menyebutnya sebagai Feaping Creaturism)? Pada proyek baru-baru ini, saya sedang membangun pengukur frekuensi dan menambahkan generator sinyal / synthesizer frekuensi lima fungsi. Saya segera berakhir dengan lebih banyak sakelar daripada pin yang tersisa, jadi apa yang harus dilakukan seorang pria?
Namun, saya segera memiliki tujuh sakelar lagi di Funbox saya (ya, itulah yang saya sebut generator fungsi saya…Saya tahu, saya tidak punya kreativitas) dan inilah instruksi singkat yang menunjukkan kepada Anda bagaimana Anda dapat melakukan hal yang sama. Itu tidak memerlukan register geser atau IC tertentu. Bahkan, itu juga tidak memerlukan mikrokontroler, jika semikonduktor diskrit adalah cara Anda menggulung. Inilah salah satu cara Anda dapat membaca/mengelola beberapa sakelar menggunakan satu pin pada AVR Anda (atau mikrokontroler lain…Saya pernah mendengar ada mikrokontroler lain selain AVR, tetapi saya tidak dapat membayangkannya…).:)
Langkah 1: Yang Esensial (tidak Benar-benar)
Untuk mencapai ini, Anda memerlukan beberapa komponen. Ini membantu untuk memiliki banyak sakelar yang harus Anda kelola. Anda juga memerlukan beberapa resistor dan mikrokontroler yang memiliki ADC (Konversi Analog-ke-Digital) atau cara lain yang Anda inginkan untuk menunjukkan bahwa ada sakelar yang diaktifkan dan sakelar mana yang diaktifkan.
Jika Anda mau, Anda dapat menggunakan osilator yang dikontrol tegangan untuk menunjukkan hal ini, mungkin dengan beberapa lampu yang berkedip, atau sebagai alternatif, dengan suara. Dalam 'ible ini, saya akan berpura-pura kita menggunakan AVR, tetapi di dunia Anda, Anda bisa berpura-pura apa pun yang membuat Anda bahagia. Aku merindukan Bob Ross.
Langkah 2: Pembagi Tegangan
Pada dasarnya, cara yang akan kita lakukan adalah dengan menggunakan teknik dan rangkaian yang disebut pembagi tegangan. Pembagi tegangan melakukan, seperti yang Anda duga, membagi tegangan V,, in,, dengan beberapa nilai yang Anda tentukan. Anda dapat membagi tegangan dengan beberapa komponen, termasuk kapasitor dan induktor, tetapi di sini saya akan melakukannya dengan resistor yang bagus. Ide Apa yang kami lakukan adalah menempatkan dua komponen secara seri yang akan menyebabkan, masing-masing secara individual, penurunan tegangan di seluruh komponen. Lihat gambar pertama jika saya tidak masuk akal. Ada beda potensial 9V dari rel ke rel. Antara 9V dan 0V ada dua resistor secara seri. Masing-masing akan mengalami penurunan tegangan sendiri, tergantung pada resistansi, seperti yang mungkin Anda ingat dari V = IR. Jika Anda melakukan pengukuran tegangan antara dua resistor, Anda akan mendapatkan beberapa nilai antara 9V dan 0V, tergantung pada berapa banyak tegangan yang turun pada resistor pertama dan berapa banyak yang tersisa untuk dijatuhkan pada resistor ke-2, sebelum 0V. Ada rumus langsung untuk menghitung penurunan tegangan pada resistor dalam situasi ini dan terlihat seperti ini. Biarkan tegangan pada resistor 1 (R1) menjadi V1 dan tegangan pada resistor dua (R2) menjadi V2. Karena saya tidak bisa menggunakan format lagi, lihat gambar 2 di bawah untuk rumusnya… Jadi, dalam pembagi resistif kami, tegangan Vout dapat ditentukan dengan rumus kami untuk V2 (karena kami akan mereferensikan GND ke 0V). Apa hubungannya ini dengan memiliki banyak sakelar yang terdeteksi dari satu pin? Nah, balik halamannya dan saya akan tunjukkan!
Langkah 3: Tangga Pembagi Tegangan
Sekarang anggaplah kita memiliki semua sakelar kita, mungkin enam atau delapan atau enam belas, semuanya terhubung melalui resistor yang masing-masing bertindak sebagai pembagi tegangan sehingga ketika keadaan pin sakelar berubah, tegangan dibaca dan berdasarkan level tegangan, kita dapat mengetahui sakelar mana yang baru saja diaktifkan. Lihat ke bawah. Pada gambar di bawah, saya telah menghubungkan dua blok sakelar. Blok paling atas memiliki dua sakelar, dan blok paling bawah memiliki lima sakelar. Anda dapat menghubungkan sakelar sakelar, sakelar sesaat, taktil, dll yang terpisah dengan cara yang sama. Yang penting untuk diperhatikan adalah resistor yang terhubung dengan sakelar Anda. Dalam contoh saya, saya hampir menggandakan resistansi resistor berikutnya untuk membuat celah tegangan yang mudah diukur dan tidak salah untuk sakelar sebelum atau sesudahnya. Jika Anda belum memperhatikan sebelumnya, lihat lagi, dan sadari bahwa kita kembali ke teman lama kita, pembagi tegangan resistif. Resistor pertama, 10k ohm, dihubungkan ke 5V dan resistor kedua -- resistor yang akan menentukan Vkeluar untuk pin SWITCH_ADC, terhubung ke setiap sakelar dan oleh karena itu, setiap sakelar dikaitkan dengan tegangan Vout tertentu yang dapat dibaca dari pin ADC yang terhubung di SWITCH_ADC. Selanjutnya, tentukan Vout yang diharapkan dari setiap sakelar seperti itu
Vout = Vin * (R2 / (R1 + R2))
untuk beralih satu:
Vout = 5V * (500 / (10000 + 500)) = 5*0,048 = 0,24V atau 240 mV
untuk saklar dua:
Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0,18 = 0,9V atau ~900mV
dan seterusnya.. Jangan ragu untuk mengganti nilai Anda sendiri untuk R2 jika Anda hanya memiliki resistor tertentu yang berguna … Kuncinya di sini adalah menjaga celah tegangan yang cukup lebar di antara sakelar sehingga margin kesalahan apa pun pada ADC menang' t menempatkan Anda ke tegangan yang diharapkan dari saklar tetangga. Saya telah menemukan hal termudah untuk dilakukan adalah membangun tangga pembagi dan meletakkan multimeter/voltmeter pada pin ADC dan tekan setiap pin dan lihat nilai apa yang Anda dapatkan. Mereka harus cukup tepat untuk apa yang Anda hitung. Setelah Anda memiliki semua nilai tegangan yang diharapkan dari setiap sakelar menggunakan resistor tertentu, maka Anda dapat meminta MCU Anda membaca pin ADC dan membandingkannya dengan nilai yang Anda ketahui untuk menentukan sakelar mana yang ditekan. Misalnya, Anda telah mendaftarkan rutin layanan interupsi yang akan dipanggil setiap kali ada perubahan yang terdeteksi pada pin ADC. Di dalam ISR itu, Anda bisa membaca ADC dan membandingkan nilai itu dengan tabel sakelar Anda. Jika Anda menggunakan nilai ADC 8-bit, tegangan Anda akan diubah menjadi angka antara 0 dan 255 yang sesuai dengan tegangan antara 0V dan 5V. Ini mengasumsikan Anda telah mengkonfigurasi ADC Anda dengan cara ini.
Langkah 4: Ringkasan
Jadi, sekarang Anda harus tahu cara berhemat menggunakan pin GPIO untuk sakelar. Setiap kali Anda kehabisan pin GPIO, atau hampir tidak memiliki apa-apa untuk memulai, atau jika Anda menyadari bahwa Anda akan menggunakan bank sakelar, pembagi resistif adalah cara untuk menyelamatkan pin GPIO Anda sambil tetap menyediakan mekanisme yang kuat untuk mendeteksi akses sakelar.
Direkomendasikan:
Cara Membaca Beberapa Nilai Analog Menggunakan Satu Pin Analog: 6 Langkah (dengan Gambar)
Cara Membaca Beberapa Nilai Analog Menggunakan Satu Pin Analog: Dalam tutorial ini, saya akan menunjukkan cara membaca beberapa nilai analog hanya dengan menggunakan satu pin input analog
Lampu Stensil - Satu Lampu Banyak Warna: 5 Langkah
Lampu Stensil - Satu Lampu Banyak Warna: Instruksi ini akan menunjukkan kepada Anda cara membuat lampu sederhana dengan warna yang dapat diganti (Ini adalah kap lampu)
Sirkuit On Off Latch Dengan UC. Satu Tombol Tekan. Satu Pin. Komponen Diskrit.: 5 Langkah
Sirkuit On Off Latch Dengan UC. Satu Tombol Tekan. Satu Pin. Komponen Diskrit.: Halo semuanya, sedang mencari sirkuit on/off di internet. Semua yang saya temukan bukanlah yang saya cari. Saya berbicara pada diri sendiri, pasti ada cara untuk itu. Itulah yang saya butuhkan.-Hanya satu tombol tekan untuk menghidupkan dan mematikan.-Hanya harus menggunakan
100+ Switch dalam Satu Pin Arduino: 6 Langkah (dengan Gambar)
100+ Switch dalam Satu Pin Arduino: PendahuluanApakah Anda kehabisan pin input? Jangan khawatir, berikut adalah solusi tanpa register geser. Dalam video ini, kita akan belajar tentang menghubungkan lebih dari 100 sakelar ke satu pin Arduino
Cara Menggerakkan Banyak LED Dari Beberapa Pin Mikrokontroler: 6 Langkah (dengan Gambar)
Cara Menggerakkan Banyak LED Dari Beberapa Pin Mikrokontroler.: Menggunakan fakta bahwa banyak pin mikrokontroler memiliki tiga status (+V, GND, atau "impedansi tinggi", Anda dapat menggerakkan LED N*(N-1) dari N pin Jadi mikrokontroler 8pin kecil seperti PIC12Fxxx atau ATtiny11 dapat menggerakkan 20 LED pada lima yang tersedia