Sunteți pe pagina 1din 30

Percobaan 2

Perangkat Display
Seven Segmen
1. Bentuk Komponen 7 segmen 2. Simbul 7 Segmen di Proteus

3. Rangkaian led CC dan CA 4. Posisi Segmen a hingga h


Menampilkan Karakter pada display 7 segmen

Tampilan Segmen
a b c d e f g h
1 off on on off off off off off
2 on on off on on off on off
3 on on on on off off on off
4 off on on off off on on off
5 on off on on off on on off
6 on off on on on on on off
7 on on on off off off off off
8 on on on on on on on off
9 on on on off off on on off
0 on on on on on on off off
Cara Menghidupkan dan Mematikan beberapa segmen

Untuk menghidupkan salah satu segmen, prinsip kerjanya sama dengan


menghidupkan sebuah led

1=5V 1 1 kondisi mati


kondisi nyala
0=0V (ON) (OFF)
0 1
1 0

0 0

Karena seven segmen ada 2 type yaitu CA (common Anoda) dan CC (common Katoda)
Sehingga pemberian logika ke inputnya berbeda.

Masukan Masukan
0 = Mati 0 = Nyala
1 = Nyala 1 = Mati

Type CC
Percobaan 2.1. Menampilkan Angka 0 - 9
Rangkaian di Proteus

Hubungan antar Pin

Pin 7 Segmen Pin Arduino


a 2
b 3
c 4
d 5
e 6
f 7
g 8
h 9
Kode Arduino (1)
const byte a = 2, b =3, c= 4, d=5, e=6, f=7, g=8, h=9;
void setup() {
pinMode(a, OUTPUT), pinMode(b, OUTPUT), pinMode(c, OUTPUT);
pinMode(d, OUTPUT), pinMode(e, OUTPUT), pinMode(f, OUTPUT);
pinMode(g, OUTPUT), pinMode(h, OUTPUT), digitalWrite(h, 0);
}

void loop() {
//angka 0
digitalWrite(a, 1), digitalWrite(b, 1), digitalWrite(c, 1);
digitalWrite(d, 1), digitalWrite(e, 1), digitalWrite(f, 1);
digitalWrite(g, 0), delay(1000);
//angka 1
digitalWrite(a, 0), digitalWrite(b, 1), digitalWrite(c, 1);
digitalWrite(d, 0), digitalWrite(e, 0), digitalWrite(f, 0);
digitalWrite(g, 0), delay(1000);
// angka 2
digitalWrite(a, 1), digitalWrite(b, 1), digitalWrite(c, 0);
digitalWrite(d, 1), digitalWrite(e, 1), digitalWrite(f, 0);
digitalWrite(g, 1), delay(1000);
//angka 3
digitalWrite(a, 1), digitalWrite(b, 1), digitalWrite(c, 1);
digitalWrite(d, 1), digitalWrite(e, 0), digitalWrite(f, 0);
digitalWrite(g, 1), delay(1000);
Kode Arduino (2)
//angka 4
digitalWrite(a, 0), digitalWrite(b, 1), digitalWrite(c, 1);
digitalWrite(d, 0), digitalWrite(e, 0), digitalWrite(f, 1);
digitalWrite(g, 1), delay(1000);
//angka 5
digitalWrite(a, 1), digitalWrite(b, 0), digitalWrite(c, 1);
digitalWrite(d, 1), digitalWrite(e, 0), digitalWrite(f, 1);
digitalWrite(g, 1), delay(1000);
//angka 6
digitalWrite(a, 1), digitalWrite(b, 0), digitalWrite(c, 1);
digitalWrite(d, 1), digitalWrite(e, 1), digitalWrite(f, 1);
digitalWrite(g, 1), delay(1000);
//angka 7
digitalWrite(a, 1), digitalWrite(b, 1), digitalWrite(c, 1);
digitalWrite(d, 0), digitalWrite(e, 0), digitalWrite(f, 0);
digitalWrite(g, 0), delay(1000);
//angka 8
digitalWrite(a, 1), digitalWrite(b, 1), digitalWrite(c, 1);
digitalWrite(d, 1), digitalWrite(e, 1), digitalWrite(f, 1);
digitalWrite(g, 1), delay(1000);
//angka 9
digitalWrite(a, 1), digitalWrite(b, 1), digitalWrite(c, 1);
digitalWrite(d, 0), digitalWrite(e, 0), digitalWrite(f, 1);
digitalWrite(g, 1), delay(1000);
}
Percobaan 2.2. Menampilkan Angka 0 - 9

