Pertama, banyak mikrokontroler dan pengontrol sinyal digital akan memiliki resistor penarik internal. Berikut ini contohnya, Atmel ATMega164.
Biasanya akan ada register yang memungkinkan pull-up internal dinyalakan dan dimatikan. Karena variasi dalam proses fabrikasi, pullup internal ini datang dalam rentang yang sangat luas, dan bukan pilihan yang baik jika Anda memerlukan kontrol yang sangat dekat atas penarikan arus dalam aplikasi daya ultra rendah. Jika menjaga jumlah komponen rendah adalah penting, ini adalah cara mudah untuk melakukannya. Menggunakan internal pull up untuk debounce perangkat keras bukan ide yang baik, karena tidak mungkin untuk memperkirakan nilai tepatnya.
Apakah 100kΩnilai memadai tergantung. Jika itu hanya sebuah saklar yang akan dibalik secara berkala oleh pengguna, maka 100kΩakan menjadi pilihan yang baik untuk meminimalkan konsumsi daya. Untuk hal-hal yang akan beralih lebih cepat, seperti rotary encoders, proses yang akan saya lalui adalah
- Temukan arus sink maksimum dalam lembar data
- Hitung nilai pull up menggunakan Hukum Ohm
- Pilih resistor berukuran standar beberapa ukuran lebih besar, tergantung pada kecepatan yang sebenarnya dibutuhkan
- Uji dan lihat apakah ukuran resistor yang dipilih memberikan kenaikan dan penurunan yang diperlukan
- Sesuaikan dengan itu
Jadi jika arus sink maksimum per pin GPIO adalah 10 mA dan beroperasi pada 5V: R=VI=5V10mA=500Ω. Menjaga nilai R ini sekecil mungkin akan memungkinkan tepi paling tajam dan frekuensi switching tertinggi.