Daftar Isi:
- Langkah 1: Sirkuit
- Langkah 2: Bukti - Excel
- Langkah 3: Pemrograman Arduino
- Langkah 4: Sirkuit TinkerCAD
- Langkah 5: "Begitu Lama, dan Terima Kasih untuk Semua Ikan." (ref.1)
- Langkah 6: Referensi
Video: Gunakan 1 Input Analog untuk 6 Tombol untuk Arduino: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Saya sering bertanya-tanya bagaimana saya bisa mendapatkan lebih banyak Input Digital untuk Arduino saya. Baru-baru ini terpikir oleh saya bahwa saya harus dapat menggunakan salah satu Input Analog untuk memasukkan beberapa input digital. Saya melakukan pencarian cepat dan menemukan di mana orang dapat melakukan ini, tetapi ini hanya memungkinkan satu tombol untuk ditekan pada satu waktu. Saya ingin dapat memiliki kombinasi tombol apa pun untuk ditekan SECARA SIMULTAN. Jadi, dengan bantuan TINKERCAD CIRCUITS, saya mulai mewujudkannya.
Mengapa saya ingin menekan tombol secara bersamaan? Seperti yang diilustrasikan dalam desain Sirkuit TinkerCad, ini dapat digunakan untuk input sakelar DIP untuk pemilihan mode yang berbeda dalam program.
Rangkaian yang saya buat menggunakan sumber 5V yang tersedia dari Arduino dan menggunakan 7 resistor dan 6 tombol atau sakelar.
Langkah 1: Sirkuit
Arduino memiliki input analog yang menerima input 0V hingga 5V. Input ini memiliki resolusi 10-bit, yang berarti sinyal dipecah menjadi 2^10 segmen, atau 1024 hitungan. Berdasarkan hal ini, sebagian besar yang dapat kami masukkan ke input analog sambil memungkinkan penekanan simultan adalah 10 tombol ke 1 input analog. Tapi, ini bukan dunia yang sempurna. Ada hambatan dalam konduktor, kebisingan dari sumber luar, dan daya yang tidak sempurna. Jadi, untuk memberi saya banyak fleksibilitas, saya berencana mendesain ini untuk 6 tombol. Ini, sebagian, dipengaruhi oleh fakta bahwa Sirkuit TinkerCAD memiliki objek DIP Switch 6-Switch, yang akan membuat pengujian menjadi mudah.
Langkah pertama dalam desain saya adalah memastikan bahwa setiap tombol, ketika ditekan satu per satu, akan memberikan tegangan yang unik. Ini mengesampingkan semua resistor menjadi nilai yang sama. Langkah selanjutnya adalah bahwa nilai resistansi, ketika ditambahkan secara paralel, tidak dapat memiliki resistansi yang sama dengan nilai resistor tunggal mana pun. Ketika resistor dihubungkan secara paralel, resistansi yang dihasilkan dapat dihitung dengan Rx=1/[(1/R1)+(1/R2)]. Jadi, jika R1=2000 dan R2=1000, Rx=667. Saya berspekulasi bahwa dengan menggandakan ukuran setiap resistor, saya tidak akan melihat resistansi yang sama untuk kombinasi mana pun.
Jadi, rangkaian saya sampai saat ini adalah memiliki 6 sakelar, masing-masing dengan resistornya sendiri. Tapi, ada satu resistor lagi yang dibutuhkan untuk menyelesaikan rangkaian ini.
Resistor terakhir memiliki 3 tujuan. Pertama, ia bertindak sebagai resistor Pull-Down. Tanpa resistor, ketika tidak ada tombol yang ditekan, rangkaian tidak lengkap. Ini akan memungkinkan tegangan pada Input Analog Arduino mengapung ke potensi tegangan apa pun. Sebuah resistor Pull-Down pada dasarnya Menarik tegangan ke 0 V. Tujuan kedua adalah untuk membatasi arus dari rangkaian ini. Hukum Ohm menyatakan bahwa V = IR, atau Tegangan = Arus dikalikan dengan Resistansi. Dengan sumber tegangan yang diberikan, semakin besar resistor berarti arus akan semakin kecil. Jadi, jika sinyal 5V diterapkan ke resistor 500ohm, arus terbesar yang bisa kita lihat adalah 0,01A, atau 10mA. Tujuan ketiga adalah untuk memberikan tegangan sinyal. Arus total yang mengalir melalui resistor terakhir adalah: i=5V / Rtotal, di mana Rtotal = Rlast + {1/[(1/R1)+(1/R2)+(1/R3)+(1/R4)+ (1/R5)+(1/R6)]}. Namun, hanya sertakan 1/Rx untuk setiap Resistor yang tombolnya terkait ditekan. Dari total arus, Tegangan yang dipasok ke Input Analog adalah i*Rlast, atau i*500.
Langkah 2: Bukti - Excel
Cara tercepat dan termudah untuk membuktikan bahwa saya akan mendapatkan resistansi unik dan voltase unik dengan sirkuit ini adalah dengan menggunakan kemampuan Excel.
Saya mengatur semua kemungkinan kombinasi input sakelar dan mengatur pola biner berikut ini secara berurutan. Nilai "1" menunjukkan bahwa sakelar hidup, kosong menunjukkan sakelar mati. Di bagian atas spreadsheet, saya memasukkan nilai resistansi untuk setiap sakelar dan untuk resistor pull-down. Saya kemudian menghitung resistansi ekivalen untuk masing-masing kombinasi, kecuali ketika semua resistor dimatikan karena resistor ini tidak akan berpengaruh tanpa memiliki sumber daya yang memasoknya. Untuk mempermudah perhitungan saya sehingga saya dapat menyalin dan menempelkan ke setiap kombinasi, saya memasukkan semua kombinasi dalam perhitungan dengan mengalikan setiap nilai sakelar (0 atau 1) dengan nilai resistansi terbaliknya. Melakukannya menghilangkan hambatannya dari perhitungan jika sakelar dimatikan. Persamaan yang dihasilkan dapat dilihat pada gambar spreadsheet, tetapi Req = Rx+1/(Sw1/R1 + Sw2/R2 + Sw3/R3 + Sw4/R4 + Sw5/R5 + Sw6/R6). Menggunakan Itotal = 5V / Req, kami menentukan arus total yang melalui rangkaian. Ini adalah arus yang sama yang melewati resistor Pull-down, dan memberi kita Tegangan ke Input Analog kita. Ini dihitung sebagai Vin = Itotal x Rx. Memeriksa data Req dan data Vin, kita dapat melihat bahwa kita memang memiliki nilai unik.
Pada titik ini, tampaknya sirkuit kami akan berfungsi. Sekarang untuk mengetahui bagaimana memprogram Arduino.
Langkah 3: Pemrograman Arduino
Ketika saya mulai berpikir tentang cara memprogram Arduino, awalnya saya berencana untuk mengatur rentang tegangan individu untuk menentukan apakah sakelar hidup atau mati. Tetapi, ketika berbaring di tempat tidur suatu malam, terpikir oleh saya bahwa saya harus dapat menemukan persamaan untuk melakukan ini. Bagaimana? UNGGUL. Excel memiliki kemampuan untuk menghitung persamaan agar paling sesuai dengan data dalam bagan. Untuk melakukan ini, saya akan menginginkan persamaan Nilai Integer dari sakelar (biner) versus input tegangan yang sesuai dengan nilai itu. Di Buku Kerja Excel saya, saya meletakkan Nilai Integer di sisi kiri spreadsheet. Sekarang untuk menentukan persamaan saya.
Berikut adalah tutorial singkat tentang cara menentukan persamaan garis di dalam Excel.
1) Pilih sel yang tidak berisi data apa pun. Jika Anda memiliki sel yang dipilih yang memiliki data, Excel akan mencoba menebak apa yang ingin Anda tren. Ini membuatnya jauh lebih sulit untuk mengatur tren, karena Excel jarang memprediksi dengan benar.
2) Pilih tab "Sisipkan" dan Pilih bagan "Menyebar".
3) Klik Kanan pada kotak grafik dan klik "Select Data…". Ini akan memunculkan jendela "Pilih Sumber Data". Pilih tombol Tambah untuk melanjutkan memilih data.
4) Berikan Nama Seri (Opsional). Pilih Range untuk X-Axis dengan mengklik panah atas dan kemudian memilih data Voltage. Pilih Range untuk Sumbu Y dengan mengklik panah ke atas lalu pilih Data Integer (0-63).
5) Klik Kanan pada titik data dan Pilih "Add Trendline…" Di jendela "Format Trendline", pilih tombol Polinomial. Melihat tren, kami melihat bahwa Order of 2 tidak cukup cocok. Saya memilih Order of 3 dan merasa ini jauh lebih akurat. Pilih kotak centang untuk "Tampilkan Persamaan pada bagan". Persamaan terakhir sekarang ditampilkan pada grafik.
6) Selesai.
OKE. Kembali ke program Arduino. Sekarang kita memiliki persamaan, memprogram Arduino menjadi mudah. Integer yang mewakili posisi switch dihitung dalam 1 baris kode. Dengan menggunakan fungsi "bitread", kita dapat mengambil nilai setiap bit individu dan dengan demikian mengetahui status setiap tombol. (LIHAT FOTO)
Langkah 4: Sirkuit TinkerCAD
Jika Anda belum memeriksa Sirkuit TinkerCAD, lakukan sekarang. TUNGGU!!!! Selesaikan membaca Instructable saya, lalu periksa. Sirkuit TinkerCAD membuat pengujian sirkuit Arduino sangat mudah. Ini mencakup beberapa objek listrik dan Arduino, bahkan memungkinkan Anda untuk memprogram Arduino untuk pengujian.
Untuk menguji sirkuit saya, saya mengatur 6 sakelar dengan menggunakan paket sakelar DIP dan mengikatnya ke resistor. Untuk membuktikan bahwa nilai tegangan di Excel Spreadsheet saya sudah benar, saya menampilkan voltmeter di Input ke Arduino. Ini semua bekerja seperti yang diharapkan.
Untuk membuktikan bahwa Pemrograman Arduino berfungsi, saya menampilkan status sakelar ke LED, menggunakan output digital Arduino.
Saya kemudian mengganti setiap sakelar untuk setiap kombinasi yang mungkin dan dengan bangga mengatakan "ITU BEKERJA"!!!
Langkah 5: "Begitu Lama, dan Terima Kasih untuk Semua Ikan." (ref.1)
Saya belum mencoba ini menggunakan peralatan nyata, karena saya sedang bepergian untuk bekerja. Tapi, setelah membuktikannya dengan Sirkuit TinkerCAD, saya yakin itu akan berhasil. Tantangannya adalah nilai resistor yang saya tentukan tidak semuanya nilai standar untuk resistor. Untuk menyiasatinya, saya berencana menggunakan potensiometer dan kombinasi resistor untuk mendapatkan nilai yang saya butuhkan.
Terima kasih telah membaca instruksi saya. Saya harap ini membantu Anda dengan proyek Anda.
Silakan tinggalkan komentar jika Anda telah mencoba mengatasi kendala yang sama ini dan bagaimana Anda menyelesaikannya. Saya ingin mempelajari lebih banyak cara untuk melakukan ini.
Langkah 6: Referensi
Anda tidak berpikir saya akan memberikan kutipan tanpa memberikan referensi ke sumbernya bukan?
ref. 1: Adam, Douglas. Begitu Lama, dan Terima Kasih untuk Semua Ikan. (Buku ke-4 dari Hitchhiker's Guide to the Galaxy "trilogi")
Direkomendasikan:
Gunakan Tombol Tekan pada Magicbit Anda [Magicblocks]: 5 Langkah
Gunakan Tombol Tekan pada Magicbit Anda [Magicblocks]: Tutorial ini akan mengajarkan Anda untuk menggunakan Tombol Tekan pada Magicbit Anda menggunakan Magicblocks. Kami menggunakan magicbit sebagai papan pengembangan dalam proyek ini yang didasarkan pada ESP32. Oleh karena itu, papan pengembangan ESP32 apa pun dapat digunakan dalam proyek ini
Game 4 Tombol Menggunakan Satu Input Analog: 6 Langkah (dengan Gambar)
Game 4 Tombol Menggunakan Satu Input Analog: Instruksi ini berfokus pada penggunaan satu jalur input analog untuk beberapa tombol yang dapat dideteksi secara independen satu sama lain. Dan untuk menyoroti penggunaan tombol-tombol ini termasuk perangkat lunak untuk memainkan empat game 4 Tombol yang berbeda. Semua game (8 in t
Visuino Cara Menggunakan Tombol Sebagai Input untuk Mengontrol Hal Seperti LED: 6 Langkah
Visuino Cara Menggunakan Tombol Sebagai Input untuk Mengontrol Hal-Hal Seperti LED: Dalam tutorial ini kita akan belajar cara MENGHIDUPKAN dan MATI LED menggunakan tombol sederhana dan Visuino.Tonton video demonstrasi
Input Sentuh Kapasitif ESP32 Menggunakan "Sikat Lubang Logam" untuk Tombol: 5 Langkah (dengan Gambar)
Input Sentuh Kapasitif ESP32 Menggunakan "Scolokan Lubang Logam" untuk Tombol: Saat saya menyelesaikan keputusan desain untuk proyek berbasis ESP32 WiFi Kit 32 mendatang yang membutuhkan input tiga tombol, satu masalah yang terlihat adalah bahwa WiFi Kit 32 tidak memiliki satu tombol tekan mekanis, namun hanya tiga tombol mekanis, f
Cara Menghubungkan Tombol Tekan Dengan Input dan Output Audio: 13 Langkah
Cara Menghubungkan Tombol Tekan Dengan Input dan Output Audio: Tombol tekan adalah salah satu komponen dasar untuk merekam tindakan Anda. Anda dapat menekan tombol secara dinamis untuk melakukan sesuatu. Sudah ada beberapa cara untuk menggunakan tombol tekan di proyek Anda (mis. meretas mouse dan keyboard, atau Arduino, gainer, MCK). ini