By | 27/04/2021
Tutorial Arduino Multiplexer

Banyak sekali terjadi pada pemula yang belajar arduino kebingungan ketika membuat projek yang membutuhkan banyak pin input baik digital ataupun analog. ada beberapa cara untuk merekayasa pin arduino supaya bisa digunakan dengan maksimal. pada artikel ini akan dijelaskan tentang Solusi Arduino Memperbanyak Pin Input dengan Multiplexer CD4051

Kali ini saya akan membahas bagaimana solusi menambahkan pin digital atau analaog pada arduino dengan menggunakan IC CD4051 atau multiplexer.

Sesuai definisi dari multiplexer yaitu banyak input sedikit output. maka kita akan gunakan ic multiplexer ini untuk memperbanyak pin input baik digital atau analog pada arduino.

Semisalkan kalian membuat projek dimana menggunakan sensor digital atau analog yang banyak, sedangkan arduino tidak mencukupi pin nya maka tutorial ini sangat cocok untuk dibaca karena disini adalah solusi menambahkan pin digital atau analog pada arduino dengan ic multiplexer tipe CD4051.

Sensor yang keluaranya digital atau analog tidak bisa di pasang secara pararel langsung seperti penggunaan sensor yang berkomunikasi I2C atau SPI. maka dari itu untuk menghemat atau menambah pin digital dan analog pada arduino dibutuhkan tambahan komponen untuk merekayasa input pin pada arduino.

Tutorial Arduino Multiplexer
Tutorial Arduino Multiplexer 4051

Sistem kerja dari IC CD4051 multiplexer dapat di baca pada datasheet IC tersebut, karena disini saya hanya menjelaskan secara singkat saja.

Terdpat tiga buah selektor untuk mengaktifkan input mana yang ingin diaktifkan, dengan menghitung berdasarkan bit. 3 bit artinya akan terdapat 8 buah input yang dapat kita kontrol dalam satu ic multiplexer 4051

Perhatikan gambar gambar dibawah ini yang menjelaskan perilaku input output pada IC CD4051 atau multiplexer dengan logic state pada proteus 8.

Baca beberapa tutorial pemula arduino disini

Solusi Arduino Memperbanyak Pin Input dengan Multiplexer
Output X Mengambil data dari X1
Solusi Arduino Memperbanyak Pin Input dengan Multiplexer
Output X Mengambil data dari X5
Solusi Arduino Memperbanyak Pin Input dengan Multiplexer
Output X Mengambil data dari X0

Semoga dari gambar gambar diatas anda mengerti sehingga cara penggunaan IC CD4051 multiplexer dengan arduino jauh lebih mudah lagi.

baiklah langsung saja kita rangkai IC CD4051 dengan arduino untuk memperbanyak pin input digital dan juga analog.

saya gunakan tombol dan juga potensiometer untuk input nya, sehingga tombol dijadikan input digital sedangkan potensiometer untuk pin analog.

berikut rangkaian arduino dan IC CD4051 multipleser untuk membaca analog dan juga digital dengan proteus 8.

Solusi Arduino Memperbanyak Pin Input dengan Multiplexer CD4051
Rangkaian Arduino dan IC CD4051

Rangkaian diatas saya buat menjadi dua IC CD4051, dimana fungsinya yang satu untuk menghandel analog input dan satu laginya untuk menghandel digital input.

untuk program dari rangkaian diatas bisa lihat dibawah ini.

void sel(bool C, bool B, bool A) {
  digitalWrite(a, A);
  digitalWrite(b, B);
  digitalWrite(c, C);
}

Program diatas adalah untuk menyederhanakan syntax pengaktifan selektor, supaya tidak mengulang-ulang pemanggilan fungsi digitalwrite, maka saya buat subrutin seperti diatas.

void baca_input() {
  sel (0, 0, 0);
  adcmux[0] = analogRead(A0);
  digitalmux[0] = digitalRead(7);
  sel (0, 0, 1);
  adcmux[1] = analogRead(A0);
  digitalmux[1] = digitalRead(7);
  sel (0, 1, 0);
  adcmux[2] = analogRead(A0);
  digitalmux[2] = digitalRead(7);
  sel (0, 1, 1);
  adcmux[3] = analogRead(A0);
  digitalmux[3] = digitalRead(7);
  sel (1, 0, 0);
  adcmux[4] = analogRead(A0);
  digitalmux[4] = digitalRead(7);
  sel (1, 0, 1);
  adcmux[5] = analogRead(A0);
  digitalmux[5] = digitalRead(7);
  sel (1, 1, 0);
  adcmux[6] = analogRead(A0);
  digitalmux[6] = digitalRead(7);
  sel (1, 1, 1);
  adcmux[7] = analogRead(A0);
  digitalmux[7] = digitalRead(7);
}

Program diatas merupakan bagian dari proses pembacaan analog dan juga digital dengan cara mengaktifkan selektor kemudian data yang terbaca dimasukan pada varibel array.

berikut saya sertakan program lengkap simulasinya.

#define a 10
#define b 9
#define c 8

int adcmux[8];
int digitalmux[8];

void sel(bool C, bool B, bool A) {
  digitalWrite(a, A);
  digitalWrite(b, B);
  digitalWrite(c, C);
}

void baca_input() {
  sel (0, 0, 0);
  adcmux[0] = analogRead(A0);
  digitalmux[0] = digitalRead(7);
  sel (0, 0, 1);
  adcmux[1] = analogRead(A0);
  digitalmux[1] = digitalRead(7);
  sel (0, 1, 0);
  adcmux[2] = analogRead(A0);
  digitalmux[2] = digitalRead(7);
  sel (0, 1, 1);
  adcmux[3] = analogRead(A0);
  digitalmux[3] = digitalRead(7);
  sel (1, 0, 0);
  adcmux[4] = analogRead(A0);
  digitalmux[4] = digitalRead(7);
  sel (1, 0, 1);
  adcmux[5] = analogRead(A0);
  digitalmux[5] = digitalRead(7);
  sel (1, 1, 0);
  adcmux[6] = analogRead(A0);
  digitalmux[6] = digitalRead(7);
  sel (1, 1, 1);
  adcmux[7] = analogRead(A0);
  digitalmux[7] = digitalRead(7);
}
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode (a, OUTPUT);
  pinMode (b, OUTPUT);
  pinMode (c, OUTPUT);

  pinMode (7, INPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  baca_input();
  Serial.println("---DIGITAL---");
  for (int i = 0; i < 8; i++) {
    Serial.print(digitalmux[i]);
  }
  Serial.println();
  Serial.println("-----ADC----");
  for (int i = 0; i < 8; i++) {
    Serial.print(adcmux[i]);
    Serial.print("  ");
  }
  Serial.println();
}

Berikut adalah hasil dari program diatas. jika saya sempat maka akan saya perlihatkan video hasilnya, untuk sekarang kalian bisa mengikuti tutorial diatas.

Solusi Arduino Memperbanyak Pin Input dengan Multiplexer CD4051
Hasil pembacaan digital dan analog dengan arduino dan multiplexer CD4051

Itulah teman-teman tutorial yang bisa saya bagikan kali ini, semoga bermafaat untuk kalian dan jangan lupa untuk membagikan artikel ini sebanyak mungkin.

Leave a Reply

Your email address will not be published. Required fields are marked *