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
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