Dalam pencarian saya untuk memahami teknik elektro, saya menemukan tutorial ini:
http://www.ladyada.net/learn/arduino/lesson5.html
Saya telah memahami diagram sampai saya beralih. Saya tidak yakin bagaimana switch bekerja di papan tempat memotong roti atau diagram. Ini adalah spesifik yang saya pikirkan (ini adalah resistor pull down):
Implementasinya adalah:
Berdasarkan diagram, apa yang saya pikirkan sedang terjadi adalah: Daya masuk ke sakelar, jika tombolnya di atas maka rangkaian tidak selesai. Jika tombol ditekan maka saat ini mengambil jalan resistensi paling kecil ke pin2 karena memiliki lebih banyak tarikan (100ohm <10kohm).
Cara itu dijelaskan dalam tutorial terdengar seperti ketika tombolnya naik, rangkaian masih lengkap, tetapi 10k ohm resistor menarik daya ke tanah. Saya tidak yakin bagaimana atau mengapa jika 10k ohm dan 100ohm menerima arus yang sama, arus akan ditarik ke tanah melalui resistansi yang lebih tinggi daripada yang terbuka pada pin 2.
Jawaban:
Pertama, lupakan resistor 100 for untuk saat ini. Ini tidak diperlukan untuk kerja tombol, itu hanya ada sebagai perlindungan jika Anda akan membuat kesalahan pemrograman.
Pin I / O mikrokontroler adalah impedansi tinggi ketika digunakan sebagai input, yang berarti hanya mengalir arus bocor kecil, biasanya jauh lebih kecil dari 1 μA, yang akan menjadi maksimum menurut lembar data. OK, katakanlah itu 1 μA. Maka menurut Hukum Ohm ini akan menyebabkan penurunan tegangan 1 μA 10 kΩ = 10 mV melintasi resistor. Jadi inputnya adalah 0,01 V. Itu level rendah, atau "0". Umumnya mikrokontroler 5 V akan melihat level lebih rendah dari 1.5 V sebagai rendah.×
Sekarang resistor 100.. Jika Anda secara tidak sengaja membuat pin output dan menetapkannya rendah maka menekan tombol akan menyebabkan korsleting: mikrokontroler menetapkan 0 V pada pin, dan saklar +5 V pada pin yang sama. Mikrokontroler tidak suka itu, dan IC mungkin rusak. Dalam kasus tersebut, resistor 100 should harus membatasi arus hingga 50 mA. (Yang masih agak terlalu banyak, resistor 1 kΩ akan lebih baik.)
Karena tidak akan mengalir arus ke pin input (terlepas dari kebocoran rendah) hampir tidak akan ada penurunan tegangan di resistor.
10 kΩ adalah nilai tipikal untuk pull-up atau pull-down. Nilai yang lebih rendah akan memberi Anda penurunan tegangan yang lebih rendah, tetapi 10 mV atau 1 mV tidak membuat banyak perbedaan. Tapi ada hal lain: jika tombol ditekan ada 5 V melintasi resistor, sehingga akan mengalir arus 5 V / 10 kΩ = 500 μA. Itu cukup rendah untuk tidak menyebabkan masalah, dan Anda tidak akan menekan tombol untuk waktu yang lama. Tetapi Anda dapat mengganti tombol dengan saklar, yang mungkin ditutup untuk waktu yang lama. Maka jika Anda akan memilih pull-down 1 kΩ Anda akan memiliki 5 mA melalui resistor selama saklar ditutup, dan itu sedikit sia-sia. 10 kΩ adalah nilai yang baik.
Perhatikan bahwa Anda dapat membalikkannya untuk mendapatkan resistor pull-up, dan beralih ke ground saat tombol ditekan.
Ini akan membalikkan logika Anda: menekan tombol akan memberi Anda "0" alih-alih "1", tetapi cara kerjanya sama: menekan tombol akan membuat input 0 V, jika Anda melepaskan tombol, resistor akan menghubungkan masukan ke level +5 V (dengan penurunan voltase yang dapat diabaikan).
Ini adalah cara yang biasa dilakukan, dan produsen mikrokontroler mempertimbangkan hal ini: sebagian besar mikrokontroler memiliki resistor pull-up internal, yang dapat Anda aktifkan atau nonaktifkan dalam perangkat lunak. Jika Anda menggunakan pull-up internal, Anda hanya perlu menghubungkan tombol ke ground, itu saja. (Beberapa mikrokontroler juga memiliki pull-down yang dapat dikonfigurasi, tetapi ini jauh lebih jarang terjadi.)
sumber
Perhatikan bahwa sakelar bukan perangkat mewah yang mengambil daya dan menghasilkan beberapa sinyal keluaran - alih-alih, anggap itu sebagai kabel yang baru saja Anda tambahkan atau lepaskan dari rangkaian dengan menekan tombol.
Jika sakelar terputus (tidak ditekan), satu-satunya jalur yang memungkinkan untuk arus adalah dari
P2
kedua resistor ke ground. Dengan demikian, mikrokontroler akan membaca RENDAH.Jika sakelar terhubung (ditekan):
Arus berjalan dari catu daya melalui sakelar
Beberapa arus berjalan melalui resistor 100 ohm ke
P2
. Mikrokontroler akan membaca HIGH.Sejumlah kecil arus akan mengalir melalui resistor 10 Kohm ke ground. Ini pada dasarnya adalah kekuatan yang terbuang.
Perhatikan bahwa resistor 100 ohm ada di sana untuk membatasi arus maksimum yang masuk
P2
. Biasanya tidak termasuk dalam sirkuit seperti ini, karenaP2
input mikrokontroler sudah impedansi tinggi dan tidak akan tenggelam banyak arus. Namun, termasuk resistor 100 ohm berguna jika perangkat lunak Anda memiliki bug atau kesalahan logika yang menyebabkannya mencoba untuk digunakanP2
sebagai output. Dalam hal ini, jika mikrokontroler mencoba mengemudiP2
rendah tetapi sakelar disingkat dan menghubungkannya ke tinggi, Anda mungkin merusak pin mikrokontroler. Agar aman, resistor 100 ohm akan membatasi arus maksimum dalam kasus itu.sumber
Ketika Anda menekan tombol Anda menempatkan logika level tinggi (+5 V) pada input. Tetapi jika Anda menghilangkan resistor dan tombol dilepaskan, maka pin input hanya akan mengambang, yang dalam HCMOS berarti bahwa level tidak terdefinisi. Itu adalah sesuatu yang tidak Anda inginkan, jadi Anda menarik input ke tanah dengan resistor. Resistor diperlukan karena jika tidak menekan tombol akan menyebabkan korsleting.
Input adalah impedansi tinggi, artinya hampir tidak akan mengalir arus apa pun melaluinya. Arus nol melalui resistor berarti tegangan nol di atasnya (Hukum Ohm), sehingga 0 V di satu sisi juga akan menjadi 0 V (atau sangat dekat) pada pin input.
Ini adalah salah satu cara untuk menghubungkan tombol, tetapi Anda juga dapat menukar resistor dan tombol, sehingga resistor menuju +5 V dan tombol ke ground. Logikanya kemudian terbalik: menekan tombol akan memberikan level rendah pada pin input. Ini sering dilakukan, karena sebagian besar mikrokontroler memiliki resistor pull-up built-in, sehingga Anda hanya perlu tombol, resistor eksternal kemudian dapat dihilangkan. Perhatikan bahwa Anda mungkin harus mengaktifkan pull-up internal.
Lihat juga jawaban ini .
sumber
10kohm resistor disebut resistor pull-down karena, ketika simpul "hijau" (pada menghubungkan 100ohm dan 10kohm resistor) tidak terhubung ke + 5V oleh saklar, simpul itu ditarik ke tanah (dengan asumsi arus rendah melalui cabang itu) , tentu saja). Ketika sakelar ditutup, simpul itu mendapatkan potensi + 5V.
Ini digunakan untuk mengontrol input dari IC logis (AND gates, OR gates, dll), karena sirkuit ini akan berperilaku tidak menentu jika tidak ada nilai determinasi pada input mereka (nilai 0 atau 1). Jika Anda membiarkan input gerbang logika mengambang, output tidak dapat ditentukan secara andal, sehingga disarankan untuk selalu menerapkan input yang ditentukan (0 atau 1, lagi) ke input gerbang. Dalam hal ini, P2 akan menjadi input ke gerbang logis tertentu, dan ketika sakelar terbuka, ia memiliki nilai input 0 (GND); ketika sakelar ditutup, ia memiliki nilai input 1 (+ 5V).
sumber
Saya tidak yakin dari mana datangnya kesalahpahaman umum ini, tetapi memang salah karena secara langsung bertentangan dengan hukum Ohm. Saat ini mengambil semua jalur yang mungkin , berbanding terbalik dengan resistensi mereka. Jika Anda menerapkan 5V ke resistor 10k, 0,5mA akan mengalir melaluinya, terlepas dari berapa banyak jalur alternatif (resistansi rendah atau sebaliknya) yang Anda berikan.
Kebetulan, jalur yang melalui resistor 100 Ohm tidak harus "resistansi terkecil", karena resistor tidak terhubung ke ground . Biasanya, Anda akan menghubungkan resistor itu ke input MCU dengan> 10 MOhm impedansi, secara efektif membuat resistor 10k menjadi jalan dengan resistansi terendah.
sumber
Alasan pull-down resistor diperlukan adalah bahwa mikrokontroler adalah perangkat CMOS dan dengan demikian pin input pada akhirnya adalah gerbang MOSFET.
Jika tombol Anda mengontrol bohlam atau LED atau relay, Anda tidak akan memerlukan resistor pull-down karena sirkuit terbuka akan "mati". Ketika tombol dilepaskan bohlam akan mati karena tidak ada arus akan mengalir.
Jika perangkat Anda adalah bagian TTL sejati seperti chip logika seri 7400 asli, Anda tidak akan memerlukan resistor tarik turun karena input tersebut akan menjadi transistor bipolar dan ketika tombol dilepaskan, arus tidak akan mengalir melalui basis-emitor junction dan input akan menjadi "mati".
Sebaliknya, input mikrokontroler Anda adalah gerbang MOSFET yang bertindak seperti kapasitor. Ketika tegangan gerbang cukup tinggi inputnya "on". Itu terjadi ketika Anda menekan tombol dan arus mengalir melalui resistor 100R ke dalam mikrokontroler. Gerbang mengisi (sangat cepat) seperti kapasitor dan input menjadi "on". Sekarang apa yang terjadi ketika Anda melepaskan tombol? Tidak ada lagi arus yang mengalir. Tapi apa artinya bagi input? Jika tidak ada resistor pull-down, muatan di gerbang tidak memiliki tempat untuk pergi. Tegangan hanya akan duduk di sana dekat 5V dan input masih akan "menyala". Resistor pull-down mengalirkan muatan gerbang sehingga tegangan jatuh di bawah level "on". Itu yang Anda ingin memastikan input digital dianggap "mati".
Anda dapat bereksperimen dengan ini dengan mengaitkan dua tombol ke pin input Anda. Ikat satu hingga 5V dan satu lagi ke ground. Saat Anda menekan tombol 5V, input akan menyala. Ketika Anda melepaskannya, ia akan tetap aktif sampai Anda mendorong yang terhubung ke GND.
sumber