Mengakses 6 Sensor Warna TCS34725

Indobot Academy

Mengakses 6 Sensor Warna TCS34725
Cara Mengakses 6 Sensor Warna TCS34725 dengan Multiplexer TCA9548A

Halo Fanbot!

Sedang ada project apa hari ini?

Teman-teman sudah pernah mengakses sensor warna TCS34725? Sensor warna ini adalah sensor jenis terbaru dari TCS3200 dan TC23. Seperti namanya, sensor ini biasa digunakan untuk mengetahui warna dari obyek di depannya. Sensor warna TCS34725 memiliki alamat I2C 0x29 untuk dapat mengaksesnya, sehingga jika kita membutuhkan banyak sensor warna, pembacaannya akan kacau dan tidak bisa diketahui dengan baik oleh mikrokontroler. Oleh karena itu, kita membutuhkan tambahan device untuk membagi pembacaan sensor. Sehingga kita menggunakan Multiplexer TCA9548A. penggunaan multiplexer TCA9548A ini memiliki alamat I2C dari 0x70 hingga 0x77.

Dalam project kali ini, kita akan menggunakan 6 sensor warna yang akan dibaca oleh arduino uno. Kemudian hasil bacaan akan kita tampilkan pada LED RGB yang sudah terpasang pada arduino Uno. Cara pembacaan untuk tiap-tiap sensor dilakukan dengan klik button. setiap klik, akan berpindah-pindah pembacaan sensor warnanya. Multiplexer TCA9548A berfungsi sebagai pembagi hasil bacaan sensor agar tidak bertabrakan.

 

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO

Mengakses 6 Sensor Warna TCS34725 dengan Multiplexer TCA9548A

Langsung saja kita coba praktikkan cara pembuatannya.

Siapkan Alat dan Bahan

Alat dan bahan yang digunakan untuk project kita kali ini adalah sebagai berikut. Jangan sampai ada yang kelewat ya.

  1. Laptop/PC yang terinstall Arduino IDE
  2. Arduino Uno 1
  3. Sensor warna TCS34725 6
  4. Multiplexer TCA9548A 1
  5. breadboard 1
  6. Kabel Jumper secukupnya

 

Susun Skema Rangkaian

Susunlah rangkaian seperti berikut ini.

baca juga: Cara Kalibrasi Sensor Warna TCS 3200

Tulislah program di Aplikasi Arduino IDE

Tulislah program arduino seperti berikut ini. pastikan tidak ada yang terlewat ya. perhatikan keterangannya, agar teman-teman dapat memahami program yang sudah dibuat.

//Mengakses 6 sensor warna dengan multiplexer
#include
#include "Adafruit_TCS34725.h" //library TCS34725

#define inPin 7 //Pin input untuk LED RGB
#define rPin 8 //Pin red (merah) untuk LED RGB
#define gPin 9 //Pin green (hijau) untuk LED RGB
#define bPin 10 //Pin blue(biru) untuk LED RGB

byte multiAddress = 0x70; //alamat multiplexer
byte count = 0;
int currentTime = 0;

char data[6][3] = {{'r', 'g', 'b'}, //mengatur warna LED RGB
{'r', 'g', 'b'},
{'r', 'g', 'b'},
{'r', 'g', 'b'},
{'r', 'g', 'b'},
{'r', 'g', 'b'}};
Adafruit_TCS34725 tcs[] = {Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X),
Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X),
Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X),
Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X),
Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X),
Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X)};
byte gammatable[256];

void setup(){
Serial.begin(9600); //mengawali serial monitor 9600
Wire.begin();
pinMode(inPin, INPUT_PULLUP); //inisialisasi inPin menjadi input
pinMode(rPin, OUTPUT); //inisialisasi rPin menjadi output
pinMode(gPin, OUTPUT); //inisialisasi gPin menjadi output
pinMode(bPin, OUTPUT); //inisialisasi bPin menjadi output
// program untuk membuat akurasi penunjukkan warna LED RGB
for(int i =0; i < 256; i++){
float x = i;
x /= 255;
x = pow(x, 2.5);
x *= 255;
gammatable[i] = x;
}
initColorSensors();
attachInterrupt(digitalPinToInterrupt(inPin), changeLED, CHANGE);
}

void loop(){
for(int i = 0; i < 5; i++){ readColors(count); } } //Function millis untuk menghindari tabrakan pembacaan void changeLED(){ if(millis() - currentTime > 200){
count++;
currentTime = millis();
}
if(count > 5){
count = 0;
}

}
void initColorSensors(){
for(int i = 0; i < 6; i++){
Serial.println(i);
chooseBus(i);
if (tcs[i].begin()){
Serial.print("Found sensor "); Serial.println(i+1);
} else{
Serial.println("No Sensor Found");
while (true);
}
}
}

 

baca juga: Menambah Pin Arduino Uno dengan I2C PCF8574 IO Expander

Setelah program di atas sudah dikirimkan ke arduino, kita dapat mulai mencobanya. Cara ujicoba dilakukan dengan memberikan warna pada ke 6 sensor. Kemudian coba tekan button untuk mengubah-ubah pembacaan dari sensor warna 1 hingga yang ke 6. Project sudah benar ketika tampilan pada LED RGB sama dengan warna di tiap-tiap sensor.

Bagaimana? Berhasil?

Jadi fungsi utama dari multiplexer adalah pembagian nilai bacaan. multiplexer juga dapat digunakan untuk penambahan pin jika teman-teman sudah menggunakan seluruh pin untuk device. Sehingga tidak perlu menambahkan mikrokontroler lainnya atau akhirnya mengurangi device.

Selamat mencoba.

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tags

Tinggalkan komentar

whatsapp whatsapp