BAB 3
METODE PENELITIAN
3.1. Diagram Blok Sistem
Arduino uno Sensor warna
Power Supply
LCD
buzzer
Gambar 3.1 Diagram blok system
3.1.1. Fungsi-fungsi diagram blok
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. Blok buzzer sebagai indikator
3.2. Rangkaian Arduino uno
Gambar 3.2 rangkaian arduino uno
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
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
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.7 Flowchart Sistem
Inialisasi Start
Deteksi Warna Uang
Selesai Konversi data
analog
Tampil LCD Suara
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);
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 countR=0,countG=0,countB=0;
void setup()
{
Serial.begin(115200);
pinMode(s0,OUTPUT);
pinMode(s1,OUTPUT);
pinMode(s2,OUTPUT);
attachInterrupt(0, ISR_INTO, CHANGE);
timer2_init();
}
void ISR_INTO()
{
counter++;
}
void timer2_init(void)
{
TCCR2A=0x00;
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
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);
}
{
countG=counter/1.0157;
Serial.print("green=");
Serial.println(countG,DEC);
digitalWrite(s2,LOW);
digitalWrite(s3,HIGH);
}
else if(flag==4)
delay(10);
else if((countG>=countR)&&(countG>countB))
{
Serial.print("green");
Serial.print("\n");
delay(1000);
}
else if((countB>countG)&&(countB>countR))
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.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {
lcd.begin(16, 2);
}
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.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {
TCS3200setup();
lcd.begin(16, 2);
Serial.begin(9600);
delay(100);
// 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...");
else if (red == 10 || red == 11 && green == 14 ||
green == 13 && 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 == 14 ||
green == 15 && 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 == 12 ||
green == 13 && blue ==10 || blue ==11 && white == 4)
{
lcd.setCursor(0,0);
lcd.print("Uang terdeteksi");
lcd.setCursor(0,1);
lcd.print("Rp 50.000");
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");
}
// 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){
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;
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
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
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
BAB 5
KESIMPULAN DAN SARAN
5.1Kesimpulan
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.