Pada jejak kali ini saya akan mencoba membuat alat yang keluarannya dipengaruhi 4 buah masukan yang berasal dari sensor atau saklar, keempat masukan tadi mempengaruhi 2 buah keluaran yang menyala atau memiliki sinyal keluaran 1 (tinggi) tergantung variasi sinyal masukan yang telah ditentukan. Seperti pada gambar di bawah ini.

Sinyal keluaran yang diinginkan tergantung variasi sinyal masukan yang kita tentukan seperti tabel kebenaran di bawah ini.

Setelah sinyal keluaran ditentukan maka dibuatlah persamaan Boolean dengan metode Peta Karnaugh seperti gambar di bawah ini.
Peta Karnaugh 1, untuk keluaran Y :

Dari pengelompokan Minterm dari Peta Karnaugh di atas maka didapat persamaan Boolean sebagai berikut.
Y1 = AC’D’
Y2 = B’C’D
Y3 = BCD
Y4 = A’B’CD’
Y = Y1 + Y2 + Y3 + Y4
Y = AC’D’ + B’C’D + BCD + A’B’CD’
Peta Karnaugh 2, untuk keluaran Z :

Dari pengelompokan Minterm dari Peta Karnaugh di atas maka didapat persamaan Boolean sebagai berikut.
Z1 = AC’D’
Z2 = AB’C’
Z3 = A’BD’
Z4 = B’CD
Z = Z1 + Z2 + Z3 + Z4
Z = AC’D’ + AB’C’ + A’BD’ + B’CD
Setelah persamaan Boolean didapat, untuk memudahkan pemograman ada baiknya di buat dulu dalam bentuk rangkaian gerbang logika seperti gambar di bawah ini.

Urutan Program sesuai gambar di atas :
const int A = A0, B = A1, C = A2, D = A3, Y = 6, Z=7; int nilaiA = 0, nilaiB = 0, nilaiC = 0, nilaiD = 0; void setup() { pinMode(A, INPUT); pinMode(B, INPUT); pinMode(C, INPUT); pinMode(D, INPUT); pinMode(Y, OUTPUT); pinMode(Z, OUTPUT); } void loop() { nilaiA = digitalRead(A); nilaiB = digitalRead(B); nilaiC = digitalRead(C); nilaiD = digitalRead(D); if (((nilaiA == 1 && nilaiC == 0 && nilaiD == 0 ) || (nilaiB == 0 && nilaiC == 0 && nilaiD == 1) || (nilaiB == 1 && nilaiC == 1 && nilaiD == 1) || (nilaiA == 0 && nilaiB == 0 && nilaiC == 1 && nilaiD == 0)) && ((nilaiA == 1 && nilaiC == 0 && nilaiD == 0 ) || (nilaiA == 1 && nilaiB == 0 && nilaiC == 0) || (nilaiA == 0 && nilaiB == 1 && nilaiD == 0) || (nilaiB == 0 && nilaiC == 1 && nilaiD == 1))) { digitalWrite(Y, 1); digitalWrite(Z, 1); } else if ((nilaiA == 1 && nilaiC == 0 && nilaiD == 0 ) || (nilaiB == 0 && nilaiC == 0 && nilaiD == 1) || (nilaiB == 1 && nilaiC == 1 && nilaiD == 1) || (nilaiA == 0 && nilaiB == 0 && nilaiC == 1 && nilaiD == 0)) { digitalWrite(Y, 1); digitalWrite(Z, 0); } else if ((nilaiA == 1 && nilaiC == 0 && nilaiD == 0 ) || (nilaiA == 1 && nilaiB == 0 && nilaiC == 0) || (nilaiA == 0 && nilaiB == 1 && nilaiD == 0) || (nilaiB == 0 && nilaiC == 1 && nilaiD == 1)) { digitalWrite(Y, 0); digitalWrite(Z, 1); } else { digitalWrite(Y, 0); digitalWrite(Z, 0); } delay(100); }