Memantau Keadaan Suis (Siri Baca Digital) - Asas Arduino

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Dasar-dasar Arduino ini membincangkan kaedah melaksanakan kod di mana keadaan ON atau OFF dari butang tekan luaran dapat dibaca atau dipantau di dalam Arduino.

Siri Baca Digital

Di sini kita belajar melalui contoh bagaimana memantau keadaan suis dengan melakukan komunikasi bersiri di Arduino dan PC anda melalui USB.



Lebih dari Lembaga Arduino anda, anda memerlukan item asas berikut:

Perkakasan

Suis sesaat, butang, atau suis tekan-ke-ON



Perintang 10k, 1/4 watt ohm

papan roti
pautan penghubung atau jumper.

Operasi Litar

Operasi boleh dilakukan dengan langkah-langkah berikut:

Ambil 3 helai wayar pelompat dan pasangkannya dengan papan Arduino anda. Dua wayar, merah dan hitam, pergi ke dua baris menegak panjang di sisi papan roti yang menjadi tali bekalan papan untuk membawa diperlukan 5V DC ke papan.

Kawat ketiga digunakan untuk menyambungkan pin digital 2 ke salah satu petunjuk suis tekan-ke-ON.

Butang utama ini juga menghubungkan dengan resistor penarik 10k ke rel bekalan negatif atau tanah. Sumbu suis bebas yang lain dihubungkan dengan positif bekalan 5 volt.

Dengan sambungan di atas dibuat, suis beralih atau melakukan aksi ganda di litar apabila diberi tolakan.

Biasanya apabila suis berada dalam kedudukan terputus, kedua-dua plagnya tetap terpencil, sehingga pin yang dihubungkan dengan tanah melalui perintang tarik turun menjadikan tahap RENDAH, atau logik 0.

Dalam keadaan yang ditekan, suis melaksanakan seketika penyambungan dua petunjuknya, sehingga petunjuknya dikenakan + 5 volt, menjadikan tahap 1 TINGGI, atau logik di seberang mereka.

Mengasingkan pin i / o digital dari perkara lain, boleh memaksa LED menyala dan menyebabkan berkelip tidak menentu. Ini disebabkan fakta bahawa input tidak diberikan kepada apa-apa, atau disimpan dalam posisi 'tergantung' - yang bermaksud tidak ditentukan untuk logik yang pasti, tidak tinggi atau rendah (+ 5V atau 0V), ini adalah sebab mengapa kami menggunakan perintang tarik dengan suis.

Skematik

Memahami Kod

Dalam program berikut di bawah ini, kita mulai dengan komunikasi bersiri dalam fungsi penyediaan pada kadar 9600 bit data sesaat, ini dimulakan antara papan Arduino dan komputer yang terpasang: Serial.begin (9600)

Pada langkah seterusnya kita mencetuskan pin digital 2, pin yang akan bertanggung jawab untuk output dengan tekan tekan sebagai input: pinMode (2, INPUT) Ini melengkapkan 'setup' kami, sekarang kami berlayar ke gelung utama kod kami .

Di sini dengan menekan butang tekan, 5 volt dibenarkan memasuki litar kami, sementara pin input dihubungkan dengan tanah melalui perintang 10-kilohm ketika berada dalam keadaan tidak tertekan.

Di atas adalah apa yang kita panggil input digital, yang merujuk kepada keadaan di mana suis hanya dapat berada dalam keadaan tertentu baik keadaan on (diterima oleh Arduino sebagai '1', atau LOGIC TINGGI) atau keadaan mati (visualisasi oleh Arduino sebagai '0', atau LOGIC LOW), tanpa sate lain yang tidak ditentukan di antara apa pun.

Tindakan mendasar yang perlu kita laksanakan dalam gelung utama program adalah menerapkan pemboleh ubah untuk menjaga informasi di tempat yang dikirim melalui tombol tekan.

Seperti yang dibincangkan di atas dengan isyarat dalam bentuk '1' atau '0', kami di sini menggunakan jenis data int. Kita boleh menamakan pemboleh ubah ini sebagai sensorValue, dan memperbaikinya agar sesuai dengan semua yang dibaca pada pin digital 2. Semua ini dapat dicapai melalui satu baris kod:

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

Ini dapat dilaksanakan dengan bantuan perintah Serial.println () pada baris akhir kod: Serial.println (sensorValue)

Selepas ini, setiap kali Monitor Serial dimulakan di domain Arduino, kita akan menyaksikan rantai '0's semasa butang tekan berada dalam posisi terbuka, dan rantai' 1 jika butang dipegang dalam keadaan 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
}




Sebelumnya: Pengawal Aliran Air yang disesuaikan dengan Litar Pemasa Seterusnya: Menukar Analog ke Digital (Serial Baca Analog) - Asas Arduino