Status Pemantauan Sakelar (Serial Baca Digital) - Dasar-dasar Arduino

Coba Instrumen Kami Untuk Menghilangkan Masalah





Dasar-dasar Arduino ini membahas metode penerapan kode di mana status ON atau OFF dari tombol tekan eksternal dapat dibaca atau dipantau dalam Arduino.

Serial Baca Digital

Di sini kita belajar melalui contoh cara memantau status sakelar dengan melakukan komunikasi serial di Arduino dan PC Anda melalui USB.



Selain Arduino Board Anda, Anda akan membutuhkan item dasar berikut:

Perangkat keras

Sakelar sesaat, tombol, atau sakelar push-to-ON



10k, resistor 1/4 watt ohm

papan tempat memotong roti
sambungan kabel pengait atau jumper.

Operasi Sirkuit

Operasi dapat dilakukan dengan langkah-langkah berikut:

Ambil 3 buah kabel jumper dan kaitkan dengan papan Arduino. Dua kabel, merah dan hitam, menuju ke dua baris vertikal panjang di sisi papan tempat memotong roti yang menjadi kabel suplai papan untuk membawa membutuhkan 5V DC ke papan tulis.

Kabel ketiga digunakan untuk menghubungkan pin digital 2 ke salah satu ujung sakelar push-to-ON.

Ujung tombol khusus ini juga terhubung dengan resistor 10k pull-down ke rel suplai negatif atau tanah. Kabel bebas lain dari sakelar dihubungkan dengan catu daya positif 5 volt.

Dengan koneksi di atas dibuat, sakelar mematikan atau melakukan aksi ganda di sirkuit saat diberi dorongan.

Biasanya ketika sakelar dalam posisi terputus, kedua kabelnya tetap terisolasi, sehingga pin yang dihubungkan dengan tanah melalui resistor pull-down menghasilkan level RENDAH, atau logika 0.

Dalam situasi yang ditekan, sakelar mengeksekusi sesaat menjembatani dua leadnya, sehingga leadnya dikenakan + 5 volt, membuat TINGGI, atau level logika 1 di atasnya.

Mengisolasi pinout i / o digital dari hal-hal lainnya, dapat memaksa LED rusak dan menyebabkan kedipan yang tidak menentu. Ini karena fakta bahwa input tidak diberikan ke apa pun, atau disimpan dalam posisi 'menggantung' - artinya itu tidak ditujukan untuk logika tertentu, baik tinggi maupun rendah (+ 5V atau 0V), inilah alasan mengapa kami menggunakan resistor pull-down dengan sakelar.

Skema

Memahami Kode

Dalam program berikut di bawah ini, kami memulai dengan komunikasi serial dalam fungsi pengaturan pada kecepatan 9600 bit data per detik, ini dimulai antara papan Arduino dan komputer yang terpasang: Serial.begin (9600)

Pada langkah selanjutnya kami memicu pin digital 2, pin yang akan bertanggung jawab untuk output dengan sakelar tekan sebagai input: pinMode (2, INPUT) Ini menyelesaikan 'pengaturan' kami, sekarang kami berlayar ke loop utama kode kami .

Di sini, saat menekan tombol tekan, 5 volt diizinkan untuk melewati sirkuit kami, sementara pin input dihubungkan dengan tanah melalui resistor 10-kilohm ketika itu dalam kondisi tidak tertekan.

Di atas adalah yang kita sebut sebagai input digital, yang mengacu pada kondisi di mana sakelar hanya dapat berada dalam keadaan tertentu baik dalam keadaan hidup (diterima oleh Arduino sebagai '1', atau LOGIC HIGH) atau keadaan mati (divisualisasikan oleh Arduino sebagai '0', atau LOGIC LOW), dengan tidak ada satupun yang tidak ditentukan di antara keduanya.

Tindakan mendasar yang perlu kita jalankan di loop utama program adalah menerapkan variabel untuk menjaga informasi tetap di tempat yang telah dikirim melalui tombol push.

Seperti dibahas di atas dengan sinyal dalam bentuk '1' atau '0', kami di sini menggunakan tipe data int. Kita dapat menamai variabel ini sebagai sensorValue, dan memperbaikinya agar sesuai dengan semua yang sedang dibaca pada pin digital 2. Semua ini dapat dicapai melalui satu baris kode:

int sensorValue = digitalRead (2) Setelah Arduino membaca input, cetak kembali ke komputer dalam bentuk nilai desimal.

Ini dapat diimplementasikan dengan bantuan perintah Serial.println () di baris penutup kode: Serial.println (sensorValue)

Setelah ini, setiap kali Monitor Serial dimulai di domain Arduino, kita akan menyaksikan rantai '0 selama tombol tekan dalam posisi terbuka, dan rantai' 1 jika tombol ditahan dalam kondisi tertutup.

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




Sepasang: Pengontrol Aliran Air yang Disesuaikan dengan Sirkuit Timer Berikutnya: Mengubah Analog ke Digital (Serial Baca Analog) - Dasar-dasar Arduino