Sabtu, 10 Juni 2017

Multiplexing Pada Arduino

Multiplexer adalah salah satu komponen elektronika berfungsi sebagai penyelektor data berdasarkan perintah untuk menampilkan data yang diinginkan. Dengan kata singkatnya multiplexer memiliki banyak input data 2n contohnya 4, 8, 16,32 input tetapi hanya memiliki beberapa buah input digital dan memiliki 1 bagian pengontrol. Melalui bagian input digital ini dapat dikehendaki data input mana yang akan ditampilkan. 

Salah satu contoh IC untuk kedua proses tersebut yaitu 74HC4067. IC ini merupakan ic analog yang memilik 16 inputan dengan 4 input data (S0,S1,S,S3) , 1 pin SIGsebagai pengendali selector dan 1 input Enable untuk mengaktifkan. Bentuk fisik dari IC Mux 74HC4067. 

Saat pin input ic 74HC4067 (channel 0-15) yang terhubung dengan suatu perangkat misalnya dengan trimpot, untuk pembacaan ke-16 input-an tersebut dilakukan secara bergantian dalam satuan waktu Us. Untuk sinyal kendali pembacaannya terdapat pada pin S0-S1 yang dimana dapat diliat pada tabel kebenaran dibawah :



74HC4067



Keterangan : SIG merupakan pin keluarnya sinyal hasil selektor data yang dibaca dari selektor (S0-S3), dan dapat aktif dapat dibaca jika di pin Enable di on kan. Pada pasaran sudah terdapat modul IC 74HC4067, sudah dipackage ke dalam pcb yang langsung siap pakai menggunakan pin header dengan jumper. 


Pembacaan sinyal Digital (74HC4067)

Modul/Part yang diperlukan:

  • Arduino Uno
  • Modul 74HC4067
  • 16 Resistor 10 kΩ
  • 16 Push button
  • Breadboard
  • Kabel Jumper

Gambar Rangkaian


Keterangan : 
  • SIG : 3 
  • S0 : 8 
  • S1 : 9 
  • S2 : 10 
  • S3 : 11 
  • E : 7
Library

Download Disini

Sourcecode


/* --- www.ngarep.net --- */
/*
* Berikut ini adalah contoh pembacaan sinyal digital
* Menggunakan push button dan dalam kondisi pull up (resitor 10k)
* Semua dihubungkan ke 16 channel modul 74HC4067
*/
 
//menambahkan pembacaan untuk libraries modul 74HC4067
#include <MUX74HC4067.h>
 
//(en, S0, S1, S2, S3)
MUX74HC4067 mux(7, 8, 9, 10, 11);
 
void setup()
{
//Inisialisasi port serial
Serial.begin(9600);
//menunggu sampai terkoneksi port serialnya
while ( !Serial ) ;
//inisialisasi pin 3 sebagai jalur signal
mux.signalPin(3, INPUT, DIGITAL);
}
 
//Membaca 16 channel dan ditampilkan datanya pada serial monitor
//jika salah satu push button ditekan
void loop()
{
byte data;
for (byte i = ; i < 16; ++i)
{
//Membaca channel i
data = mux.read(i);
Serial.print("Push button yang ditekan pada channel: ");
Serial.print(i);
Serial.print(" status ");
if ( data == HIGH ) Serial.println("tidak ditekan");
else if ( data == LOW ) Serial.println("ditekan");
}
Serial.println();
delay(1500);
}


SUMBER

Tidak ada komentar:

Posting Komentar