Mengubah Analog ke Digital (Serial Baca Analog) - Dasar-dasar Arduino

Coba Instrumen Kami Untuk Menghilangkan Masalah





Dalam dasar-dasar Arduino ini kami mencoba untuk memahami prosedur implementasi kode dimana sinyal analog eksternal diumpankan ke input analog Arduino dan diterjemahkan atau diubah menjadi pembacaan digital proporsional yang sesuai. Di sini kami menggunakan resistansi variabel dalam bentuk pot sebagai sumber sinyal analog.

Serial Baca Analog

Dalam contoh ini kita mempelajari metode membaca input analog dari perangkat eksternal seperti potensiometer, yang merupakan perangkat elektro-mekanis yang dirancang untuk menerapkan resistansi yang bervariasi dalam suatu rangkaian melalui operasi manual.



Arduino dapat digunakan untuk mengukur besarnya tegangan yang keluar dari potensiometer untuk membaca dan mengidentifikasi resistansi yang bervariasi terkait. Ini dapat dilakukan dengan memasukkan tegangan ke port input analog Arduino sebagai nilai analog.

Di sini kita akan melihat bagaimana hal di atas diberlakukan setelah membangun komunikasi serial di Arduino dan komputer yang ditautkan.



Hardware Diperlukan

Papan Arduino

Potensiometer 10 kilohm

Operasi Sirkuit

Seperti yang digambarkan dalam diagram di atas, sambungkan tiga kabel yang keluar dari pot ke port Arduino Anda.

Kawat dari salah satu ujung luar pot ditugaskan dengan tanah atau garis negatif papan.

Ujung ujung luar ekstrim bebas lainnya terhubung dengan + 5V papan.

Yang tersisa adalah ujung tengah pot, yang diakhiri ke input analog dari papan Arduino.

Ketika poros pot diputar, resistansi melintasi ujung tengah dan terminal luar bergeser dari yang lebih tinggi ke lebih rendah dan sebaliknya tergantung pada sisi mana lengan penggeser semakin dekat.

Misalnya saat lengan penggeser diputar ke arah kabel + 5V, kabel tengah mendekati 5V dan cenderung memperoleh nilai keseluruhan saat menyentuh kabel 5V yang ditetapkan. Demikian pula saat poros penggeser digerakkan ke arah ujung pot tanah, ujung tengah cenderung mencapai potensial nol.

Tegangan suplai yang bervariasi secara linier di atas ujung tengah pot dibaca oleh input analog arduino untuk menafsirkannya menjadi resistansi pot yang bervariasi.

Arduino membungkus sirkuit pengubah analog-ke-digital internal yang secara efektif menafsirkan gerakan pot di atas dan mengubahnya menjadi angka antara 0 dan 1023.

Posisi tertentu di atas poros pot menghasilkan angka proporsional antara 0 dan 1023 yang diterjemahkan oleh Arduino, dan untuk nilai akhir 5V dan nol volt, interpretasinya jelas 0 dan 1023.

Dalam program yang dirujuk, fungsi pengaturan hanya perlu dipicu untuk memulai komunikasi serial, dengan kecepatan 9600 bit data per detik, di seluruh papan Arduino dan komputer Anda.

Perintah yang diharapkan berupa:

Serial.begin (9600)

Selanjutnya, di loop utama kode Anda, kami menerapkan variabel untuk memperbaiki nilai resistansi (yang akan dibahas antara 0 dan 1023, hanya cocok untuk tipe data int) yang diterima dari prospek pot:

int sensorValue = analogRead (A0)

Untuk menyimpulkan, cetak informasi ini ke jendela serial Anda sebagai nilai desimal (DEC). Anda dapat menggunakan perintah Serial.println () untuk menerapkan ini di baris kode terakhir:

Serial.println (sensorValue, DEC)

Setelah ini, setiap kali Serial Monitor dimulai di domain pengembangan Arduino (ini dilakukan dengan mengklik tombol yang berada tepat di sisi kanan tombol 'Unggah' di header program).

kita akan melihat rantai angka yang konsisten berjalan dari 0-1023, sesuai dengan posisi rotasi poros pot yang bervariasi.

Jika kita menghentikan rotasi poros pot pada suatu saat, angka sesaat yang sesuai akan ditampilkan di layar Arduino, ini akan berubah lagi secara proporsional saat kita terus mengubah posisi poros pot.

Kode

/ *
AnalogReadSerial
Membaca input analog pada pin 0, mencetak hasilnya ke monitor serial.
Pasang pin tengah potensiometer ke pin A0, dan pin luar ke + 5V dan ground.

Kode contoh ini ada di domain publik.
* /

// rutinitas penyiapan berjalan sekali saat Anda menekan reset:
batal penyiapan () {
// menginisialisasi komunikasi serial pada 9600 bit per detik:
Serial.begin (9600)
}

// loop rutin berjalan berulang-ulang selamanya:
void loop () {
// baca masukan pada pin analog 0:
int sensorValue = analogRead (A0)
// cetak nilai yang Anda baca:
Serial.println (sensorValue)
delay (1) // penundaan di antara pembacaan untuk stabilitas
}




Sebelumnya: Memantau Status Sakelar (Serial Baca Digital) - Dasar-dasar Arduino Berikutnya: Sirkuit Regulator Tegangan Listrik 1.25V hingga 120V