• Code program percobaa 1.1 butuh baris kode yang panjang


• Terlihat perulangan perintah yang menyebabkan tidak efisien dari segi
panjang kode (40 baris) dan penggunaan memori (1,7 kbyte)
• Baris kode percobaan 2.1 dapat dipersingkat dengan penggunaan perintah
perulangan for dan penyimpanan data array berdimensi 2 dan subrutine.

Perintah for
Syntaxnya:
for (inisialisasii;kondisi; increment){
//statement(s);
}
Contoh: Kondisi berhenti saat x=100

Inisialisai Nilai x bertambah 1


Variabel x sebagai setiap perulangan
integer

For (int x = 0; x<100; x++){


int y = x+1;
}
Array 1 Dimensi dan 2 Dimensi
• Penggunaan type data array mempersingkat kode program.
• Array 1 dimensi biasa disebut dengan vektor.
• Array 2 dimensi disebut dengan matrik.
Jumlah Baris

Contoh : Jumlah Kolom


Contoh Array 1 D:
Panjang vektor Int angka[10][7] ={{ 1 ,1, 1, 1, 1, 1, 0 },
{ 0, 1, 1, 0, 0, 0, 0 },
Int angka[7] = {1, 1, 1, 1, 1, 1, 0}; { 1, 1, 0, 1, 1, 0, 1 },
angka[0][0]
{ 1, 1, 1, 1, 0, 0, 1 },
Index 0
Index 1

Index 2

Index 3
Index 4
Index 5
Index 6
{ 0, 1, 1, 0, 0, 1, 1 },
{ 1, 0, 1, 1, 0, 1, 1 },
{ 1, 0, 1, 1, 1, 1, 1 },
angka[0] = 1, angka[1] = 1, angka[6] = 0 { 1, 1, 1, 0, 0, 0, 0 },
{ 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 0, 0, 1, 1 }};

angka[9][0] angka[9][6]

angka[0][0] = 1, angka[0][6] = 0
Subrutine/Fungsi

• Subrutin ini dibuat untuk membuat kelompok-kelompok intruksi yang dikerjakan


perbagian
• Kegunaan subrutin ini adalah untuk meminimalkan perubahan program jika
program ingin diubah atau ditambahkan
• Membuat mudah dibaca karena program dibuat cecara modular

Contoh subrutin:
Contoh penulisan subrutine:
Nama fungsinya Void setup(){
}
Int cari_luas(int panjang, int lebar){ void loop(){
Int Luas; Int Hitung_luas = cari_luas(4,5);
Luas = x*y; }
Return Luas;
}
Int cari_luas(int panjang, int lebar){
Int Luas;
Parameter fungsinya Luas = x*y;
dan type datanya Return Luas;
}
Jadi Hitung_luas = luas
Percobaan 2.2. Menampilkan Angka 0 – 9 menggunakan subrutin,
array dan for

//Sambungkan Pin Arduino: 2->a, 3->b, 4->c, 5->d, 6->e, 7->f, 8-> g, 9 -> dot
byte pin_7segmen[10][7] = {
{ 1,1,1,1,1,1,0 }, // = 0
{ 0,1,1,0,0,0,0 }, // = 1
{ 1,1,0,1,1,0,1 }, // = 2
{ 1,1,1,1,0,0,1 }, // = 3
{ 0,1,1,0,0,1,1 }, // = 4
{ 1,0,1,1,0,1,1 }, // = 5 Array 2 dimensi
{ 1,0,1,1,1,1,1 }, // = 6
{ 1,1,1,0,0,0,0 }, // = 7
{ 1,1,1,1,1,1,1 }, // = 8
{ 1,1,1,0,0,1,1 } // = 9
};
void setup() {
pinMode(2, OUTPUT), pinMode(3, OUTPUT), pinMode(4, OUTPUT);
pinMode(5, OUTPUT), pinMode(6, OUTPUT), pinMode(7, OUTPUT);
pinMode(8, OUTPUT), pinMode(9, OUTPUT), digitalWrite(9,LOW);
}
void loop() {
for (byte angka = 0; angka < 10; ++angka) {
delay(1000);
tampilkan(angka);
Memanggil subrutin
}
}
void tampilkan(byte baris) {
subrutin tampilkan
byte pin = 2;
for (byte kolom = 0; kolom < 7; ++ kolom) {
Perulangan dengan for
digitalWrite(pin,
pin_7segmen[baris][kolom]);
++pin;
}
}
Tantangan

