Alat Deteksi Nominal Uang Kertas Untuk Penyandang Tuna Netra Dengan Sensor TCS3200-DB Berbasis Arduino Uno Chapter III V

BAB 3
METODE PENELITIAN

3.1.

Diagram Blok Sistem

Power Supply

LCD

Sensor warna

Arduino uno

buzzer

Gambar 3.1 Diagram blok system

3.1.1. Fungsi-fungsi diagram blok
1.


Blok Sensor warna sebagai pendeteksi warna pada uang

Universitas Sumatera Utara

2.

Blok Supply sebagaisumbertegangan ke mikrokontroler dan sensor

3.

Blok LCD sebagai output tampilan

4.

Block arduino uno sebagai otak dari system yang memproses data dari
sensor dan menampilakan ke LCD

5.


3.2.

Blok buzzer sebagai indikator

Rangkaian Arduino uno

Gambar 3.2 rangkaian arduino uno

Arduino Uno adalah papan sirkuit berbasis mikrokontroler ATmega328.
IC (integrated circuit) ini memiliki 14 input/output digital (6 output untuk PWM),
6 analog input, resonator kristal keramik 16 MHz, Koneksi USB, soket adaptor,
pin header ICSP, dan tombol reset. Hal inilah yang dibutuhkan untuk mensupport

Universitas Sumatera Utara

mikrokontrol secara mudah terhubung dengan kabel power USB atau kabel power
supply adaptor AC ke DC atau juga battery.
Arduino Uno berbeda dari semua board mikrokontrol diawal-awal yang
tidak


menggunakan

chip

khusus

driver

FTDI

USB-to-serial.

Sebagai

penggantinya penerapan USB-to-serial adalah ATmega16U2 versi R2 (versi
sebelumnya ATmega8U2). Versi Arduino Uno Rev.2 dilengkapi resistor ke 8U2
ke garis ground yang lebih mudah diberikan ke mode DFU.

3.3.


Rangkaian sensor warna

Gambar 3.3 Rangkaian sensor warna

Universitas Sumatera Utara

3.4.

Rangkaian Power Supply

Gambar 3.4 rangkaian Power supply

Untuk mempermudah perancangan alat, pada rangkaian saya ini
menggunakan power supply 12 volt

yang telah ada dipasaran.Tetapi

mikrokontroler hanya membutuhkan tegangan 5 volt.Jadi untuk menstabilkan
tegangan yaitu menggunakan IC7805 yang berfungsi untuk menjaga tegangan 5
volt.


3.5.

Rangkaian LCD

Gambar 3.5 rangkaian LCD 26 x 2

Universitas Sumatera Utara

Pada rangkaian ini LCD di hubungkan ke PORT arduino, RS LCD – D2
arduino, E LCD –D3 arduino, D4 LCD –D4 arduino, D5 LCD -D5 arduino,
D6LCD –D6 arduino, D7LCD –D7 arduino. Rangkaian LCD ini disesuaikan
dengna kebutuhan LCD dan kebutuhan pada sistem. Semua port LCD juga dapat
langsung
dihubungkan ke PORT arduino, tetapu terlalu banyak memakan pin pada arduino.

3.6. Rangkaian Seluruhnya

Universitas Sumatera Utara


3.7 Flowchart Sistem
Start

Inialisasi

Deteksi Warna
Uang

Konversi data
analog

Suara

Tampil LCD

Selesai

Gambar 3.6 flowchart system

Universitas Sumatera Utara


BAB 4
PENGUJIAN DAN HASIL

4.1.

Pengujian rangkaian Arduino uno
Pengujian sistem arduino uno dilakukan dengan memprogram sistem

arduino uno untuk membuat Pin.4 menjadi nilai positif negative 0 dan 1 yang
diulang ulang dengan delay 100 ms. kemudian keluaran tegangan dari Pin.4 akan
diukur dengan avometer.
Pengujian sistem arduino uno ini untuk memastikan bahwa sistem arduino
yang digunakan pada penelitian ini tidak rusak.Sehingga program yang
ditanamkan pada microcontroller mampu untuk mengontrol suhu dan kelembaban
ruang seperti yang diharapkan.
Untuk pengujian arduino dapat digunaka program standar sebagai berikut
void setup() {
pinMode(13, OUTPUT);
}

