Skip to main content

Rangkaian Percobaan


Alat Pengukur Tinggi dengan Password

1. Hardware [back]

  1. Arduino Uno
  2. LCD
  3. Ultasonic Sensor
  4. LED
  5. Breadboard
  6. Potensio 10k
  7. Jumper
  8. Keypad

2. Rangkaian Alat [back]


Rangkaian Simulasi

3. Prinsip Kerja Rangkaian [back]

     Prinsip kerja dari alat ini adalah, program Arduino menginstruksikan kepada LCD untuk menampilkan karakter. Program tidak akan lanjut jikalau password atau karakter yang diinputkan melalui keypad salah, jika password yang di masukkan benar, maka sensor akan mulai mendeteksi jarak objek, posisi sensor ultrasonic diletakkan sejauh 200m dari atas tanah. Nilai tinggi badan didapatkan dari 200 meter yang dikurangi jarak yang didapatkan oleh sensor ultrasonic sebelumnya, selanjutnya Arduino mengistruksikan LCD untuk menampilkan nilai Tinggi.

4. Flowchart [back]



5. Listing Program [back]

#include <Password.h>
#include <Keypad.h>
#include <LiquidCrystal.h>
#define echoPin 11
#define trigPin 10
#define ledr 13
#define ledg 12
Password password = Password("1234");//Password bisa di ubah ubah
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);// pin lcd yang di gunakan
int posisi = 200;
int tinggi;
long duration, jarak;
byte currentLength = 0;
const byte ROWS= 4; //baris pada keypad
const byte COLS= 4; //Kolom pada keypad
/*keymap mendefinisikan tombol ditekan sesuai
dengan baris dan kolom seperti muncul pada keypad*/
char keys[ROWS][COLS] =
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS]= {9,8,7,6};
byte colPins[COLS]= {5,4,3,2};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(ledr, OUTPUT);
  pinMode(ledg, OUTPUT);
  //sumber diambil pada examples di library password.
  keypad.addEventListener(keypadEvent);
  lcd.begin(16, 2);
  lcd.setCursor(3, 0);
  lcd.print("PENGUKURAN");
 
  lcd.setCursor(2, 1);
  lcd.print("TINGGI BADAN");
  delay(500);
  lcd.clear();
}
// Jika tombol ditekan, tombol ini disimpan dalam 'keypressed' variabel
// Jika kunci tidak sama dengan 'NO_KEY', maka tombol ini dicetak
// Jika jumlah = 17, maka penghitungan reset kembali ke 0 (ini berarti tidak ada tombol yang ditekan selama proses pemindaian seluruh keypad
void loop(){
  lcd.setCursor(0, 0);
  lcd.print("Masukan Password");
  lcd.setCursor(0,1);
  lcd.print("Pass: ");
  keypad.getKey();;
 
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  jarak = (duration/2)/29.1;
  tinggi = posisi - jarak;
}
void checkPassword(){
   if(password.evaluate()){         
      lcd.clear();
      lcd.print("Berhasil");
      delay(500);
      lcd.clear();
      lcd.setCursor(2,0);
      lcd.println("Tinggi Badan");
      lcd.setCursor(0,1);
      lcd.print("Tinggi = ");
      lcd.print(tinggi);
      lcd.setCursor(14,1);
      lcd.print("cm");
     
      if (tinggi <= 165){
      digitalWrite(ledg, LOW);
      digitalWrite(ledr, HIGH);
      }
     
      else if (tinggi >= 166){
      digitalWrite(ledg, HIGH);
      digitalWrite(ledr, LOW);
      }
     
      delay(2500);
   }
  
   else {
      lcd.clear();
      lcd.print("Salah coba lagi");
      delay(500);
   }
}
void keypadEvent(KeypadEvent eKey){
  switch (keypad.getState()){ 
    case PRESSED:
    lcd.setCursor(0,1);
    lcd.print(eKey);
    switch (eKey){
      case '*': checkPassword(); lcd.clear(); currentLength=0;break;
      case '#': password.reset(); lcd.clear();currentLength=0; break;
      default:// password.append(eKey);
        password << eKey;
        currentLength++;
       
        //Print some feedback.
        lcd.setCursor(0,1);
        lcd.print("Pass: ");
        for (byte i=0; i<currentLength; i++){
          lcd.print('*');
        } 
    }
  } 
}

6. Video [back]

Video Simulasi


Demosntrasi Alat

7. Link Download [back]

Comments

Popular posts from this blog

COVER

KULIAH DAN PRAKTIKUM Dibuat dan Dipublikasikan untuk Memenuhi Tugas Kuliah Elektronika dan Sistem Digital Mikroprosessor dan Mikrokontroller By: Adelina Utari 1610952030 Dosen Pembimbing : Darwison, M.T TEKNIK ELEKTRO FAKULTAS TEKNIK PADANG 2018 Referensi: Hall, D. V., “Microprocessors and Interfacing: Programming and Hardware”, McGraw-Hill, Inc., New York Darwison, 2010, Teknik Interface: Perancangan Hardware dan simulasi Software serta Aplikasinya”, Unand Press, Padang. Darwison, 2009, “Panduan Praktikum Elektronika Digital”, Teknik Elektro – Unand, Padang. Darwison, 2009, “Diktat Mikroprosesor”, Teknik Elektro – Unand, Padang Gaonkar, S., 1988, “Microprocessors, Architecture, Programming, and Interfacing”, Jhon Wiley and Sons. Rachmad Setiawan, 2006, “Teknik Interface”, Graha Ilmu, Yogyakarta. John Crisp, Introduction to Microprocessors and Microcontrollers, 2nd edition, Newness, 2004. Darwis...