Posted by : Unknown Senin, 05 Juni 2017

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.

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © CHRISTIAN MANASYE - Skyblue - Powered by Blogger - Designed by Johanes Djogan -