Archive for Juni 2017
TUGAS KE 2 ALGORITMA DAN PEMROGRAMAN
TUGAS 2 ALGORITMA DAN PEMROGRAMAN
Listing Program TUGAS 1
#include <EEPROM.h> // Memanggil Library EEPROM
#include <SPI.h> // Memanggil Library SPI
#include <MFRC522.h> // Memanggil Library
MFRC522
#include <LiquidCrystal.h>
LiquidCrystallcd(7, 6, 5, 4, 3, 2); //Inisialisasi pin
lcdpadaarduino
boolean match = false;
booleanprogramMode = false;
byte storedCard[4];
byte readCard[4];
byte masterCard[4] = {0x30,0x08,0xda,0x0e}; // UID
kartu yang diijinkanmasuk : EC9FE97
byte masterCard1[4] = {0x0D,0x13,0xed,0x6c}; // UID
kartu yang diijinkanmasuk : EC9FE97
int count = 0;
int motor1 = A0; Inisialisasi
pin motor dcpadaarduino
int motor2 = A1;
#define SS_PIN 10 Inisialisasi
pin SS dan RST mfrc522padaarduino
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup() {
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
lcd.begin(16,2);
pinMode (motor1, OUTPUT);
pinMode (motor2, OUTPUT); //tampilanawal output padalcd
lcd.setCursor(0,0);lcd.print(" SelamatDatang
");
lcd.setCursor(0,1);lcd.print(" Di TPS
");
delay(5000);
lcd.clear();
lcd.setCursor(0,0);lcd.print("Total :");
lcd.setCursor(8,0);lcd.print(" KOSONG ");
}
void loop ()
{
intsuccessRead;
do
{
successRead = getID();
}
while
(!successRead);
if
(isMaster(readCard)) // Jikakartu yang di didekatkankepembacaadalah MasterCard
(EC9FE97) Makaakanmuncul :
{
count++;
Serial.println("Anda di izinkan untuk masuk!");
Serial.println("");
Serial.println("===================================================");
Serial.println("");
lcd.setCursor(0,0);
lcd.print(" SelamatDatang ");
lcd.setCursor(0,1);
lcd.print("PemilihKe:");
lcd.setCursor(12,1);
lcd.print(count);
lcd.setCursor(14,1);
lcd.print(" ");
Serial.println(count);
digitalWrite (motor1, HIGH);
digitalWrite (motor2, LOW);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, LOW);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, HIGH);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, LOW);
}
else //
Jikakartu yang didekatkankepembaca BUKAN MasterCard (EC9FE97) Makaakanmuncul :
{
Serial.println("Anda DILARANG MASUK !!");
Serial.println("");
Serial.println("===================================================");
Serial.println("");
lcd.setCursor(0,0);
lcd.print("
MAAF ");
lcd.setCursor(0,1);
lcd.print("ANDA DILARANG!!!");
delay(1000);
lcd.clear();
}
lcd.setCursor(0,0);
lcd.print(" SelamatDatang ");
lcd.setCursor(0,1);
lcd.print("total:");
lcd.setCursor(6,1);
lcd.print(count);
lcd.setCursor(8,1);
lcd.print(" ");
Serial.println(count);
}
intgetID()
{
if ( !
mfrc522.PICC_IsNewCardPresent())
{
return 0;
}
if ( !
mfrc522.PICC_ReadCardSerial())
{
return 0;
}
Serial.print("NOMOR ID ANDA ADALAH : ");
for (byte i =
0; i< mfrc522.uid.size; i++) {
readCard[i] = mfrc522.uid.uidByte[i];
Serial.print(readCard[i], HEX);
}
Serial.println("");
Serial.println("");
mfrc522.PICC_HaltA();
return 1;
}
void readID( int number ) {
int start = (number * 4 ) - 3;
for ( inti =
0; i< 4; i++ ) {
storedCard[i] = EEPROM.read(start+i);
}
}
booleancheckTwo( byte a[], byte b[] ) {
if ( a[0] !=
NULL )
match =
true;
for ( int k =
0; k < 4; k++ ) {
if ( a[k] !=
b[k] )
match =
false;
}
if ( match ) {
return true;
}
else {
return
false;
}
}
booleanisMaster( byte test[] ) {
if ( checkTwo(
test, masterCard1 ) )
return true;
if (
checkTwo( test, masterCard ) )
return true;
else
return
false;
NO
|
LISTING PROGRAM
|
PENJELASAN
|
1.
|
#include <EEPROM.h>
|
Memanggil Library EEPROM pada arduino
|
2.
|
#include <SPI.h>
|
Memanggil Library SPI pada arduino
|
3.
|
#include <MFRC522.h>
|
Memanggil Library MFRC522 pada arduino
|
4.
|
#include <LiquidCrystal.h>
|
Memanggil Library LCD pada arduino
|
5.
|
LiquidCrystallcd(7, 6, 5, 4, 3, 2);
|
Maksud dari listing ini adalah, mengatur letak
dimana port yang akan kita gunakan nanti, yaitu di port(7,6,5,4,3,2);
|
6.
|
boolean match = false;
|
Merupakan penjelasan bahwa nilai variable Boolean
match bernilai false/tidak aktif
|
7.
|
booleanprogramMode = false;
|
Merupakan penjelasan bahwa nilai variable
booleanprogrammatchnya=false atau tidak aktif
|
8.
|
byte storedCard[4];
byte readCard[4];
|
Merupakan penjelasan bahwa kartu penyimpaan dan
pembaca kartunya dalam bentuk byte dan memiliki 4 kartu
|
9.
|
bytemasterCard[4]={0x30,0x08,0xda,0x0e};
|
Merupakan penjabaran dari kartu yang akan di dapat
di tag ataupun diizinkan nanti yang barcode EC9FE97
|
10.
|
bytemasterCard1[4]={0x0D,0x13,0xed,0x6c};
|
Merupakan penjabaran dari kartu yang tidak dapat di tag ataupun diizinkan nanti yang
barcode EC9FE97
|
11.
|
int count = 0;
int motor1 = A0;
int motor2 = A1;
|
Penjabaran tentang nilai integer pada arduino = 0
dan tempat penempatan pin pada arduino motor ada di pin A0 & A1.
|
12.
|
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
|
Memanggil library SS dan RST pada pin 10 dan 9 serta
menempatkan Inisialisasi pin SS dan RST mfrc522 pada arduino.
|
13.
|
void setup() {
Serial.begin(9600);
|
membuka serial port, mensetting kecepatan data
ke9600bps
|
14.
|
SPI.begin();
|
Memulai untuk menjalankan kodingan SPI sesuai dengan
pemanggilan library awal.
|
15.
|
mfrc522.PCD_Init();
|
Merupakan penginialisasian mfrc522 pada PCD di arduino.
|
16.
|
lcd.begin(16,2);
|
Merupakan pemrograman yang menjelaskan bahwa lcd
yang kita pakai 16 * 2.
|
17.
|
pinMode (motor1, OUTPUT);
pinMode (motor2, OUTPUT);
|
Mengatur pinnya sebagai output dari input yang telah
kita koding yaitu outputnya berupa motor1 dan motor2.
|
18
|
lcd.setCursor(0,0);lcd.print(" SelamatDatang
");
lcd.setCursor(0,1);lcd.print(" Di TPS ");
delay(5000);
|
Merupakan pengaturan pada baris ke 0 dan kolom ke 0
dengan tulisan “selamat datang”.
pengaturan pada baris ke 0 dan kolom ke 1 dengan
tulisan “ DiTPS”.
Setelah ituh dia akan mendelay selama 5 detik
|
19.
|
lcd.clear();
lcd.setCursor(0,0);lcd.print("Total :");
lcd.setCursor(8,0);lcd.print(" KOSONG ");
}
|
Menghapus LCD setelah dia melakukan pengaturan LCD.
Lalu mengatur lagi pada baris ke 0 kolok ke 0 dengan tulisan”total” dan Lalu
mengatur lagi pada baris ke 8 kolok ke 0 dengan tulisan”kosong”
|
20.
|
void loop ()
{
intsuccessRead;
do
{
successRead = getID();
}
|
Menjelaskan bahwa variable successread itu bersifat
integer. Lalu variable tersebut melakukan perulangan. Yang merupakan jika
variable successRead dia akan mendapatkan ID dari listing yang pertama
dikoding tadi.
|
21.
|
while
(!successRead);
if
(isMaster(readCard))
count++;
Serial.println("Anda di izinkan untuk masuk!");
Serial.println("");
Serial.println("===========================");
Serial.println("");
|
Jika kartu
yang di didekatkan kepembaca
adalah
MasterCard (EC9FE97) Maka akan
muncul
tulisan pada tampilan serial monitor di arduino “Anda di izinkan untuk masuk”
|
22.
|
lcd.setCursor(0,0);
lcd.print(" SelamatDatang ");
lcd.setCursor(0,1);
lcd.print("PemilihKe:");
lcd.setCursor(12,1);
lcd.print(count);
lcd.setCursor(14,1);
lcd.print(" ");
Serial.println(count);
|
Lalu program akan mengatur lagi tampilan output LCD
pada baris dan kolom 0 dengan tulisan “selamatdatang”. Dan kembali mengatur
lagi tampilan output LCD pada baris 0 dan kolom 1 dengan tulisan “Pemilih
ke”.
Dan pada kolom 12 baris ke 1 dia akan otomatis
menghitung jumlah seterusnya sesuai dengan perulangan diawal tadi. Dan pada
kolom 1baris ke 1 dia akan menampilkan otomatis pada monitor diarduino sesuai
dengan urutan selanjutnya.
|
23.
|
digitalWrite (motor1, HIGH);
digitalWrite (motor2, LOW);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, LOW);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, HIGH);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, LOW);
|
Lalu motor1 akan bergerak. Setelah delay yang telah
diatur waktunya, maka motor keduanya akan mati sesuai dengan kondisi.
Kemudian motor2 akan bergerak lagi. Setelah delay keduakalinya dia akan mati.
|
24.
|
else
{
Serial.println("Anda DILARANG MASUK !!");
Serial.println("");
Serial.println("====================");
|
Jika Jikakartu yang didekatkan kepembaca BUKANMasterCard(EC9FE97) Maka
akan
muncul :
“Anda DILARANG MASUK”
|
25.
|
Serial.println("");
lcd.setCursor(0,0);
lcd.print("
MAAF ");
lcd.setCursor(0,1);
lcd.print("ANDA DILARANG!!!");
delay(1000);
lcd.clear();
|
Lalu program akan mengatur lagi tampilan output LCD
pada baris dan kolom 0 dengan tulisan “MAAF”. Dan kembali mengatur lagi
tampilan output LCD pada baris 0 dan kolom 1 dengan tulisan “ANDA DILARANG”.
Dan pada kolom 12 baris ke 1 dia akan otomatis
menghitung jumlah seterusnya sesuai dengan perulangan diawal tadi. Dan pada
kolom 1baris ke 1 dia akan menampilkan otomatis pada monitor diarduino sesuai
dengan urutan selanjutnya.
|
26.
|
}
lcd.setCursor(0,0);
lcd.print(" SelamatDatang ");
lcd.setCursor(0,1);
lcd.print("total:");
lcd.setCursor(6,1);
lcd.print(count);
lcd.setCursor(8,1);
lcd.print(" ");
Serial.println(count);
}
|
Setela,h ituh LCD akan mengulang kembali tampilan
nya pada baris dan kolom 0 dengan tulisan selamat datang, dan pada baris 0
kolom 1 akan ada tulisan “total” pada LCD, dan pada kolom 6 baris ke 1 dia akan
mneghitung ulang kembali. Lalu pada kolom 8 baris ke 1 serial monitor pada arduino akan otomatis menghitung
urutan selanjutnya.
|
27.
|
intgetID()
{
if ( !
mfrc522.PICC_IsNewCardPresent())
{
return 0;
}
if ( !
mfrc522.PICC_ReadCardSerial())
{
return 0;
}
|
Untuk mengautentifikasikan kartu RFID.
|
28.
|
|
|
SEKIAN DARI SAYA. TUGAS INI MURNI SAYA YANG MEMBUATNYA SENDIRI DAN ADA HAK CIPTANYA AGAR TIDAK MENGCOPAS MAKASIH.