Perorang
1. Tampilkan tanggal, bulan dan tahun anda pada seven segmen. Tampilannya
buat
berurutan.
Kelompok
2. Tampilkan tanggal, bulan dan tahun seluruh anggota kelompok pada seven
segmen secara bergantian. Simpan angka yang akan ditampilan dalam sebuah array
dan dipanggil satu persatu untuk ditampilan. Modifikasi percobaan 2.2
3. Tambahkan 3 buah saklar sebagai masukan arduino, jika tombol saklar 1 ditekan
maka nilai A bertambah 1, Jika tombol saklar 2 ditekan maka nilai B bertambah 1
dan jika tombol 3 ditekan maka penjumlahan dan nilai A dan Nilai B dilakukan dan
ditampilkan pada seven segmen. (nilai yang dimaksukkan ke A dan B maksimal 4)
Perangkat Display
1. LED MATRIX
• Led Matrix merupakan kumpulan led yang tersusun membentuk baris dan kolom.
• Berfungsi untuk menampilkan karakter angka, huruf dan bentuk lainnya.
Contoh dari Led Matrix 8x8:
Funsi LED Matrix

Titik-titik led yang nyala akan membentuk sebuah karakter tertentu.

Karakter Angka Karakter Huruf Karakter Emoticon


Bagaimana Cara MenyalakanDan Mematikan LED di beberapa titik secara bersamaan

• Prinsipnya sama dengan cara menyalakan dan meamatikan dari sebuah led

Kondisi LED Menyala Kondisi LED Mati

Anoda dari led harus bernilai 1 (+5v)


Katoda dari led harus berinilai 0(0V/GND)
Anoda dari led bernilai 0 (+0v/GND)
Katoda dari led berinilai 1(+5V)

Contoh led matrik 2x2 Untuk menyalakan L1 maka pin 16 diberi logika 1 dan pin 6
diberi logika 0
LED Nyala Pin 16 Pin 12 Pin 6 Pin 11
L1 1 0 0 1
L2 1 0 1 0
L3 0 1 0 1
L4 0 1 1 0
Bagaimana Cara Menyalakan Dan Mematikan LED di beberapa titik secara bersamaan

• Untuk menyalakan beberapa titik secara bersamaan dapat menggunakan


metode scanning
• Metode scanning-> semua titik led yang ingin dinyalakan dibuat dengan kondisi
ON secara simultan dengan delay waktu yang singkat. Perpindahan nyala dari 1
led ke led yang lain sulit teramati oleh mata manusia sehingga yang tampak
bahwa semua led menyala secara bersamaan.

Misalnya ingin dinyalakan secara bersamaan Led 1(L1) dan led 4(L4)

Langkah yang dilakukan adalah

Langkah LED Nyala Pin 16 Pin 12 Pin 6 Pin 11


1 L1 1 0 0 1
2 Delay microsecond
3 L4 0 1 1 0
4 Delay microsecond
5 Kembali ke langkah 1
Menghubungkan Arduino Uno dengan LED Matrik

Rangkaiannya Koneksi pin

Pin Led Baris Kolom Pin Arduino


Matrik
1 5 - 13
2 7 - 12
3 - 2 11
4 - 3 10
5 8 - 16 (analog pin 2)
6 - 5 17 (analog pin 3)
7 6 - 18 (analog pin 4)
8 3 - 19 (analog pin 5)
9 1 - 2
10 - 4 3
11 - 6 4
12 4 - 5
13 - 1 6
14 2 - 7
15 - 7 8
16 - 8 9
Percobaan 2.3 Menyalakan 1 pixel led matrix

int pin1 = 6;
int pin2 = 16;