void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}

Universitas Sumatera Utara

Dan kemudian untuk mengupload program, menggunakan tool upload
pada arduino. Apabila pin 13 atau bisa di lihat pada led yang telah disediakan
pada arduino, akan terlihat led akan hidup dan mati selama 1 detik dan berulang
ulang. Pengujian ini bertujuan untuk mengertahui arduino dapat digunakan
dengan baik atau tidak.

4.2.

Pengujian sensor Warna
sensor ini mempunya 4 buah mode filter warna yaitu mode clear, mode


filter merah,mode filter hijau,mode filter biru. disini filter yang dimaksud adalah
range panjang gelombang atau lambda

cahaya yang bisa diterima oleh

photodioda. grafik range lambda bisa dilihat pada datasheet. output akhir dari
sensor ini adalah komposisi warna Red-Green-Blue atau bisa dikenal dengan
RGB. unuk bisa mendapakan RGB dari suatu object, maka sensor harus
dikalibrasi dulu dengan warna putih sebagai referensinya. jarak pengambilan data
2 cm dari sensor. kalibrasi warna putih menggunakan kertas HVS putih.

Pengujian sensor ini yaitu dengan program pada arduino sebagai berikut.

int S0 = 8;
int S1 = 9;
int S2 = 12;
int S3 = 11;
int flag=0;
int counter=0;


Universitas Sumatera Utara

int countR=0,countG=0,countB=0;
void setup()
{
Serial.begin(115200);
pinMode(s0,OUTPUT);
pinMode(s1,OUTPUT);
pinMode(s2,OUTPUT);
pinMode(s3,OUTPUT);
}
void TCS()
{
digitalWrite(s1,HIGH);
digitalWrite(s0,LOW);
flag=0;
attachInterrupt(0, ISR_INTO, CHANGE);
timer2_init();
}
void ISR_INTO()

{
counter++;
}
void timer2_init(void)
{
TCCR2A=0x00;
TCCR2B=0x07; //the clock frequency source 1024 points

Universitas Sumatera Utara

TCNT2= 100;

//10 ms overflow again

TIMSK2 = 0x01; //allow interrupt
}
int i=0;
ISR(TIMER2_OVF_vect)//the

timer

2,

10ms

interrupt

overflow again. Internal overflow interrupt executive
function
{
TCNT2=100;
flag++;
if(flag==1)
{
counter=0;
}
else if(flag==2)
{
digitalWrite(s2,LOW);
digitalWrite(s3,LOW);
countR=counter/1.051;
Serial.print("red=");
Serial.println(countR,DEC);
digitalWrite(s2,HIGH);
digitalWrite(s3,HIGH);
}
else if(flag==3)

Universitas Sumatera Utara

{
countG=counter/1.0157;
Serial.print("green=");
Serial.println(countG,DEC);
digitalWrite(s2,LOW);
digitalWrite(s3,HIGH);
}
else if(flag==4)
{
countB=counter/1.114;
Serial.print("blue=");
Serial.println(countB,DEC);
digitalWrite(s2,LOW);
digitalWrite(s3,LOW);
}
else
{
flag=0;
TIMSK2 = 0x00;
}
counter=0;
delay(2);
}
void loop()
{

Universitas Sumatera Utara

delay(10);
TCS();
if((countR>10)||(countG>10)||(countB>10))
{
if((countR>countG)&&(countR>countB))
{
Serial.print("red");
Serial.print("\n");
delay(1000);
}
else if((countG>=countR)&&(countG>countB))
{
Serial.print("green");
Serial.print("\n");
delay(1000);
}
else if((countB>countG)&&(countB>countR))
{
Serial.print("blue");
Serial.print("\n");
delay(1000);
}
}
else
{

Universitas Sumatera Utara

delay(1000);
}
}
4.3.

Pengujian Power supply
Voltage regulator IC adalah IC yang digunakan untuk mengatur tegangan

