4 Masukan dan 2 Keluaran Pengendali Arduino Uno dengan Metode Peta Karnaugh

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.

Rangkaian Arduino Uno 4 Masukan dan 2 Keluaran

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

Tabel Kebenaran 4 Masukan dan 2 Keluaran

Setelah sinyal keluaran ditentukan maka dibuatlah persamaan Boolean dengan metode Peta Karnaugh seperti gambar di bawah ini.

Peta Karnaugh 1, untuk keluaran Y :

Peta Karnaugh 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 :

Peta Karnaugh 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.

Rangkaian Elektronika Digital 4 Masukan dan 2 Keluaran

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);
}

 

 

 

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *