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
- Arduino Nano
- Modul multiplexer 16 Pin
- kabel jumper
- resistor
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);
}
#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