Kamis, 13 Januari 2022

Keypad Dengan Arduino Dan Pembahasan Program

 KEYPAD

Gambar 1. Rangkaian Keypad


Source Code :


#include<Keypad.h>

 

const byte ROWS=4; const byte COLS=4;

char hexaKeys[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 customKeypad=Keypad(makeKeymap(hexaKeys),rowPins,colPins,ROWS,COLS); void setup(){

Serial.begin(9600);

}

void loop(){

char customKey = customKeypad.getKey(); if(customKey){

Serial.println(customKey);

}

}

Pembahasan Program :

Program

Definisi

#include<Keypad.h>

Berfungsi sebagai Headerfile, dimana untuk mengaktifkan fungsi pustaka yang digunakan

untuk keypad.

const byte ROWS=4;

Sebagai deklarasi jumlah baris

const byte COLS=4;

Sebagai deklarasi jumlah kolom

char hexaKeys[ROWS][COLS]={

{'1','2','3','A'},

{'4','5','6','B'},

{'7','8','9','C'},

{'*','0','#','D'},

};

Digunakan    untuk    membentuk                      keterangan tombol-tombol pada keypad

 

byte rowPins[ROWS]={9,8,7,6};

Digunakan untuk mendeklarasikan pin arduino (9,8,7,6) yang terhubung ke pin baris keypad

byte colPins[COLS]={5,4,3,2};

Digunakan untuk mendeklarasikan pin arduino (5,4,3,2) yang terhubung ke pin kolom keypad

Keypad customKeypad= Keypad(makeKeymap(hexaKeys), rowPins,colPins,ROWS,COLS);

Digunakan untuk membuat sebuah objek bernama customkeypad, bertujuan agar arduino memahami bahwa yang digunakan

adalah sebuah keypad 4x4

char customKey = customKeypad.getKey();

Berfungsi     sebagai     pembacaan                    terhadap tombol yang ditekan, dalam hal ini fungsi

get.Key() akan menghasilkan NO_KEY jika tidak ada tombol yang ditekan

if(customKey){ Serial.println(customKey);

}

}

Menyatakan jika terdapat tombol yang ditekan sehingga nilai kode tersebut akan dikirim ke port serial jika nilai tombol ditekan.


Dot Matriks Dengan Arduino Dan Pembahasan Programnnya

 Dot Matriks Untuk Menampilkan Emoji Wajah


Gambar 1. Rangkaian Dot Matriks


Source Code :

#include "LedControl.h" #include "binary.h"

 

LedControl lc=LedControl(11,10,13,1); unsigned long delaytime =100;

 

// happy face

byte hf[8]={B00111100,B01000010, B10100101,B10000001,B10100101,B10011001, B01000010,B00111100};

// neutral face

byte nf[8]={B00111100,B01000010,B10100101,B10000001,B10111101,B10000001, B01000010,B00111100};

//sad face

byte sf[8]={B00111100,B01000010,B10100101,B10000001,B10011001,B10100101, B01000010,B00111100};

void drawFaces(){

//Display sad face lc.setRow(0,0,sf[0]);

lc.setRow(0,1,sf[1]);

lc.setRow(0,2,sf[2]);

lc.setRow(0,3,sf[3]);

lc.setRow(0,4,sf[4]);

lc.setRow(0,5,sf[5]);

lc.setRow(0,6,sf[6]);

lc.setRow(0,7,sf[7]); delay(delaytime);

//Display neutral face lc.setRow(0,0,nf[0]);

lc.setRow(0,1,nf[1]);

lc.setRow(0,2,nf[2]);

lc.setRow(0,3,nf[3]);

lc.setRow(0,4,nf[4]);

lc.setRow(0,5,nf[5]);

lc.setRow(0,6,nf[6]);

lc.setRow(0,7,nf[7]); delay(delaytime);

 

//Display happy face lc.setRow(0,0,hf[0]);

lc.setRow(0,1,hf[1]);

lc.setRow(0,2,hf[2]);

lc.setRow(0,3,hf[3]);

lc.setRow(0,4,hf[4]);

lc.setRow(0,5,hf[5]);

lc.setRow(0,6,hf[6]);

lc.setRow(0,7,hf[7]); delay(delaytime);

} 

void setup(){

lc.shutdown(0,false); lc.setIntensity(0,8); lc.clearDisplay(0);

}

void loop(){ drawFaces();

}


Pembahasan Program :

Program

Definisi

#include "LedControl.h" #include "binary.h"

Berfungsi sebagai Headerfile, dimana untuk

mengaktifkan       fungsi       pustaka                             yang digunakan pada lledcontrol dan binary

LedControl lc=LedControl(11,10,13,1);

nomor pin yang digunakan pada board Arduino dan disesuaikan dengan penempatan pada IC MAX7219, dimana DIN

ke pin 11, CLK ke pin10, dan CS ke pin 13

unsigned long delaytime =100;

Digunakan untuk waktu tunda pergantian tampilan selam 100 mS

bytehf[8]={B00111100,B01000010, B10100101,B10000001,B10100101,B10011001,

B01000010,B00111100};

Program ini merupakan perwakilan. Dimana program ini untuk memberikan instruksi Setiap byte berisi 8 nilai yang kemudian akan mewakili setiap baris. Misalnya B0011100, bahwa terdapat 4 led yang berlogika 1 (HIGH) dan 2 awal baris dan 2 akhir baris pertama berlogika 0 (LOW) dan seterusnya pada setiap baris yang digunakan untuk menampilkan karakter suatu karakter. Untuk lebih jelas terdapat

