Minggu, 25 November 2018

Membaca data Analog Multiplexer dengan Arduino

Hallo sobat Arduino Indonesia, Arduino Nano mempunyai pin analog sebanyak 8 pin, nah permasalahannya bagaimana jika sewaktu waktu butuh baca data analog lebih dari 8. Ada 3 pilihan sebenarnya, menggunakan 2 arduino nano, atau ganti dengan arduino mega (yang pin Analognya lebih banyak), atau menggunakan multiplexer untuk membacanya.

Pada kesempatan kali ini, saya akan menggunakan multiplexer 16 channel, dimana multiplexer ini mampu membaca 16 data analog dan output analognya hanya 1 pin analog.

Komponen yang di butuhkan adalah sebagai berikut
  1. Arduino Nano
  2. Modul multiplexer 16 Pin
  3. kabel jumper
  4. resistor
Dengan susunan rangkaian sebagai berikut :





pin C0 s/d C15 di hubungkan dengan resistor 560 ohm dan dihubungkan ke vcc, dan pada C0 ada resistor 22K ohm yang disambung ke ground.

untuk program arduinonya adalah sebagai berikut :

#define MUX_CH_COUNT 16 // Reduce this number if you use less channels
#define PIN_D_MUX_S0 8  // bit 7 of PORTB 
#define PIN_D_MUX_S1 9  // bit 6 of PORTB
#define PIN_D_MUX_S2 10 // bit 5 of PORTB
#define PIN_D_MUX_S3 11 // bit 4 of PORTB
#define PIN_A_MUX_SIG 0 // This pin will read A0 the input from the mux.

void setup() {
  pinMode(PIN_D_MUX_S0,   OUTPUT);
  pinMode(PIN_D_MUX_S1,   OUTPUT);
  pinMode(PIN_D_MUX_S2,   OUTPUT);
  pinMode(PIN_D_MUX_S3,   OUTPUT);
  Serial.begin(9600); 

 
void loop() {
  for (byte i=0; i<MUX_CH_COUNT; i++) {
    PORTB = (PORTB & B11110000) | i;
    short val = analogRead(PIN_A_MUX_SIG);
    // "val" holds the value for input "i", so you can insert your custom code here.
   
    // Print the values...
    Serial.print(i);   
    Serial.print(": ");
    Serial.print(val);
    Serial.print(" | ");   
  }
 
  Serial.println("");
  delay(1000);
}

Sesudah di uplad ke arduino, dilihat di serial monitor

pada data C0 terlihat data analognya lebih kecil dari C1 s/d C15. Disini berarti data analog sudah kebaca di C0. Untuk percobaan lainnya bisa di lakukan dengan menggunakan sensor beneran, misal menggunakan line tracer multi sensor dan lain-lain

Selamat Belajar Arduino, Salam Arduino Indonesia


Tidak ada komentar:

Posting Komentar