Elektronika & Robotika Dasar

Pertemuan 5

Integrasi Sensor Kedua / Tambahan

Tujuan Pembelajaran

  • Mampu menambahkan sensor kedua (atau lebih) ke dalam project tanpa mengganggu sensor pertama.
  • Memahami potensi konflik pin/library saat menggabungkan banyak komponen.
  • Mampu membaca beberapa sensor sekaligus dalam satu program.

Penjelasan Konsep

Menggabungkan lebih dari satu sensor

Setelah sensor pertama bekerja, tantangan berikutnya adalah menambahkan sensor kedua tanpa merusak yang sudah berjalan. Beberapa hal yang perlu diperhatikan:

  • Konflik pin - pastikan pin sensor kedua belum dipakai komponen lain.
  • Konflik library - beberapa library memakai resource yang sama (misalnya beberapa library berbasis timer/interrupt), sehingga kadang perlu dicek kompatibilitasnya.
  • Waktu tunda (delay) - jika sensor pertama butuh delay lama (misalnya DHT11 butuh ±2 detik), ini bisa memperlambat pembacaan sensor kedua yang sebenarnya butuh respons lebih cepat (misalnya sensor jarak). Pertimbangkan penggunaan millis() untuk pengaturan waktu non-blocking jika diperlukan (dibahas lebih lanjut di pertemuan 7).

Strategi pengujian

Sama seperti pertemuan sebelumnya: uji sensor kedua secara terpisah dulu, baru gabungkan ke kode utama project setelah yakin bekerja dengan benar.

Kesalahan umum

  • Menyalin tanpa mengganti nama pin/variabel - menyalin kode sensor pertama untuk sensor kedua tapi lupa mengganti nama pin/variabel bisa membuat program membaca pin yang salah tanpa error compile sama sekali (program tetap berjalan, tapi datanya keliru).
  • Tidak sadar dua sensor berbagi jalur komunikasi - misalnya dua sensor I2C dengan alamat default yang sama tidak bisa dipakai bersamaan tanpa mengubah alamat salah satunya (jika modul mendukung) atau memakai multiplexer.
  • Delay sensor pertama "menahan" pembacaan sensor kedua - jika sensor pertama pakai delay() panjang (misalnya DHT11), sensor kedua yang butuh respons cepat (misalnya sensor jarak untuk penghindar rintangan) jadi ikut lambat merespons karena program berhenti total selama delay berlangsung.

Komponen yang Dibutuhkan

  • Sensor kedua (atau tambahan) sesuai kebutuhan project
  • Board mikrokontroler, breadboard, kabel jumper (lanjutan dari pertemuan sebelumnya)

Diagram / Skema Pengkabelan

Tambahkan sensor kedua ke rangkaian yang sudah ada dari pertemuan 4. Perbarui tabel pin project-mu agar mencakup sensor baru ini, pastikan tidak ada pin yang dipakai dua komponen sekaligus.

Contoh Kode Program

// Template menggabungkan pembacaan 2 sensor sekaligus

const int PIN_SENSOR_1 = A0;
const int PIN_SENSOR_2 = 7; // sesuaikan tipe & pin sensor kedua

void setup() {
  Serial.begin(9600);
  pinMode(PIN_SENSOR_2, INPUT);
  // TODO: inisialisasi tambahan jika sensor kedua butuh library khusus
}

void loop() {
  int nilaiSensor1 = analogRead(PIN_SENSOR_1);
  int nilaiSensor2 = digitalRead(PIN_SENSOR_2);

  Serial.print("Sensor 1: ");
  Serial.print(nilaiSensor1);
  Serial.print(" | Sensor 2: ");
  Serial.println(nilaiSensor2);

  delay(300);
}

Tugas / Latihan

  1. Pastikan sensor kedua terbaca dengan benar tanpa mengganggu pembacaan sensor pertama.
  2. Perbarui tabel pin dan dokumentasi wiring project-mu.
  3. Identifikasi apakah ada potensi konflik timing antar sensor, catat rencana solusinya.
  4. (Tantangan) Ukur secara kasar berapa lama satu putaran loop() project-mu berjalan (misalnya dengan mencetak millis() di awal dan akhir loop), lalu identifikasi bagian mana yang paling banyak "memakan waktu" - ini melatih kepekaan terhadap masalah timing yang akan penting saat project makin kompleks.