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)
Strain Gauge merupakan komponen elektronika yang diapat dipakai untuk mengukur
tekanan (deformasi atau strain). Alat ini berbentuk foil logam atau kawat logam yang
bersifat insulative (isolasi) yang ditempel pada benda yang akan diukur tekanannya,
dan tekanan berasal dari pembebanan. Jika terdapat tekanan atau suatu gaya F yang
menekan strain gauge yang ada pada loadcell, maka foil atau kawat akan terdeformasi,
dan tahanan listrik alat ini akan berubah.
Perubahan tahanan listrik ini akan dimasukkan ke dalam rangkaian jembatan
wheatstone yang kemudian akan diketahui berapa besar tahanan pada strain gauge.
Tegangan keluaran dari jembatan wheatstone merupakan sebuah ukuran regangan
yang terjadi akibat tekanan dari setiap elemen pengindera strain gauge. Tekanan itu
kemudian dihubungkan dengan regangan sesuai dengan Hukum Hook yang berbunyi
“Modulus elastisitas adalah rasio antara tekanan dan regangan.” Dengan demikian,
jika modulus elastisitas pada sebuah permukaan benda dan regangan telah diketahui,
maka tekanan bisa ditentukan dengan rumus sebagai berikut.
2. 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Ω.
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
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 : ");
}
if(greenValue > redValue && greenValue > blueValue){
lcd.setCursor(0,1);
lcd.print("HIJAU");
}
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 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(greenValue > redValue && greenValue > blueValue){
lcd.setCursor(0,1);
lcd.print("HIJAU");
}
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