Pin Digital Arduino

Pin pada Arduino dapat dikonfigurasi baik sebagai input atau output. Artikel ini menjelaskan fungsi pin pada mode. Sementara judul artikel ini mengacu pada pin digital, penting untuk dicatat bahwa sebagian besar Arduino (Atmega) pin analog, dapat dikonfigurasi, dan digunakan, persis cara yang sama seperti pin digital.


Sifat Pin yang dikonfigurasi sebagai INPUT


Pin standar untuk input pada Arduino (Atmega), sehingga mereka tidak perlu secara eksplisit dinyatakan sebagai input dengan pinMode() ketika Anda menggunakan mereka sebagai masukan. Pin dikonfigurasi dengan cara ini dikatakan dalam keadaan impedansi tinggi. pin masukan membuat tuntutan yang sangat kecil di sirkuit sampling, setara dengan resistor seri 100 megohm di depan pin. Ini berarti bahwa dibutuhkan sangat sedikit saat ini untuk memindahkan pin input dari satu tempat ke tempat yang lain, dan dapat membuat pin berguna untuk tugas-tugas seperti menerapkan sensor sentuh kapasitif, membaca sebuah LED sebagai fotodioda, atau membaca sebuah sensor analog dengan skema seperti RC Time.

Ini juga berarti bagaimanapun, bahwa pin dikonfigurasi sebagai pinMode (pin, INPUT) dengan apa-apa yang terhubung ke mereka, atau dengan kabel yang terhubung ke mereka yang tidak terhubung ke sirkuit lain, akan melaporkan perubahan acak dalam keadaan pin, memungut suara listrik dari lingkungan, atau kapasitif kopling keadaan pin dekatnya.

Pullup resistor dengan pin dikonfigurasi sebagai INPUT


Seringkali hal ini berguna untuk mengarahkan pin masukan untuk sebuah negara yang dikenal jika tidak ada input hadir. Hal ini dapat dilakukan dengan menambahkan resistor pullup (untuk 5 V), atau resistor pull-down (resistor ke ground) pada input. Sebuah resistor 10K adalah nilai yang baik untuk pullup atau pull-down resistor.


Sifat Pins yang dikonfigurasi sebagai INPUT_PULLUP


Ada resistor 20K pullup dibangun ke chip Atmega yang dapat diakses dari perangkat lunak. built-in resistor pullup ini diakses dengan menetapkan pinMode() sebagai INPUT_PULLUP. Ini secara efektif membalikkan perilaku mode INPUT, di mana HIGH berarti sensor dimatikan, dan LOW berarti sensor aktif.

Nilai pullup ini tergantung pada mikrokontroler yang digunakan. Pada kebanyakan papan berbasis AVR, nilai hambatan antara 20kΩ dan 50kΩ. Di Arduino Karena, itu adalah antara 50kΩ dan 150kΩ. Untuk nilai yang tepat, berkonsultasi dengan datasheet dari mikrokontroler pada forum Anda.

Saat menghubungkan sensor ke pin yang dikonfigurasi sebagai INPUT_PULLUP, ujung harus dihubungkan ke tanah. Dalam kasus saklar sederhana, ini menyebabkan pin untuk membaca HIGH ketika saklar terbuka, dan LOW ketika saklar ditekan.

Resistor pullup menyediakan arus yang cukup untuk remang cahaya LED terhubung ke pin yang telah dikonfigurasi sebagai input. Jika LED dalam proyek tampaknya akan bekerja, tapi sangat samar-samar, ini mungkin apa yang terjadi.

Resistor pullup dikendalikan oleh register yang sama (chip internal yang lokasi memori) yang mengontrol apakah pin HIGH atau LOW. Akibatnya, pin yang dikonfigurasi untuk memiliki resistor pullup diaktifkan ketika pin adalah INPUT, akan memiliki pin dikonfigurasi sebagai HIGH jika pin ini kemudian beralih ke OUTPUT dengan pinMode(). Ini bekerja dalam arah lain juga, dan output pin yang tersisa dalam keadaan HIGH akan memiliki resistor pullup diatur jika beralih ke input dengan pinMode().

Sebelum Arduino 1.0.1, hal itu mungkin untuk mengkonfigurasi internal pull-up dengan cara sebagai berikut:

pinMode(pin, INPUT);           // set pin to input
digitalWrite(pin, HIGH);       // turn on pullup resistors
CATATAN: Pin Digital 13 sulit untuk digunakan sebagai input digital dari pin digital lainnya karena memiliki LED dan resistor yang melekat padanya yang disolder di board atas. Jika Anda mengaktifkan internalnya 20k pull-up resistor, itu akan menggantung di sekitar 1.7V bukan 5V diharapkan karena onboard LED dan resistor seri tarik tingkat tegangan turun, berarti selalu kembali LOW. Jika Anda harus menggunakan pin 13 sebagai input digital, mengatur pinMode() untuk INPUT dan menggunakan pull down resistor eksternal.

Sifat Pins yang dikonfigurasi sebagai OUTPUT


Pin dikonfigurasi sebagai OUTPUT dengan pinMode() dikatakan dalam keadaan impedansi rendah. Ini berarti bahwa mereka dapat memberikan sejumlah besar saat ini untuk sirkuit lainnya. Atmega pin dapat sumber (menyediakan arus positif) atau tenggelam (memberikan arus negatif) sampai dengan 40 mA (milliamps) dari saat ini untuk perangkat lain / sirkuit. Ini adalah saat yang cukup untuk terang cahaya sebuah LED (jangan lupa seri resistor), atau menjalankan banyak sensor, misalnya, tetapi tidak cukup saat ini untuk menjalankan sebagian relay, solenoida, atau motor.

sirkuit pendek pada pin Arduino, atau mencoba untuk menjalankan perangkat arus tinggi dari mereka, dapat merusak atau menghancurkan transistor output dalam pin, atau merusak seluruh chip yang Atmega. Sering kali ini akan menghasilkan pin "mati" dalam mikrokontroler tetapi chip yang tersisa masih akan berfungsi secara memadai. Untuk alasan ini itu adalah ide yang baik untuk menghubungkan pin OUTPUT ke perangkat lain dengan 470Ω atau 1k resistor, kecuali maksimum menarik arus dari pin diperlukan untuk aplikasi tertentu.

Previous
Next Post »