Documente Academic
Documente Profesional
Documente Cultură
Perangkat Display
Seven Segmen
1. Bentuk Komponen 7 segmen 2. Simbul 7 Segmen di Proteus
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
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
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
Perintah for
Syntaxnya:
for (inisialisasii;kondisi; increment){
//statement(s);
}
Contoh: Kondisi berhenti saat x=100
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
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
• Prinsipnya sama dengan cara menyalakan dan meamatikan dari sebuah led
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
Misalnya ingin dinyalakan secara bersamaan Led 1(L1) dan led 4(L4)
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
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
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)
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