.IC 7805 adalah Regulator 5V, Voltage yang membatasi output tegangan 5V dan
menarik 5V diatur power supply.Pengujian rangkaian regulator ini biasanya
menggunakan volt meter, rangkaian ic7805 ini akan mengeluarkan tegangan 5
volt dengan inputan diatas 6 volt sampai dengan 35 Volt.

4.4

Pengujian rangkaian LCD
Pengujian LCD menggunakan arduino uno r3 sebagai alat untuk

memerintahkan LCD menampilkan beberapa karakter.Pada pengujian LCD ini
arduino uno r3 diberi program untuk menampilkan nilai suhu dan kelembaban.
Pengujian LCD bertujuan untuk memastikan LCD nya dapat berjalan
dengan baik. Sehingga pada proses pemantuan suhu dan kelembaban ruang
pengering akan didapatkan data yang baik.
Berikut adalah program untuk pengujian LCD
include
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {
lcd.begin(16, 2);
}
void loop() {

Universitas Sumatera Utara

lcd.setCursor(0,0);
lcd.print("hello, world!");
}
Program diatas untuk menampilkan kata "hello, world!" pada LCD.

4.5.

Pengujian keseluruhan

Pengujian rangkaian yaitu dengan program sebagai berikut.
int S0 = 8;
int S1 = 9;
int S2 = 12;
int S3 = 11;
int taosOutPin = 10;
int LED = 13;
#include
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

void setup() {
TCS3200setup();
lcd.begin(16, 2);
Serial.begin(9600);
delay(100);
}

Universitas Sumatera Utara

// primary loop takes color readings from all four
channels and displays the raw values once per second.
What you might wish to do with those values is up to
you...
void loop() {
detectColor(taosOutPin);
Serial.println(" ");
delay(500);

}
int detectColor(int taosOutPin)
{
int white = colorRead(taosOutPin,0,1);
int red = colorRead(taosOutPin,1,1);
int blue = colorRead(taosOutPin,2,1);
int green = colorRead(taosOutPin,3,1);

if (red==11

&& green==12 || green==11 && blue==10 &&

white ==4 )
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Letakan uang.....");
}

Universitas Sumatera Utara

else if (red == 10 || red == 11
green == 13 &&

&&

green == 14 ||

blue ==13 || blue ==14 && white == 4)

{
lcd.setCursor(0,0);
lcd.print("Uang terdeteksi");
lcd.setCursor(0,1);
lcd.print("Rp 100.000");
}
else if (red == 14 || red == 15
green == 15 &&

&&

green == 14 ||

blue ==12 || blue ==13 && white == 5)

{
lcd.setCursor(0,0);
lcd.print("Uang terdeteksi");
lcd.setCursor(0,1);
lcd.print("Rp 50.000");
}

else if (red == 13 || red == 12
green == 13 &&

&&

green == 12 ||

blue ==10 || blue ==11 && white == 4)

{
lcd.setCursor(0,0);
lcd.print("Uang terdeteksi");
lcd.setCursor(0,1);
lcd.print("Rp 50.000");
}

Universitas Sumatera Utara

float colorRead(int taosOutPin, int color, boolean
LEDstate){

if(color == 0){//white
digitalWrite(S3, LOW); //S3
digitalWrite(S2, HIGH); //S2
// Serial.print(" w");
}

else if(color == 1){//red
digitalWrite(S3, LOW); //S3
digitalWrite(S2, LOW); //S2
// Serial.print(" r");
}
else if(color == 2){//blue
digitalWrite(S3, HIGH); //S3
digitalWrite(S2, LOW); //S2
// Serial.print(" b");
}
else if(color == 3){//green
digitalWrite(S3, HIGH); //S3
digitalWrite(S2, HIGH); //S2
// Serial.print(" g");
}
float readPulse;

Universitas Sumatera Utara

//

turn LEDs on or off, as directed by the LEDstate

var
if(LEDstate == 0){
digitalWrite(LED, LOW);
}
if(LEDstate == 1){
digitalWrite(LED, HIGH);
}
//if the pulseIn times out, it returns 0 and that
throws off numbers. just cap it at 80k if it happens
if(readPulse < .1){
readPulse = 80000;
}
//turn off color sensor and LEDs to save power
taosMode(0);

// return the pulse value back to whatever called for
it...
return readPulse;
}

