Thursday, January 12, 2017

Seven Segment + Keyboard Arduino Tutorial! Easy for Beginners (in Indonesia)



1.     Implementasi Seven Segment dan Keypad Membran dengan Mikrocontroller Arduino UNO R3

1.1                        Teori

Kali ini penulis mencoba untuk menggabungkan fungsi seven segment dengan keypad, saat tombol keypad ditekan makan angka yang ditekan pada keypad akan muncul pada LED Seven Segment.

1.2                        Percobaan
Pada percobaan ini, penulis menggunan Seven Segment Anoda, jadi jangan salah ya, jangan sampai tertukar dengan Katoda!
Bahan-bahan :
1.     Protoboard
2.     1 buah LED Seven Segment (ANODA)
3.     Keypad Membran 3x4
4.     Kabel jumper
5.     Arduino UNO R3

Langkah-langkah :
1.     Hubungkan pin-pin pada Keypad 3x4 pada pin 2-8 pada Arduino UNO R3
2.     Masukkan seven segment pada protoboard dan hubungkan pinA sampai pinG pada seven segment dengan pin pada arduino dengan urutan sebagai berikut :

int pinA = 9;
int pinB = 10;
int pinC = 11;
int pinD = 12;
int pinE = 13;
int pinF = A0;
int pinG = A1;
3.     Jangan lupa hubungkan pin VCC pada seven segment ke arus (+) pada protoboard
4.     Jangan lupa ya hubungkan rangkaian pada protoboard ke arduino melalui pin GND dan VCC
5.     Jalankan program dengan memnghubungkan Arduino UNO R3 ke PC atau laptop menggunakan Kabel Serial, lalu upload source code. 

Untuk lebih jelasnya, rangkaian nya seperti dibawah ini :



1.2                         Program

//pastikan library keypad telah ada pada arduino ya
#include
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS]= {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'},
};
 
byte rowPins[ROWS]={2,3,4,5};
byte colPins[COLS]={6,7,8};

Keypad keypad = Keypad ( makeKeymap(keys), rowPins, colPins, ROWS, COLS);

int pinA = 9;
int pinB = 10;
int pinC = 11;
int pinD = 12;
int pinE = 13;
int pinF = A0;
int pinG = A1;

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(pinA, OUTPUT);
  pinMode(pinB, OUTPUT);
  pinMode(pinC, OUTPUT);
  pinMode(pinD, OUTPUT);
  pinMode(pinE, OUTPUT);
  pinMode(pinF, OUTPUT);
  pinMode(pinG, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
   char key = keypad.getKey();
  
   switch(key){
   case '0':
  digitalWrite(pinA, LOW);
  digitalWrite(pinB, LOW);
  digitalWrite(pinC, LOW);
  digitalWrite(pinD, LOW);
  digitalWrite(pinE, LOW);
  digitalWrite(pinF, LOW);
  digitalWrite(pinG, HIGH);break;
   case '1':
  digitalWrite(pinA, HIGH);
  digitalWrite(pinB, LOW);
  digitalWrite(pinC, LOW);
  digitalWrite(pinD, HIGH);
  digitalWrite(pinE, HIGH);
  digitalWrite(pinF, HIGH);
  digitalWrite(pinG, HIGH);break;
    case '2':
  digitalWrite(pinA, LOW);
  digitalWrite(pinB, LOW);
  digitalWrite(pinC, HIGH);
  digitalWrite(pinD, LOW);
  digitalWrite(pinE, LOW);
  digitalWrite(pinF, HIGH);
  digitalWrite(pinG, LOW);break;
    case '3':
  digitalWrite(pinA, LOW);
  digitalWrite(pinB, LOW);
  digitalWrite(pinC, LOW);
  digitalWrite(pinD, LOW);
  digitalWrite(pinE, HIGH);
  digitalWrite(pinF, HIGH);
  digitalWrite(pinG, LOW);break;
    case '4':
  digitalWrite(pinA, HIGH);
  digitalWrite(pinB, LOW);
  digitalWrite(pinC, LOW);
  digitalWrite(pinD, HIGH);
  digitalWrite(pinE, HIGH);
  digitalWrite(pinF, LOW);
  digitalWrite(pinG, LOW);break;
    case '5':
  digitalWrite(pinA, LOW);
  digitalWrite(pinB, HIGH);
  digitalWrite(pinC, LOW);
  digitalWrite(pinD, LOW);
  digitalWrite(pinE, HIGH);
  digitalWrite(pinF, LOW);
  digitalWrite(pinG, LOW);break;
    case '6':
  digitalWrite(pinA, LOW);
  digitalWrite(pinB, HIGH);
  digitalWrite(pinC, LOW);
  digitalWrite(pinD, LOW);
  digitalWrite(pinE, LOW);
  digitalWrite(pinF, LOW);
  digitalWrite(pinG, LOW);break;
    case '7' :
  digitalWrite(pinA, LOW);
  digitalWrite(pinB, LOW);
  digitalWrite(pinC, LOW);
  digitalWrite(pinD, HIGH);
  digitalWrite(pinE, HIGH);
  digitalWrite(pinF, HIGH);
  digitalWrite(pinG, HIGH);break;
  case '8' :
  digitalWrite(pinA, LOW);
  digitalWrite(pinB, LOW);
  digitalWrite(pinC, LOW);
  digitalWrite(pinD, LOW);
  digitalWrite(pinE, LOW);
  digitalWrite(pinF, LOW);
  digitalWrite(pinG, LOW);break;
  case '9' :
  digitalWrite(pinA, LOW);
  digitalWrite(pinB, LOW);
  digitalWrite(pinC, LOW);
  digitalWrite(pinD, LOW);
  digitalWrite(pinE, HIGH);
  digitalWrite(pinF, LOW);
  digitalWrite(pinG, LOW);break;
 
   
   char key = keypad.getKey();
  
   }
}



Mudah bukan! Selamat Mencoba :)