void setup() {
pinMode(pin1,OUTPUT);
pinMode(pin2,OUTPUT);

void loop() {
digitalWrite(pin1,LOW);
digitalWrite(pin2,HIGH);
}
Percobaan 2.4 Dot Matrik

const int baris[8] = {2, 7, 19, 5, 13, 18, 12, 16};


const int kolom[8] = {6, 11, 10, 3, 17, 4, 8, 9};

int piksel[8][8];

//Posisi kursor
int x = 5;
int y = 5;

void setup() {
for (int pin = 0; pin < 8; pin++) {
pinMode(kolom[pin], OUTPUT);
pinMode(baris[pin], OUTPUT);
digitalWrite(kolom[pin], HIGH); //jadikan seluruh led mati
} //dengan memberikan logika 1 pada selurh katoda

//membuat seluruh nilai matrix piksel bernilai 1


for (int x = 0; x < 8; x++) {
for (int y = 0; y < 8; y++) {
piksel[x][y] = HIGH;
}
}
}
void loop() {
//Baca data sensor
readSensors(); //subrutine baca data sensor

refreshScreen(); //menampilkan titik piksel yang di aktifkan


}

void readSensors() {
piksel[x][y] = HIGH;
// membaca data sensor kemudaian mengkonversinya kedalam nilai baris atau kolom
x = 7 - map(analogRead(A0), 0, 1023, 0, 7); //mengkonversi hasil pembacaan nilai analog ke nilai 0 hingga 7
y = map(analogRead(A1), 0, 1023, 0, 7);//mengkonversi hasil pembacaan nilai analog ke nilai 0 hingga 7
//mengubah nilai piksel dari ririk x dan y dari high ke low
piksel[x][y] = LOW;
}

void refreshScreen() {
for (int index_baris = 0; index_baris < 8; index_baris++) { //mengaktifkan baris perbaris dengan memberikan logika 1
digitalWrite(baris[index_baris], HIGH);
for (int index_kolom = 0; index_kolom < 8; index_kolom++) {
int nilai_piksel = piksel[index_baris][index_kolom];
digitalWrite(kolom[index_kolom], nilai_piksel);
}
digitalWrite(baris[index_baris], LOW);
}
}
Tujuan Pembelajaran
1. Mengetahui jenis-jenis LCD yang dapat
digunakan
2. Memahami cara menampilkan karakter di LCD
3. Dapat menyambungkan Arduino uno ke LCD
2. Dapat membuat program menampilkan
karakter di LCD
Teknologi LCD
• Ada ratus jenis LCD
• Ada type Karakter LCD dan ada type Graphical LCD.
• Karakter LCD ->Karakter terbentuk dari susunan pikel ukuran 5x7
untuk LCD ukuran 2 x 16
• Graphical LCD ->Mempunyai susunan pikel yang banyak (128x64 untuk contoh
gambar di bawah)

Karakter LCD Graphical LCD


Variasi LCD
LCD 20x4 (karakter putih) LCD 16x4(karakter hitam) LCD 20x4 = Memiliki 20 kolom
dan 4 baris
LCD 16x4 = Memiliki 16 baris
dan 4 kolom
dst

LCD 16x2 LCD 16x1


Rangkaian
Schematic
Menampilkan Karakter LCD
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Inisialisasi penggunaan pin yang
void setup() { dihubungkan dengan pin LCD RS ke pin
12 arduino, LCD Enable pin -pin 11, pin
// set up the LCD's number of columns and rows: LCD D4 - pin 5, pin LCD D5 - pin 4, pinLCD
lcd.begin(16, 2); D6 - pin 3, dan pin LCD D7- pin 2
// Print a message to the LCD.
lcd.print("hello, world!");
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with
0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}
Menggeser Karakter Kiri atau Kanan
// include the library code:
#include <LiquidCrystal.h> // reverse again at 's':
if (thisChar == 's') {
// initialize the library // go left for the next letter
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); lcd.leftToRight();
}
int thisChar = 'a'; // reset at 'z':
if (thisChar > 'z') {
void setup() { // go to (0,0):
// set up the LCD's number of columns and rows: lcd.home();
lcd.begin(16, 2); // start again at 0
// turn on the cursor: thisChar = 'a';
lcd.cursor(); }
} // print the character
lcd.write(thisChar);
void loop() { // wait a second:
// reverse directions at 'm': delay(1000);
if (thisChar == 'm') { // increment the letter:
// go right for the next letter thisChar++;
lcd.rightToLeft(); }
}
Kode Program

S-ar putea să vă placă și