void taosMode(int mode){

if(mode == 0){
//power OFF mode-

LED off and both channels "low"

Universitas Sumatera Utara

digitalWrite(LED, LOW);
digitalWrite(S0, LOW); //S0
digitalWrite(S1, LOW); //S1
}else if(mode == 1){
//this will put in 1:1, highest sensitivity
digitalWrite(S0, HIGH); //S0
digitalWrite(S1, HIGH); //S1
// Serial.println("m1:1m");

}else if(mode == 2){
//this will put in 1:5
digitalWrite(S0, HIGH); //S0
digitalWrite(S1, LOW); //S1
//Serial.println("m1:5m");

}else if(mode == 3){
//this will put in 1:50
digitalWrite(S0, LOW); //S0
digitalWrite(S1, HIGH); //S1
//Serial.println("m1:50m");
}

return;
}

Universitas Sumatera Utara

void TCS3200setup(){

//initialize pins
pinMode(LED,OUTPUT); //LED pinD

//color mode selection
pinMode(S2,OUTPUT); //S2 pinE
pinMode(S3,OUTPUT); //s3 pinF

//color response pin (only actual input from taos)
pinMode(taosOutPin, INPUT); //taosOutPin pinC

//communication freq (sensitivity) selection
pinMode(S0,OUTPUT); //S0 pinB
pinMode(S1,OUTPUT); //S1 pinA

return;
}
Data 4.5.1.pengujian pada uang 10.000
Table 4.5.1.1.pengujian pada uang 10.000
Gambar

R

G

B

Depan kanan

6

7

6

Depan kiri

4

4

3

Depan tengah

5

6

5

Universitas Sumatera Utara

Belakang kanan

3

4

3

Belakang kiri

5

6

4

Belakang tengan

9

14

12

Data 4.5.1.pengujian pada uang 20.000
Table 4.5.1.2.pengujian pada uang 20.000
Gambar

R

G

B

Depan kanan

4

4

4

Depan kiri

3

3

3

Depan tengah

9

9

9

Belakang kanan

2

3

3

Belakang kiri

4

4

4

Belakang tengan

5

4

4

Data 4.5.2.pengujian pada uang 50.000
Table 4.5.2.1.pengujian pada uang 50.000
Gambar

R

G

B

Depan kanan

5

5

3

Depan kiri

3

3

3

Depan tengah

7

7

6

Belakang kanan

2

3

2

Belakang kiri

5

5

4

Belakang tengan

6

6

5

Universitas Sumatera Utara

Data 4.5.2.pengujian pada uang 100.000
Table 4.5.2.2.pengujian pada uang 100.000
Gambar

R

G

B

Depan kanan

7

10

7

Depan kiri

3

4

3

Depan tengah

6

9

9

Belakang kanan

2

3

3

Belakang kiri

3

5

4

Belakang tengan

4

7

8

Universitas Sumatera Utara

BAB 5
KESIMPULAN DAN SARAN

5.1 Kesimpulan
Berdasarkan uraian – uraian terdahulu dapat diambil kesimpulan bahwa :
1. Alat pendeteksi nominal uang kertas berbasis arduino uno R3 dengan
menggunakan tampilan LCD 2 x 16 telah bekerja dengan baik.
2. Sensor TCS 3200-DB dapat diaplikasikan sebagai pendeteksi nominal
uang kertas dengan cara membentuk pola range RGB tiap uang kertas
dari keluaran sensor yang berupa frekuensi.

5.2 Saran
Beberapatambahan yang diperlukandalammeningkatkankemampuanalatiniadalah:
1. Untuk hasil yang lebih baik lagi dalam pembacaan uang kertas, alat ini
dapat dipadukan dengan sensor ukuran agar didapatkan hasil pembacaan
error yang lebih kecil.
2. Untuk mendeteksi apakah uang tersebut merupakan uang asli atau palsu
sebaiknya pengembang dapat menambahkan dengan menggunakan
sensor ultraviolet.

Universitas Sumatera Utara