Dosen Pengampu :
Disusun Oleh :
1. Ahmat Japar Sodiq (3.32.22.2.01)
2. Azra Tiarani (3.32.22.2.03)
3. Firda Pramesthi (3.32.22.2.06)
Semakin besar temperatur koefisien yang diperoleh dari photodioda, maka semakin
jauh panjang gelombang yang dihasilkan oleh sensor, dimana besar atau kecil temperatur
koefisien tersebut dipengaruhi oleh keadaan panjang gelombang atau pencahayaan, hal ini
menunjukkan bahwa sensor TCS230 memiliki karaktersitik panjang gelombang yang
linear.
3. Arduino UNO
Arduino adalah suatu jenis mikrokontroler dengan platform open source hardware
yang berdasarkan pada perangkat keras dan perangkat lunak fleksibel dan mudah
digunakan. Arduino tidak hanya sekedar sebuah alat pengembangan, tetapi ia adalah
kombinasi dari hardware, bahasa pemrograman dan Integrated Development Environment
(IDE) yang canggih. IDE adalah sebuah software yang sangat berperan untuk menulis
program, mengkompilasi menjadi kode biner serta mengirim dan menyimpan ke dalam
memori mikrokontroler Arduino. Arduino UNO terdiri dari sebuah papan mikrokontroler
yang mempunyai 14 pin digital input-output (6 di antaranya dapat digunakan sebagai
output PWM), 6 input analog, sebuah osilator kristal 16 MHz, sebuah koneksi USB,
sebuah power jack, sebuah ICSP header dan sebuah tombol reset.
Pin digital pada Arduino UNO yang berjumlah 14 buah dapat digunakan sebagai
input dan juga sebagai output dengan menggunakan fungsi pinMode(), digitalWrite() dan
digitalRead(). Fungsi-fungsi tersebut beroperasi di tegangan 5V. Setiap pin dapat
memberikan atau menerima arus maksimum 40mA dan mempunyai sebuah resistor pullup
(terputus secara default) sekitar 20 hingga 50kΩ.
b. Percobaan 2
Mengukur RGB dari setiap Warna yang ditentukan dengan jarak 0-2 cm menggunakan
Sensor warna TCS230
1. Pastikan sensor TCS230 masih terhubung ke Arduino Uno dengan benar, seperti yang
telah dilakukan pada percobaan pertama. Siapkan objek yang akan diukur, misalnya,
benda berwarna merah, hijau, dan biru. Pastikan objek tersebut telah dikalibrasi sesuai
dengan langkah-langkah percobaan pertama.
2. Buatlah program yang sesuai dengan pengukuran RGB dari setiap Warna yang
ditentukan dengan jarak 0-2 cm menggunakan Sensor TCS230.
3. Tentukan jarak antara sensor dan objek yang akan diukur. Jika ingin mengukur RGB
dari objek pada jarak 0-2 cm dapat menggunakan alat seperti penggaris untuk
mengukur jarak ini.
4. Pada setiap jarak yang diatur, aktifkan pemancar cahaya pada sensor dan baca nilai
PWM (Pulse Width Modulation) yang dihasilkan oleh komponen warna merah, hijau,
dan biru (R, G, B). Catat nilai-nilai ini untuk setiap komponen warna pada setiap jarak
yang diukur.
5. Setelah selesai mengukur nilai RGB pada berbagai jarak, dapat menganalisis data
yang telah terkumpul. Hal ini dapat membuat grafik atau plot untuk melihat
bagaimana nilai RGB berubah seiring dengan jarak dari objek. Analisis data ini dapat
membantu memahami bagaimana sensor merespons warna pada jarak tertentu
6. Selain merah, hijau, dan biru, juga dapat mengulangi percobaan ini dengan warna lain
yang relevan. Pastikan objek yang digunakan telah dikalibrasi sebelumnya.
c. TUGAS 1
Membuat Program pada Arduino untuk menebak Warna yang sesuai menggunakan Sensor
warna TCS230
1. Pastikan sensor TCS230 masih terhubung ke Arduino Uno dengan benar, seperti yang
telah dilakukan pada percobaan sebelumnya. Pastikan telah melakukan kalibrasi
sensor TCS230 sesuai dengan percobaan sebelumnya.
2. Buatlah program yang sesuai dengan percobaan pengukuran menebak warna yang
sesuai menggunakan sensor warna TCS230
3. Program harus melakukan pengukuran warna menggunakan sensor TCS230. Ini dapat
dilakukan dengan cara mengukur nilai PWM (Pulse Width Modulation) yang
dihasilkan oleh sensor untuk komponen warna merah, hijau, dan biru (R, G, B).
4. Berdasarkan hasil pengukuran warna, program harus memiliki logika untuk
menentukan warna yang sesuai. Juga dapat menggunakan aturan berdasarkan nilai-
nilai R, G, dan B yang sesuai dengan warna tertentu. Misalnya, jika R > G dan R > B,
maka warna adalah merah.
5. Hasil penentuan warna harus ditampilkan kepada pengguna. Jika menggunakan LCD,
dapat menampilkan warna yang terdeteksi pada layar. Jika tidak menggunakan
tampilan fisik, dapat mengirimkan hasil ke Serial Monitor pada Arduino IDE.
6. Program harus terus berjalan dalam loop dan mampu mendeteksi warna berulang kali
sesuai dengan perubahan objek yang ditempatkan di bawah sensor. Dapat
menambahkan interaksi pengguna, misalnya, meminta pengguna untuk meletakkan
objek berwarna di bawah sensor.
V. SKEMATIK RANGKAIAN
VI. DATA PERCOBAAN
A. Percobaan 1
Mengukur Kalibrasi Warna pada Warna Terang dan Gelap dengan sesnsor warna
TCS230.
1. Program
// Program Untuk Mencari Nilai R, G, dan B Dari Suatu Warna
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
void setup()
{
lcd.init();
lcd.backlight();
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
digitalWrite(S0, HIGH);
digitalWrite(S1, LOW);
pinMode(sensorOut, INPUT);
Serial.begin(9600);
}
void loop()
{
redPW = getRedPW();
redValue = map(redPW, redMin, redMax, 255, 0);
delay(200);
greenPW = getGreenPw();
greenValue = map(greenPW, greenMin, greenMax, 255, 0);
delay(200);
bluePW = getBluePw();
blueValue = map(bluePW, blueMin, blueMax, 255, 0);
delay(200);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("R:");
lcd.setCursor(2, 0);
lcd.print(redValue);
lcd.setCursor(5, 0);
lcd.print("G:");
lcd.setCursor(7, 0);
lcd.print(greenValue);
lcd.setCursor(10, 0);
lcd.print("B:");
lcd.setCursor(12, 0);
lcd.print(blueValue);
lcd.setCursor(0, 1);
lcd.print("Warna:");
lcd.setCursor(6, 1);
if (redValue>=200 && redValue
<=255&&greenValue>=140&&greenValue<=170&&blueValue>=150&&blueValue<=1
90)
{
lcd.println("Merah");
}
else if (redValue>=130 && redValue
<=190&&greenValue>=160&&greenValue<=255&&blueValue>=150&&blueValue<=2
00)
{
lcd.println("Hijau");
}
else if (redValue>=110 && redValue
<=190&&greenValue>=180&&greenValue<=240&&blueValue>=190&&blueValue<=2
55)
{
lcd.println("Biru");
}
int getRedPW()
{
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
int PW;
PW = pulseIn(sensorOut, LOW);
return PW;
}
int getGreenPw()
{
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
int PW;
PW = pulseIn(sensorOut, LOW);
return PW;
}
int getBluePw()
{
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
int PW;
PW = pulseIn(sensorOut, LOW);
return PW;
}
2. Hasil Percobaan
Warna Gelap Terang
R 304 18
G 350 21
B 292 22
B. Percobaan 2
Mengukur RGB dari setiap Warna yang ditentukan dengan jarak 0-2 cm menggunakan
Sensor warna TCS230
1. Program
#include <LiquidCrystal_I2C.h> //memasukan library LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); //Setting alamat I2C dan
ukuran LCD
//Program Untuk Mencari Nilai R, G dan B Dari Suatu Warna
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8
void setup() {
lcd.init();
lcd.backlight();
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
digitalWrite(S0, HIGH);
digitalWrite(S1, LOW);
pinMode(sensorOut, INPUT);
Serial.begin(9600);
}
void loop() {
redPW = getRedPW();
redValue = map(redPW, redMin, redMax, 255, 0);
delay(200);
greenPW = getGreenPw();
greenValue = map(greenPW, greenMin, greenMax, 255, 0);
delay(200);
bluePW = getBluePw();
blueValue = map(bluePW, blueMin, blueMax, 255, 0);
delay(200);
Serial.print("Red : ");
int getRedPW() {
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
int PW; PW = pulseIn(sensorOut, LOW); return PW;
}
int getGreenPw() {
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
int PW; PW = pulseIn(sensorOut, LOW); return PW;
}
int getBluePw() {
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
int PW; PW = pulseIn(sensorOut, LOW); return PW;
lcd.clear();
}
2. Hasil Percobaan
Jarak (cm)
Warna Pengukuran
0 1 2
R 238 231 206
MERAH G 149 166 144
B 169 180 149
R 254 247 248
KUNING G 249 250 238
B 248 240 232
R 222 198 177
HIJAU G 232 214 189
B 213 191 166
R 207 183 168
BIRU G 239 224 209
B 242 228 207
R 255 241 230
COKELAT G 239 224 208
B 226 205 193
C. TUGAS 1
1. Program
#include <LiquidCrystal_I2C.h> //memasukan library LCD I2C
void setup() {
lcd.init();
lcd.backlight();
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
digitalWrite(S0, HIGH);
digitalWrite(S1, LOW);
pinMode(sensorOut, INPUT);
Serial.begin(9600);
}
void loop() {
redPW = getRedPW();
redValue = map(redPW, redMin, redMax, 255, 0);
delay(200);
greenPW = getGreenPw();
greenValue = map(greenPW, greenMin, greenMax, 255, 0);
delay(200);
bluePW = getBluePw();
blueValue = map(bluePW, blueMin, blueMax, 255, 0);
delay(200);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("R:");
lcd.setCursor(2, 0);
lcd.print(redValue);
lcd.setCursor(5, 0);
lcd.print("G:");
lcd.setCursor(7, 0);
lcd.print(greenValue);
lcd.setCursor(10, 0);
lcd.print("B:");
lcd.setCursor(12, 0);
lcd.print(blueValue);
lcd.setCursor(0, 1);
lcd.print("Warna:");
lcd.setCursor(6, 1);
int getRedPW() {
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
int PW; PW = pulseIn(sensorOut, LOW); return PW;
}
int getGreenPw() {
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
int PW; PW = pulseIn(sensorOut, LOW); return PW;
}
int getBluePw() {
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
int PW; PW = pulseIn(sensorOut, LOW); return PW;
lcd.clear();
}
2. Hasil Percobaan
Pada tugas 1, kita diminta untuk membuat program yang dapat menebak warna
berdasarkan pembacaan sensor TCS230. Program ini harus mampu mengenali
beberapa warna seperti merah, hijau, biru, coklat, hitam, putih, dan kuning.
VII.PEMBAHASAN
Pertama, melakukan kalibrasi pada sensor warna TCS320 menggunakan warna yang
beerbeda-beda serta menguji pembacaan nilai RGB pada variasi warna yang berbeda.
Putih untuk nilai minimum dan hitam untuk nilai maksimal, seperti pada tabel berikut:
Warna Gelap Terang
R 304 18
G 350 21
B 292 22
Pada percobaan selanjutnya, tuliskan nilai minimum dan maksimum yang sudah
terkalibrasi pada program berikutnya. Kemudian pada percobaan ini akan menampilkan
nilai variasi warna yang berbeda pada serial monitor. Kemudian saat kita memberikan
jarak yang berbeda sekitar 1-5 cm pada objek warna, dapat kita lihat pada tabel hasil
percobaandi atas, pembacaan nilai RGB akan mengalami perbedaan dan cenderung
menurun, jika jarak objek semakin jauh. Meskipun ada beberapa warna yang stabil.
VIII. KESIMPULAN
Akhirnya dari percobaan sensor warna TCS230 merupakan nilai pembacaan yang
cukup baik. Semakin jauh sensor terhadap warna objek, maka nilainya semakin turun.
Namun ada juga yang stabil terhadap jarak.
IX. LAMPIRAN
Percobaan 1
GELAP
TERANG
Percobaan 2
RED
KUNING
Biru