pada gambar 7

void drawFaces(){

//Display sad face lc.setRow(0,0,sf[0]);

lc.setRow(0,1,sf[1]);

lc.setRow(0,2,sf[2]);

lc.setRow(0,3,sf[3]);

lc.setRow(0,4,sf[4]);

lc.setRow(0,5,sf[5]);

lc.setRow(0,6,sf[6]);

lc.setRow(0,7,sf[7]); delay(delaytime);

 

//Display neutral face lc.setRow(0,0,nf[0]);

lc.setRow(0,1,nf[1]);

lc.setRow(0,2,nf[2]);

lc.setRow(0,3,nf[3]);

lc.setRow(0,4,nf[4]);

lc.setRow(0,5,nf[5]);

lc.setRow(0,6,nf[6]);

lc.setRow(0,7,nf[7]); delay(delaytime);

 

//Display happy face

hanya memanggil ledControl dan menyetel baris dari 0-7 dengan bit-1 yang sesuai dengan baris pertama dan seterusnya. Setelah setiap wajah ada penundaan 100 ms dan kemudian melompat ke wajah berikutnya dan terus berjalan.


Seven Segment Dengan Arduino Dan Pembahasan Program

 Seven Segment



Gambar 1. Rangkaian Seven Segment

Source Code :

const byte numeral[10]={ B11111100,//0 B01100000,//1 B11011010,//3 B11110010,//4 B10110110,//5 B10111110,//6 B11100000,//7 B11111110,//8 B11110110,//9

};

const int segmentPins[8] = {1,8,9,7,6,5,11,10}; void setup(){

for(int j=0;j<8;j++){ pinMode(segmentPins[j],OUTPUT);

}

}

void writedigit(int digit){ bool bitset;

for(int i=0;i<8;i++){

bitset = bitRead(numeral[digit],i); digitalWrite(segmentPins[i],bitset);

}

}

Pembahasan Program :


Program

Definisi

const byte numeral [10]={ B11111100,//0 B01100000,//1 B11011010,//2 B11110010,//3 B01100110,//4 B10110110,//5 B10111110,//6 B11100000,//7 B11111110,//8 B11110110,//9

};

Konstanta “numeral” digunakan untuk menampilkan 7 segment dalam bentuk angka. Byte disamping merupakan angka yang diatur sedemikian rupa sehingga membentuk angka yang diatur sedemikian rupa sehingga membentuk angka pada 7 segment, misalkan byte B01100000 akan menyalakan kedua lampu yang paling kanan dari 7 segment dan membentuk angka 1 dan seterusnya

const int segmentPins[8] =

{1,8,9,7,6,5,11,10};

nomor pin yang digunakan pada board

Arduino dan disesuaikan dengan penempatan kaki-kaki 7-segmen

void setup(){

for(int j=0;j<8;j++){ pinMode(segmentPins[j],OUTPUT);

}

}

Program ini untuk masing-masing pin yang telah didefinisikan sebelumnya akan di-set sebagai output


LCD atau Liquid-Crystal Display 16x2 Dengan Arduino Dan Pembahasan Program

 


LCD atau Liquid-Crystal Display

Gambar 1. Rangkaian LCD

Source Code :

#include <LiquidCrystal.h>

 

const int rs = 7, en = 8, d4 = 9, d5 = 10, d6 = 11, d7 = 12; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

 

void setup (){ lcd.begin(16,2); lcd.print("hello, world!");

}

 

void loop(){ lcd.setCursor(0,1); lcd.print(millis()/1000);

}

Pembahasan Program :

Program

Definisi

#include <LiquidCrystal.h>

Berfungsi sebagai Headerfile, dimana untuk

mengaktifkan fungsi pustaka yang digunakan pada lcd.

const int rs = 7, en = 8, d4 = 9, d5 = 10, d6 = 11, d7 = 12;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Berfungsi sebagai instruksi atau perintah pin- pin LCD yang terhubung adalah “rs, en, d4, d5, d6, d7” kedalam pin-pin pada board

arduino yaitu “7,8,9,10,11,12”

void setup (){ lcd.begin(16,2); lcd.print("hello, world!");

}

lcd.begin(16,2) untuk memberitahu board arduino jenis LCD yang digunakan adalah 16x2 yang berarti memiliki 16 baris dan 2 kolom.

 

lcd.print("hello world!"); menggunakan iintstruksi print untuk teks/huruf yang akan ditampilkan di dalam LCD berada dalam

tanda {“..”} yaitu hello world

 

lcd.setCursor(0,1);

Berfungsi untuk mengeset lokasi koordinat(baris, kolom) dan menyeting cursor hitungan dimana dipasang pada kolom 0, baris 1, dimana baris 1 adalah row k ke 2 karena

perhitungan digital mulai dari angka 0

lcd.print(millis()/1000);

Untuk menghitung detik sejak program dijalankan ulang.a dimana 1000 sebagai batas akhirnya








Keypad Dengan Arduino Dan Pembahasan Program

 KEYPAD Gambar 1. Rangkaian Keypad Source Code : #include<Keypad.h>   const byte ROWS=4; const byte COLS=4; char hexaKeys[...