Aplikasi Switch dan 7 Segment Menggunakan Arduino











Tujuan [Kembali]

7 Segment menampilkan angka sesuai dengan keypad


Alat dan Bahan [Kembali]


1. Arduino Uno R3
2. Seven-Segment Common Cathode
3. Resistor 220 Ohm
4. Arduino IDE
5. Proteus


Teori [Kembali]


1. Arduino Uno R3
Arduino Uno R3 adalah papan pengembangan mikrokontroler yang berbasis chip ATmega328P. Arduino Uno memiliki 14 digital pin input / output (atau biasa ditulis I/O, dimana 14 pin diantaranya dapat digunakan sebagai output PWM antara lain pin 0 sampai 13), 6 pin input analog, menggunakan crystal 16 MHz antara lain pin A0 sampai A5, koneksi USB, jack listrik, header ICSP dan tombol reset. Hal tersebut adalah semua yang diperlukan untuk mendukung sebuah rangkaian mikrokontroler. Spesifikasi arduino uno R3 dapat dilihat pada tabel 2.1 dan arduino uno R3 dapat dilihat pada gambar 2.1.



2. Seven-Segment

segment adalah suatu segmen segmen yang digunakan untuk menampilkan angka yang terdiri dari 1 atau 2 light emitting diode (LED), Bisa juga disebut angka digital.

Ada 2 jenis7 Segment yaitu, 7 Segment common cathode Dan 7 Segment common anode.

Sama seperti LED dimana 7 segment common cathode salah satu pin nya adalah ground. Begitu juga sebaliknya 7 segment dari common anode salah satu pin nya adalah Vcc.




4. Keypad

Keypad merupakan antarmuka antara komunikasi perangkat elektronik dengan manusia yang disebut dengan istilah HMI (Human Machine Interface).
Keypad tersusun atas 16 buah push button yang dirangkai dengan konfigurasi dalam bentuk matrix, sehingga memiliki index baris dan kolom sehingga pin input ke Arduino dapat dikurangi.
Proses pembacaan dilakukan secara maktriks yaitu dengan menggunakan teknik scanning, dan pada proses tersebut hal yang dilakukan dengan memberikan umpan data pada 1 bagian dan memantau akan adanya feedback /umpan balik pada bagian lainnya.
Umpan data dilakukan di bagian baris dan feedback yang ada dilakukan pengecekan pada bagaian kolom.
Kondisi saat baris diberikan umpan data, baris lainnya dalam kondisi inversi.
Berikut contoh penekanan tombol keypad yang mudah diketahui dengan mencermati akan baris dan kolom mana yang ditekan :
Prinsip kerja keypad 4x4
Keypad yang ditekan pada no.5
B = Baris, K = Kolom.
Pada gambar ilustrasi diatas, penekanan tombol keypad yang ditekan yaitu “5”.
Seperti terlihat bahwa Baris-2 bernilai LOW, sedangkan Baris-1, Baris-3, dan Baris-4 adalah bernilai HIGH.
Kemudian dari ilustrasi tersebut diketahui bahwa data berasal dari penekanan Baris-2, dengan umpan balik pada Kolom-2, sehingga dapat disimpulkan bahwa tombol keypad yang ditekan yaitu “5”.
Sumber:

Rangkaian [Kembali]


7 Segment akan menampilkan angka sesuai dengan angka tombol keypad yang ditekan. Awalnya seluruh pin baris dan kolom pada keypad diset menjadi LOW (pin kolom = A2, A3, A4, A5 dan pin baris = 4, 5, 6).
  • Saat ditekan tombol #1 maka pin A5 dan pin 4 menjadi HIGH, sehingga pin 12 dan pin 11 berlogika '1', sedangkan pin 13, 10, 9, 8, 7 berlogika '0'. Maka tampil angka '1' di 7 Segment.
  • Saat ditekan tombol #2 maka pin A5 dan pin 5 menjadi HIGH, sehingga pin 13, 12, 10, 9, 7 berlogika '1', sedangkan pin 11 dan pin 8 berlogika '0'. Maka tampil angka '2' di 7 Segment.
  • Saat ditekan tombol #3 maka pin A5 dan pin 6 menjadi HIGH, sehingga pin 13, 12, 11, 7 berlogika '1', sedangkan pin 9 dan pin 8 berlogika '0'. Maka tampil angka '3' di 7 Segment.
  • Saat ditekan tombol #4 maka pin A4 dan pin 4 menjadi HIGH, sehingga pin 12, 11, 7 berlogika '1', sedangkan pin 13, 10, 9 berlogika '0'. Maka tampil angka '4' di 7 Segment.
  • Saat ditekan tombol #5 maka pin A4 dan pin 5 menjadi HIGH, sehingga pin 13, 11, 10, 8, 7 berlogika '1', sedangkan pin 12 dan pin 9 berlogika '0'. Maka tampil angka '5' di 7 Segment.
  • Saat ditekan tombol #6 maka pin A4 dan pin 6 menjadi HIGH, sehingga pin 13, 11, 10, 9, 8, 7 berlogika '1', sedangkan pin 12 berlogika '0'. Maka tampil angka '6' di 7 Segment.
  • Saat ditekan tombol #7 maka pin A3 dan pin 4 menjadi HIGH, sehingga pin 13, 12, 11 berlogika '1', sedangkan pin 10, 9, 8, 7 berlogika '0'. Maka tampil angka '7' di 7 Segment.
  • Saat ditekan tombol #8 maka pin A3 dan pin 5 menjadi HIGH, sehingga pin 13, 12, 11, 10, 9, 8, 7 berlogika '1'. Maka tampil angka '8' di 7 Segment.
  • Saat ditekan tombol #9 maka pin A3 dan pin 6 menjadi HIGH, sehingga pin 13, 12, 11, 10, 8, 7 berlogika '1', sedangkan pin 9 berlogika '0'. Maka tampil angka '9' di 7 Segment.
  • Saat ditekan tombol #0 maka pin A2 dan pin 5 menjadi HIGH, sehingga pin 13,12, 11,10, 9, 8 berlogika '1', sedangkan pin 7 berlogika '0'. Maka tampil angka '0' di 7 Segment.

Flowchart [Kembali]



Program [Kembali]


#include <sevenSegmentDisplay.h>
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
//define the cymbols on the buttons of the keypads
char keypadArray[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {6, 5, 4, 3}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {2, 1, 0}; //connect to the column pinouts of the keypad

//initialize an instance of the Keypad class
Keypad myKeypad = Keypad(makeKeymap(keypadArray), rowPins, colPins, ROWS, COLS);
//create a 7 Segment Display library intance
sevenSegmentDisplay ssd(COMMON_ANODE, 13, 12, 11, 10, 9, 8, 7, A0);

void setup() {
}

void loop() {
  char key = myKeypad.getKey();
  int num = key - '0';

  if (key) {
    if (key == '*' || key == '#') {       
    } else {
      ssd.set(num);
    }
  }
}

Program ini menggunakan Library Keypad dan SevenSegmentDisplay.


Download Rangkaian(Proteus), Code(Arduino IDE), dan Video tutorial:

Image result for download