Anda di halaman 1dari 72

MODU

L
ARDUI
PRAKT
NO
EK
Daftar Isi

MODUL PRAKTEK...........................................................................................................1
........................................................................................................................................1
........................................................................................................................................1
ARDUINO.......................................................................................................................1
Daftar Isi..........................................................................................................................2
Job Sheet 1 Tipe data, Variabel dan String..........................................................................7
A. Tujuan....................................................................................................................7
B. Alat dan bahan........................................................................................................7
C. Teori......................................................................................................................7
D. Sketch....................................................................................................................8
1. Sketch 1 : Tipe Data...........................................................................................................................8
2. Sketch 2 : Variabel Global dan Lokal..................................................................................................9
3. Sketch 3 : Variabel Statis....................................................................................................................9
4. Sketch 4 : string...............................................................................................................................10
E. Tugas...................................................................................................................10
Job Sheet 2 Operasi Aritmatika, Trigonometri dan Bilangan Acak.......................................11
A. Tujuan..................................................................................................................11
B. Alat dan Bahan......................................................................................................11
C. Sketch..................................................................................................................11
1. Sketch 1 : Operasi Aritmatika...........................................................................................................11
2. Sketch 2 : Aritmatika dalam kurung dan tidak menggunakan kurung..............................................12
4. Sketch 4 : menghitung akar kuadrat................................................................................................13
5. Sketch 5 : menghitung pangkat.......................................................................................................14
6. Sketch 6 : program random.............................................................................................................14
7. Sketch 7 : menghitung tinggi pohon menggunakan trigonometri....................................................15
D. Tugas...................................................................................................................16
Job Sheet 3 String...........................................................................................................17
A. Tujuan..................................................................................................................17
B. Alat dan Bahan......................................................................................................17
C. Sketch..................................................................................................................17

2
1. Sketch 1 : menyalin string................................................................................................................17
2. Sketch 2 : inisialisasi string...............................................................................................................17
3. Sktech 3 : untuk memperoleh Panjang string..................................................................................18
4. Sketch 4 : mengakses karakter di string...........................................................................................18
5. Sketch 5 : inisialisasi string di kelas string........................................................................................19
D. Tugas...................................................................................................................20
Job Sheet 4 IF dan Perulangan.........................................................................................21
A. Tujuan..................................................................................................................21
B. Alat dan Bahan......................................................................................................21
C. Teori.....................................................................................................................21
D. Sketch..................................................................................................................23
1. Sketch 1 : Operasi logika And...........................................................................................................23
2. Sketch 2 : if......................................................................................................................................24
3. Sketch 3: if .. else.............................................................................................................................24
4. Sketch 4:if didalam if.......................................................................................................................25
5. Sketch 5:switch................................................................................................................................25
6. Sektch 6 do while.............................................................................................................................27
7. Sketch 7 Continue............................................................................................................................27
8. Sketch 8 Break.................................................................................................................................28
E. Tugas...................................................................................................................28
Job Sheet 5 LED..............................................................................................................29
A. Tujuan..................................................................................................................29
B. Alat dan Bahan......................................................................................................29
C. Sketch..................................................................................................................29
1. Sketch 1...........................................................................................................................................29
2. Sketch 2 Kecerahan..........................................................................................................................29
D. Tugas...................................................................................................................30
Job Sheet 6 Aplikasi Pengatur Lampu Lalu Lintas...............................................................31
A. Tujuan..................................................................................................................31
B. Alat dan Bahan......................................................................................................31
C. Teori.....................................................................................................................31
D. Rangkaian.............................................................................................................31
E. Sketch..................................................................................................................31

3
1. Sketch 1 Lampu Lalu Lintas..............................................................................................................31
2. Sketch 2...........................................................................................................................................33
3. Sketch..............................................................................................................................................34
4. Sketch..............................................................................................................................................34
5. Sketch..............................................................................................................................................34
6. Sketch..............................................................................................................................................34
7. Sketch..............................................................................................................................................34
F. Tugas...................................................................................................................34
Job Sheet 7 Push Button..................................................................................................35
A. Tujuan..................................................................................................................35
B. Alat dan Bahan......................................................................................................35
C. Teori.....................................................................................................................35
D. Rangkaian.............................................................................................................35
E. Sketch..................................................................................................................36
1. Sketch 1...........................................................................................................................................36
2. Sketch 2...........................................................................................................................................36
3. Sketch 3...........................................................................................................................................37
F. Tugas...................................................................................................................38
Job Sheet 8 Aplikasi LDR..................................................................................................39
A. Tujuan..................................................................................................................39
B. Alat dan Bahan......................................................................................................39
C. Rangkaian.............................................................................................................39
Rangkaian LDR.........................................................................................................................................39
D. Sketch..................................................................................................................39
1. Sketch 1 Memantau nilai LDR melalui pin analog............................................................................39
2. Sketch 2 Menhidupkan dan mematikan Led melalui LDR................................................................40
E. Tugas...................................................................................................................41
Job Sheet 9 Aplikasi Mengukur Suhu................................................................................42
A. Tujuan..................................................................................................................42
B. Alat dan Bahan......................................................................................................42
C. Rangkaian.............................................................................................................42
D. Sketch..................................................................................................................42
E. Tugas...................................................................................................................43

4
Job Sheet 10 Aplikasi Sensor Air.......................................................................................44
A. Tujuan..................................................................................................................44
B. Alat dan Bahan......................................................................................................44
C. Rangkaian.............................................................................................................44
D. Sketch..................................................................................................................44
E. Tugas...................................................................................................................47
Job Sheet 11 Aplikasi Pengukur jarak (Sensor Ultrasonic)..................................................48
A. Tujuan..................................................................................................................48
B. Alat dan Bahan......................................................................................................48
C. Teori.....................................................................................................................48
D. Rangkaian.............................................................................................................49
E. Sketch..................................................................................................................49
F. Tugas...................................................................................................................50
Job Sheet 12 Aplikasi Sensor Gerak..................................................................................51
A. Tujuan..................................................................................................................51
B. Alat dan Bahan......................................................................................................51
C. Rangkaian.............................................................................................................51
D. Sketch..................................................................................................................51
E. Tugas...................................................................................................................52
Job Sheet 13...................................................................................................................53
A. Tujuan..................................................................................................................53
B. Alat dan Bahan......................................................................................................53
C. Rangkaian.............................................................................................................53
D. Sketch..................................................................................................................53
E. Tugas...................................................................................................................53
Job Sheet 13 Pemrograman 7-segmen CA.........................................................................54
F. Tujuan..................................................................................................................54
G. Alat dan Bahan......................................................................................................54
H. Rangkaian.............................................................................................................54
I. Sketch..................................................................................................................55
J. Tugas...................................................................................................................57
Job Sheet 14 Aplikasi penampil 4 buah 7-segmen..............................................................58
A. Tujuan..................................................................................................................58

5
B. Alat dan Bahan......................................................................................................58
C. Rangkaian.............................................................................................................58
D. Sketch..................................................................................................................58
E. Tugas...................................................................................................................65
Job Sheet 15 aplikasi penampil max 7219.........................................................................66
A. Tujuan..................................................................................................................66
B. Alat dan Bahan......................................................................................................66
C. Rangkaian.............................................................................................................66
D. Sketch..................................................................................................................66
E. Tugas...................................................................................................................68
Job Sheet 16 Pemrograman LCD tipe HD44780.................................................................69
A. Tujuan..................................................................................................................69
B. Alat dan Bahan......................................................................................................69
C. Rangkaian.............................................................................................................69
D. Sketch..................................................................................................................69
E. Tugas...................................................................................................................69
Job Sheet 17 Node MCU..................................................................................................70
A. Tujuan..................................................................................................................70
B. Alat dan Bahan......................................................................................................70
C. Rangkaian.............................................................................................................70
D. Sketch..................................................................................................................70
E. Tugas...................................................................................................................70

6
Job Sheet 1 Tipe data, Variabel dan String

A. Tujuan
1. Taruna dapat memahami tentang macam-macam tipe data di Arduino
2. Taruna dapat memahami tentang variabel global dan lokal
3. Taruna dapat memahami tentang string

B. Alat dan bahan


1. Modul mikrokontroler Arduino uno 1 modul
2. Kabel data usb serial Arduino uno 1 buah

C. Teori
Sketch mempunyai minimal 2 fungsi yaitu fungsi setup() dan fungsi loop().
Fungsi setup() adalah fungsi yang dijalankan pertama kali dan hanya sekali di awal.
Fungsi loop() adalah fungsi yang akan dijalankan berulang kali secara terus menerus.
Pengenal (identifier) digunakan untuk memberikan nama untuk elemen-elemen
pemrograman yang memerlukan nama seperti fungsi, variable dan konstanta.
Aturan penulisan pengenal sebagai berikut:
- Nama pengenal diawali huruf atau garis bawah (_)
- Karakter kedua dan seterusnya dalam nama pengenal boleh mengguankan huruf,
angka datau (_)
- Huruf kecil dan huruf capital dibedakan.
Variabel adalah suatu nama yang menyatakan suatu data dan nilainya bisa diubah
sewaktu-waktu ketika sketch dijalankan.
Nama variabel menggunakan nama dengan awalan huruf kecil.
Nama konstanta menggunakan nama dengan huruf capital.
Contoh :
- Pin_SLA - pin13
- Pin_LED_MERAH - nilaiSuhuRuangan
- suhu_Dalam_Ruangan
Beberapa sintak program antara lain:
- Serial.begin(9600); artinya mengaktifkan komunikasi serial dengan kecepatan data
9600 bps.
- Tipe_data variable; definisi variabel
contoh: int suhu;
- Tipe_data variable_a, variable_b, … variable_n ;
contoh: int suhuDalamRuangan, suhuLuarRuangan;
- Variable=nilai; contoh: suhuDalamRuangan=28;

7
- Const tipe_data NAMA_KONSTANTA = nilai; definisi konstanta
Contoh: cons tint PIN_13=13;
- #define NAMA_KONSTANTA nilai; definisi konstanta
Contoh: define PIN_13 13;
Macam-macam tipe data:
1. int bil. bulat -32.768 sd. 32.767
2. short sda
3. unsigned int bil bulat 0 sd. 65.535
4. word sda
5. long bil bulat -2.147.483.648 sd. 2.147.483.647
6. unsigned long bil bulat 0 sd. 4.294.967.295
7. float bil real 3,4028235 E+38 sd. -3,4028235 E+38
8. double sda
9. boolean menyatakan nilai true atau false
10. char menyatakan sebuah karakter
11. byte bil bulat 0 sd. 255
12. string menyatakan deretan karakter biasa digunakan untuk teks

D. Sketch
1. Sketch 1 : Tipe Data
// variabel dengan berbagai tipe data
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

// Deklarasi variabel
char ch;
int bilangan;
float nilaiTes;

// Pemberian nilai
ch = 'Ab';
bilangan = 23.7;
nilaiTes = 897;

// Kirim ke port serial


Serial.print("Isi ch = ");
Serial.println(ch);

Serial.print("Isi bilangan = ");


Serial.println(bilangan);

8
Serial.print("Isi nilaiTes = ");
Serial.println(nilaiTes);
}

void loop()
{

}
2. Sketch 2 : Variabel Global dan Lokal
// ---------------------------------------------
// Contoh variabel lokal dan variabel global
// ---------------------------------------------

int x = 33; // Variabel global


int y = 44; // Variabel global

void setup()
{
Serial.begin(9600);

Serial.print("Di setup(), x = ");


Serial.print(x);
Serial.print(", y = ");
Serial.println(y);
}

void loop()
{
int y = 66; // Variabel lokal

Serial.print("Di loop(), x = ");


Serial.print(x);
Serial.print(", y = ");
Serial.println(y);

delay(1000);
}
3. Sketch 3 : Variabel Statis
// ---------------------------------------------
// Contoh efek variabel statis
// ---------------------------------------------

9
void setup()
{
Serial.begin(9600);
}

void loop()
{
static int pencacah = 0;

pencacah++; // Naikkan sebesar satu


Serial.print("Isi pencacah = ");
Serial.println(pencacah);

delay(1000); // Tunda 1 detik


}
4. Sketch 4 : string
// ---------------------------------------------
// Contoh pembuatan objek string
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

String pesan;
pesan = "Putar ke kiri";

Serial.println(pesan);
}

void loop()
{

}
E. Tugas
1. Buatlah flowchart pada sketch yang dibuat?
2. Buatlah program untuk menampilkan

10
Job Sheet 2 Operasi Aritmatika, Trigonometri dan Bilangan Acak

A. Tujuan
1. Taruna dapat memahami tentang operasi penjumlahan, pengurangan, perkalian
dan pembagian
2. Taruna dapat membuat program yang berhubungan dengan fungsi trigonometri
3. Taruna dapat membuat program bilangan acak (random).

B. Alat dan Bahan


1. Modul mikrokontroler Arduino uno 1 modul
2. Kabel data usb serial Arduino uno 1 buah

C. Sketch
1. Sketch 1 : Operasi Aritmatika
// -------------------------------------
// Contoh operasi aritmetika menggunakan
// operator +, -, *, /. dan %
// -------------------------------------

void setup()
{
Serial.begin(9600);

// Operasi penjumlahan
Serial.print("5 + 6 = ");
Serial.println(5 + 6);

Serial.print("5.1 + 6 = ");
Serial.println(5.1 + 6);

// Operasi pengurangan
Serial.print("5 - 6 = ");
Serial.println(5 - 6);

Serial.print("5.1 - 6 = ");
Serial.println(5.1 - 6);

// Operasi perkalian
Serial.print("5 * 6 = ");
Serial.println(5 * 6);

11
Serial.print("5.1 * 6 = ");
Serial.println(5.1 * 6);

// Operasi pembagian
Serial.print("7 / 2 = ");
Serial.println(7 / 2);

Serial.print("7 / 2.0 = ");


Serial.println(7 / 2.0);

// Operasi sisa pembagian


Serial.print("8 % 2 = ");
Serial.println(8 % 2);

Serial.print("8 % 3 = ");
Serial.println(8 % 3);
}

void loop()
{

}
2. Sketch 2 : Aritmatika dalam kurung dan tidak menggunakan kurung
// -------------------------------------
// Contoh untuk memperlihatkan perbedaan
// penggunaan tanda kurung dalam
// ekspresi aritmetika
// -------------------------------------

void setup()
{
Serial.begin(9600);

// Tanpa kurung
Serial.print("5 + 3 * 2 = ");
Serial.println(5 + 3 * 2);

// Dengan kurung
Serial.print("(5 + 3) * 2 = ");
Serial.println((5 + 3) * 2);
}

void loop()
{

}
3. Sketch 3 : Konversi dari Celsius ke Reamur

12
// ---------------------------------------------
// Contoh perhitungan dari Celcius ke Reamur
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

float celcius = 25;


float reamur;

// Bentuk penulisan pertama


reamur = 4 / 5 * celcius;
Serial.print("Suhu dalam Reamur: ");
Serial.println(reamur);

// Bentuk penulisan kedua


reamur = 4.0 / 5 * celcius;
Serial.print("Suhu dalam Reamur: ");
Serial.println(reamur);
}

void loop()
{

}
4. Sketch 4 : menghitung akar kuadrat
// -------------------------------------
// Contoh penggunaan fungsi sqrt()
// untuk menghitung akar kuadrat
// -------------------------------------

void setup()
{
Serial.begin(9600);

// Inisialisasi variabel
int bilangan = 25;

Serial.print("Akar dari : ");


Serial.print(bilangan);
Serial.print(" adalah ");
Serial.println(sqrt(bilangan));

Serial.print("Akar 5 adalah ");


Serial.println(sqrt(5));
}

13
void loop()
{

}
5. Sketch 5 : menghitung pangkat
// -------------------------------------
// Contoh penggunaan fungsi pow()
// untuk menghitung pangkat
// -------------------------------------

void setup()
{
Serial.begin(9600);

// Inisialisasi variabel
int x = 12;

Serial.print("2^x : ");
Serial.println(pow(2, x));

Serial.print("x^2 : ");
Serial.println(pow(x, 2));

Serial.print("x^0.5 : ");
Serial.println(pow(x, 0.5));

Serial.print("x^(1/3.0) : ");
Serial.println(pow(x, 1 / 3.0));
}

void loop()
{

}
6. Sketch 6 : program random
// ---------------------------------------------
// Contoh pembangkitan bilangan acak
// ---------------------------------------------

const int MAKS = 9;

void setup()
{
Serial.begin(9600);

// Tampilkan 3 bilangan acak tanpa randomSeed()

14
Serial.println("Bilangan acak tanpa randomSeed()");
Serial.println(random(MAKS));
Serial.println(random(MAKS));
Serial.println(random(MAKS));

// Tampilkan 3 bilangan acak dengan randomSeed(67)


Serial.println("Bilangan acak dengan randomSeed(67)");

randomSeed(67);

Serial.println(random(MAKS));
Serial.println(random(MAKS));
Serial.println(random(MAKS));

// Tampilkan 3 bilangan acak dengan randomSeed(analogRead(0))


Serial.println("Bilangan acak dengan randomSeed(analogRead(0))");

randomSeed(analogRead(0));

Serial.println(random(MAKS));
Serial.println(random(MAKS));
Serial.println(random(MAKS));

void loop()
{

}
7. Sketch 7 : menghitung tinggi pohon menggunakan trigonometri
// ---------------------------------------------
// Contoh perhitungan tinggi pohon menggunakan
// fungsi tan()
// ---------------------------------------------

void setup()
{
Serial.begin(9600);
Y:
float jarak = 60;
float alpha = 65; tinggi
α pohon
// Hitung
float radian = alpha / 180 * 3.14; X
float tinggi = tan(radian) * jarak; Y = X * tan (α )

Serial.print("Tinggi pohon: ");

15
Serial.println(tinggi);
}

void loop()
{

D. Tugas
1. Buatlah Flow chart diagram dari sketch 1 sd. 7

16
Job Sheet 3 String

A. Tujuan
1. Taruna dapat membuat operasi pengisian nilai string pada array
2. Taruna dapat membuat inisialisasi string
3. Taruna dapat membuat string yang berkelas string

B. Alat dan Bahan


1. Modul mikrokontroler Arduino uno 1 modul
2. Kabel usb serial 1 buah

C. Sketch
1. Sketch 1 : menyalin string
// ---------------------------------------------
// Contoh penggunaan strcpy()
// untuk menyalin string
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

// Deklarasi string
char pesan[26];

// Salin string
strcpy(pesan, "Tes..tes..123!");

Serial.println(pesan);
}

void loop()
{

}
2. Sketch 2 : inisialisasi string
// ---------------------------------------------
// Contoh inisialisasi string

17
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

char komponen[] = "Resistor, Kapasitor, Diode, Transistor, Relai";

Serial.println(komponen);
}

void loop()
{

}
3. Sktech 3 : untuk memperoleh Panjang string
// ---------------------------------------------
// Contoh penggunaan strlen()
// untuk memperoleh panjang string
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

// Deklarasi string
char pesan[26];

// Salin string
strcpy(pesan, "Tes..tes..123!");

Serial.print("Panjang string ");


Serial.print(pesan);
Serial.print(": ");
Serial.println(strlen(pesan));
}

void loop()
{

18
4. Sketch 4 : mengakses karakter di string
// ---------------------------------------------
// Contoh pengaksesan karakter di string
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

// Deklarasi string
char pesan[26];

// Salin string
strcpy(pesan, "Tes..tes..123!");

// Kirim 5 karakter pertama ke port serial


Serial.println(pesan[0]);
Serial.println(pesan[1]);
Serial.println(pesan[2]);
Serial.println(pesan[3]);
Serial.println(pesan[4]);
}

void loop()
{

}
5. Sketch 5 : inisialisasi string di kelas string
// -----------------------------------------------
// Contoh inisialisasi string yang berkelas String
// -----------------------------------------------

void setup()
{
Serial.begin(9600);

String komponen = "Resistor, Kapasitor, Diode, Transistor";


String resistor("220, 270, 330, 470");

Serial.println(komponen);
Serial.println(resistor);
}

19
void loop()
{

D. Tugas
1. Buatlah gambar flow chartnya rangkaian diatas.

20
Job Sheet 4 IF dan Perulangan

A. Tujuan
1. Taruna dapat membuat operasi Boolean untuk memperoleh nilai benar atau salah
2. Taruna dapat memahami sintaks if-else
3. Taruna dapat memahami sintaks switch
4. Taruna dapat memahami sintaks do… while
5. Taruna dapat memahami sintaks while
6. Taruna dapat memahami sintaks for
7. Taruna dapat memahami sintaks continue dan break
B. Alat dan Bahan
1. Modul mikrokontroler Arduino uno 1 modul
2. Kabel usb to serial Arduino 1 buah

C. Teori
i. Operasi Boolean
Ekspresi yang menghasilkan benar atau salah dinamakan ekspresi Boolean yang
sangat penting dalam mengambil keputusan (menggunakan pernyataan if .. else)
maupun perulangan (menggunakan do .. while, while dan for). Berikut merupakan
ekspresi rasional x > 3
Yang akan menghasilkan
o Benar jika isi variable x bernilai lebih besar daripada 3
o Salah jika isi variable x bernilai sama dengan atau lebih kecil daripada 3
Table operasi rasional
Operasi Keterangan Contoh
== Sama dengan 1==0 ->false
1==1 ->true
!= Tidak sama dengan 1!=1 ->false
1!=0 ->true
> Lebih dari -1>0 ->false
1>0 ->true
>= Lebih dari atau sama dengan -1>=0 ->false
1>=0 ->true
< Kurang dari 1<0 ->false
1<2 ->true
<= Kurang dari atau sama dengan 1<=0 ->false
1<=1 ->true

21
Table operasi gerbang OR dan AND
Operand 1 Operasnd 2 OR (||) AND(&&)
False False False False
False True True False
True False True False
True True True false

ii. If-else
Pernyataan if adalah pernyataan yang bergantung pada ekspresi Boolean.
If (kondisi)
{pernyataan_1;
Pernyataan_2;

Pernyataan_n;}

iii. Switch
Tidak semua if dapat digantikan dengan switch. Pernyataan switch dapat
digunakan untuk menggantikan pernyataan bertingkat dengan semua kondisi di if
melibatkan operator sama dengan.
If (nilai == 1) Case 1:
Serial.println(“satu”); Serial.println(“satu”);
Else Break;
If(nilai ==2) Case 2:
Serial.println(“dua”); Serial.println(“dua”);
Else Break;
If(nilai==3) Case 3:
Serial,println(“tiga”); Serial.println(“tiga’);
Break;

iv. Do while
Pernyataan yang berada dalam {} akan dijalankan secara berulang-ulang selama
kondisi
v. Continue

vi. Break

22
D. Sketch
1. Sketch 1 : Operasi logika And
// ----------------------------------------
// Contoh untuk memperlihatkan penggunaan
// operator logika: and dan &&
// ----------------------------------------

void setup()
{
Serial.begin(9600);

char karakter;
boolean hasil;

// Cek untuk karakter M


karakter = 'M';

Serial.print("Cek karakter ");


Serial.println(karakter);

hasil = karakter >= 'A' && karakter <= 'Z';


Serial.println(hasil);

hasil = karakter >= 'A' and karakter <= 'Z';


Serial.println(hasil);

// Cek untuk karakter m


karakter = 'm';

Serial.print("Cek karakter ");


Serial.println(karakter);

hasil = karakter >= 'A' && karakter <= 'Z';


Serial.println(hasil);

hasil = karakter >= 'A' and karakter <= 'Z';


Serial.println(hasil);
}

void loop()
{

23
}
2. Sketch 2 : if
// ----------------------------
// Contoh untuk melihat efek if
// ----------------------------

void setup()
{
Serial.begin(9600);

int tegangan = 5; // isi tegangan diubah lalu apa hasilnya


String pesan = "Tegangan aman digunakan"; // jika teg sama dengan 5

if (tegangan > 5) // pernyataan jika teg lebih besar dari 5


pesan = "Tegangan terlalu besar";

// Tampilkan isi pesan


Serial.println(pesan);
}

void loop()
{

}
3. Sketch 3: if .. else
// ----------------------------------
// Contoh untuk melihat efek if..else
// ----------------------------------

void setup()
{
Serial.begin(9600);

int tegangan = 5;
String pesan;

if (tegangan > 5)
pesan = "Tegangan terlalu besar";
else
pesan = "Tegangan aman digunakan";

// Tampilkan isi pesan

24
Serial.println(pesan);
}

void loop()
{

}
4. Sketch 4:if didalam if
// ----------------------------------
// Contoh if bertingkat
// ----------------------------------

void setup()
{
Serial.begin(9600);

int nilaiDariSensor = 103;

if (nilaiDariSensor <= 300)


Serial.println("Hujan lebat");
else
if (nilaiDariSensor <= 500)
Serial.println("Hujan sedang");
else
if (nilaiDariSensor <= 700)
Serial.println("Hujan rintik-rintik");
else
Serial.println("Tidak hujan");
}

void loop()
{

}
5. Sketch 5:switch
// ---------------------------------------------
// Contoh penggunaan switch
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

25
int nilai = 4; // Ganti nilai ini untuk menguji
// misalnya dengan 5, 8, atau 10

switch (nilai)
{
case 1:
Serial.println("satu");
break;
case 2:
Serial.println("dua");
break;
case 3:
Serial.println("tiga");
break;
case 4:
Serial.println("empat");
break;
case 5:
Serial.println("lima");
break;
case 6:
Serial.println("enam");
break;
case 7:
Serial.println("tujuh");
break;
case 8:
Serial.println("delapan");
break;
case 9:
Serial.println("sembilan");
break;
default:
Serial.println("bukan satu digit");
}
}

void loop()
{

26
6. Sektch 6 do while
/ ---------------------------------------------
// Contoh penggunaan do..while untuk
// menampilkan bilangan 1 hingga 10
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

int pencacah = 1;

do
{
Serial.println(pencacah);
pencacah++;
} while (pencacah <= 10);

Serial.println("-------");
}

void loop()
{

}
7. Sketch 7 Continue
// ---------------------------------------------
// Contoh untuk memperlihatkan efek continue
// pada for
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

for (int pencacah = 1; pencacah <= 10; pencacah++)


{
if (pencacah >= 4 && pencacah <= 6)
{
Serial.println("continue...");
continue;
}
// -----------

Serial.println(pencacah);
}

Serial.println("-------");

27
}

void loop()
{

}
8. Sketch 8 Break
// ---------------------------------------------
// Contoh untuk memperlihatkan efek break
// pada for
// ---------------------------------------------

void setup()
{
Serial.begin(9600);

for (int pencacah = 1; pencacah <= 10; pencacah++)


{
if (pencacah >= 4 && pencacah <= 6)
{
Serial.println("break...");
break;
}
// -----------

Serial.println(pencacah);
}

Serial.println("-------");
}

void loop()
{

}
E. Tugas
2. Buatlah gambar flow chartnya rangkaian diatas.

28
Job Sheet 5 LED

A. Tujuan
1. Taruna dapat menghidupkan dan mematikan rangkaian 1 LED
2. Taruna dapat mengatur kecerahan LED

B. Alat dan Bahan


1. Modul Arduino uno 1 unit
2. Kabel data 1 buah
3. Resistor 220 Ohm 1 buah
4. LED 1 buah

C. Sketch
1. Sketch 1
// ---------------------------------------------
// Contoh untuk membuat LED hidup dan mati
// secara bergantian
// ---------------------------------------------

const int PIN_13 = 13;

void setup()
{
pinMode(PIN_13, OUTPUT);
}

void loop()
{
// Hidupkan LED
digitalWrite(PIN_13, HIGH);
delay(1000); // Tunda 1 detik

// Matikan LED
digitalWrite(PIN_13, LOW);
delay(1000); // Tunda 1 detik
}

29
2. Sketch 2 Kecerahan
// ---------------------------------------------
// Contoh untuk mengatur kecerahan LED
// ---------------------------------------------

const int PIN_9 = 9;

void setup()
{
pinMode(PIN_9, OUTPUT);
}

void loop()
{
// Kecerahan maksimum
analogWrite(PIN_9, 255);
delay(1000); // Tunda 1 detik

// Kecerahan mdium
analogWrite(PIN_9, 128);
delay(1000); // Tunda 1 detik

// LED dimatikan
analogWrite(PIN_9, 0);
delay(1000); // Tunda 1 detik
}
D. Tugas
1. Buatlah Flowchart pada program diatas sesuai dengan cara kerja dari program
tersebut.
2. Buatlah program running led dengan 8 buah led.

30
Job Sheet 6 Aplikasi Pengatur Lampu Lalu Lintas

A. Tujuan
1. Taruna dapat membuat program simulasi pengatur lampu lalu lintas

B. Alat dan Bahan


1. Modul Mikrokontroller Arduino Uno 1 unit
2. Kabel data 1 buah
3. Resistor 220 Ohm 12 buah
4. LED Merah 4 buah
5. LED Kuning 4 buah
6. LED Hijau 4 buah

C. Teori
digitalWrite

Lampu 1 Lampu 2 Lampu 3 Lampu 4


No
Siklus M K H M K H M K H M K H
.
1 2 3 4 5 6 1 2 3 4 5 6
1 2 detik on on on on
2 1 detik on on on on on on on on
3 2 detik on on on on
4 1 detik on on on on on on on on

D. Rangkaian

E. Sketch
1. Sketch 1 Lampu Lalu Lintas
const int PIN_MB = 2; // Merah barat
const int PIN_KB = 3; // Kuning barat
const int PIN_HB = 4; // Hijau barat
const int PIN_MU = 5; // Merah utara
const int PIN_KU = 6; // Kuning utara
const int PIN_HU = 7; // Hijau utara

31
const int PIN_MT = 8; // Merah timur
const int PIN_KT = 9; // Kuning timur
const int PIN_HT = 10; // Hijau timur
const int PIN_MS = 11; // Merah selatan
const int PIN_KS = 12; // Kuning selatan
const int PIN_HS = 13; // Hijau selatan

const int LAMA_KUNING = 1000;


const int LAMA_HIJAU = 4000;

void setup()
{
pinMode(PIN_MB, OUTPUT);
pinMode(PIN_KB, OUTPUT);
pinMode(PIN_HB, OUTPUT);
pinMode(PIN_MU, OUTPUT);
pinMode(PIN_KU, OUTPUT);
pinMode(PIN_HU, OUTPUT);
pinMode(PIN_MT, OUTPUT);
pinMode(PIN_KT, OUTPUT);
pinMode(PIN_HT, OUTPUT);
pinMode(PIN_MS, OUTPUT);
pinMode(PIN_KS, OUTPUT);
pinMode(PIN_HS, OUTPUT);

// LED pada keadaan awal


digitalWrite(PIN_MB, HIGH);
digitalWrite(PIN_KB, LOW);
digitalWrite(PIN_HB, LOW);
digitalWrite(PIN_MU, HIGH);
digitalWrite(PIN_KU, LOW);
digitalWrite(PIN_HU, LOW);
digitalWrite(PIN_MT, HIGH);
digitalWrite(PIN_KT, LOW);
digitalWrite(PIN_HT, LOW);
digitalWrite(PIN_MS, HIGH);
digitalWrite(PIN_KS, LOW);
digitalWrite(PIN_HS, LOW);
}

void loop()
{

32
// Barat jalan
digitalWrite(PIN_MB, LOW);
digitalWrite(PIN_HB, HIGH);
delay(LAMA_HIJAU); // Tunda
digitalWrite(PIN_HB, LOW);
digitalWrite(PIN_KB, HIGH);
delay(LAMA_KUNING);
digitalWrite(PIN_KB, LOW);
digitalWrite(PIN_MB, HIGH);

// Utara jalan
digitalWrite(PIN_MU, LOW);
digitalWrite(PIN_HU, HIGH);
delay(LAMA_HIJAU); // Tunda
digitalWrite(PIN_HU, LOW);
digitalWrite(PIN_KU, HIGH);
delay(LAMA_KUNING);
digitalWrite(PIN_KU, LOW);
digitalWrite(PIN_MU, HIGH);

// Timur jalan
digitalWrite(PIN_MT, LOW);
digitalWrite(PIN_HT, HIGH);
delay(LAMA_HIJAU); // Tunda
digitalWrite(PIN_HT, LOW);
digitalWrite(PIN_KT, HIGH);
delay(LAMA_KUNING);
digitalWrite(PIN_KT, LOW);
digitalWrite(PIN_MT, HIGH);

// Selatan jalan
digitalWrite(PIN_MS, LOW);
digitalWrite(PIN_HS, HIGH);
delay(LAMA_HIJAU); // Tunda
digitalWrite(PIN_HS, LOW);
digitalWrite(PIN_KS, HIGH);
delay(LAMA_KUNING);
digitalWrite(PIN_KS, LOW);
digitalWrite(PIN_MS, HIGH);
}
2. Sketch 2

33
F. Tugas
1. Buatlah flowchart program yang telah dibuat!

34
Job Sheet 7 Push Button

A. Tujuan
1. Taruna dapat menggunakan Push Button sebagai input
2. Taruna dapat membuat program dengan push button sebagai input untuk
menghidupkan dan mematikan nyala lampu LED.
B. Alat dan Bahan
1. Arduino Uno 1 unit
2. Push Button 4 buah
3. Resistor 220 Ohm 4 buah
4. Resistor 1k Ohm 4 buah
5. LED 4 buah
6. Kabel Jumper

C. Teori
digitalRead()
analogRead()
D. Rangkaian
1. Rangkaian LED dan Push Button Pull-up

35
E. Sketch
1. Sketch 1
// -------------------------------------
// Contoh penggunaan saklar
// yang menggunakan resistor pull-up
// untuk mengatur LED
// -------------------------------------

const int PIN_LED = 13;


const int PIN_SAKLAR = 2;

void setup()
{
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_SAKLAR, INPUT);
}

void loop()
{
int dataPin = digitalRead(PIN_SAKLAR);
if (dataPin == HIGH) // saklar ditekan
digitalWrite(PIN_LED, HIGH);
else
digitalWrite(PIN_LED, LOW);
}
2. Sketch 2
// --------------------------------------
// Contoh penggunaan saklar
// yang menggunakan resistor pull-down
// untuk mengatur LED
// --------------------------------------

const int PIN_LED = 11;


const int PIN_SAKLAR = 2;

void setup()
{

36
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_SAKLAR, INPUT);
}

void loop()
{
int dataPin = digitalRead(PIN_SAKLAR);
if (dataPin == HIGH) // saklar ditekan
digitalWrite(PIN_LED, HIGH);
else
digitalWrite(PIN_LED, LOW);
}
3. Sketch 3
// -------------------------------------
// Contoh penggunaan saklar
// yang menggunakan resistor pull-up
// untuk mengatur LED
// -------------------------------------

const int PIN_LED = 13;


const int PIN_SAKLAR = 2;
const int PIN_SAKLAR2 = 1;
int dataPin;
int dataPin2;
void setup()
{
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_SAKLAR, INPUT_PULLUP);
pinMode(PIN_SAKLAR2, INPUT_PULLUP);
}

void loop()
{
dataPin = digitalRead(PIN_SAKLAR);
dataPin2 = digitalRead(PIN_SAKLAR2);

if (dataPin == LOW) // saklar ditekan


{
digitalWrite(PIN_LED, LOW);

37
}
else if (dataPin2 == LOW)
{
digitalWrite(PIN_LED, HIGH);
}
}
F. Tugas
1. Buatlah gambar flow chartnya rangkaian diatas.

38
Job Sheet 8 Aplikasi LDR

A. Tujuan
1. Taruna dapat menggunakan dan memahami cara kerja sensor LDR.
2. Taruna dapat merangkai dan membuat program memnghidupak dan mematikan
LED derdasarkan sensor LDR.
B. Alat dan Bahan
1. Arduino Uno 1 unit
2. Sensor LDR 1 buah
3. Resistor 220 Ohm 1 buah
4. Resistor 1k Ohm 1 buah
5. LED 1 buah
6. Kabel jumper

C. Rangkaian
Rangkaian LDR

D. Sketch
1. Sketch 1 Memantau nilai LDR melalui pin analog
// ---------------------------------------
// Contoh untuk memantau nilai dari LDR
// melalui pin analog
// ---------------------------------------

39
const int PIN_LDR = 0;

void setup()
{
Serial.begin(9600);
}

void loop()
{
int dataPin = analogRead(PIN_LDR);
Serial.println(dataPin);

delay(100); // Untuk memperlambat penampilan nilai


}
2. Sketch 2 Menhidupkan dan mematikan Led melalui LDR
// ---------------------------------------
// Contoh untuk mengendalikan LED
// melalui LDR
// ---------------------------------------

const int PIN_LDR = 0;


const int PIN_LED = 12;

void setup()
{
Serial.begin(9600);

pinMode(PIN_LED, OUTPUT);
}

void loop()
{
int dataPin = analogRead(PIN_LDR);
if (dataPin < 200)
digitalWrite(PIN_LED, HIGH);
else
digitalWrite(PIN_LED, LOW);
}

40
E. Tugas
1. Buatlah gambar flow chartnya rangkaian diatas.

41
Job Sheet 9 Aplikasi Mengukur Suhu

A. Tujuan
2. Taruna dapat memahami cara kerja sensor suhu LM35DZ
3. Taruna dapat merangkai rangkaian sensor suhu.
B. Alat dan Bahan
1. Arduino Uno 1 unit
2. Sensor suhu LM35DZ 1 buah
3. Kabel Jumper
C. Rangkaian

D. Sketch
4. Sketch 1
// ---------------------------------------
// Contoh pemgukuran suhu dengan LM35DZ
// ---------------------------------------

const int PIN_SENSOR = 0;

void setup()
{
Serial.begin(9600);
}

void loop()

42
{
int dataPin = analogRead(PIN_SENSOR);

float celcius = dataPin / 1023.0 * 5 * 100;


Serial.print("Suhu = ");
Serial.println(celcius);

delay(1000);
}

E. Tugas
2. Buatlah program pengukuran suhu yang dapat menghidupkan pada suhu tinggi dan
mematikan led pada suhu rendah.
3. Buatlah gambar flow chartnya.

43
Job Sheet 10 Aplikasi Sensor Air

A. Tujuan
1. Taruna dapat memahami cara kerja sensor kelembaban tanah dan kelembaban
udara.
2. Taruna dapat merangkai dan membuat program untuk mengukur kelembaban
tanah dan udara.
B. Alat dan Bahan
4. Arduino Uno 1 unit
5. Modul kelembaban tanah 1 unit
6. Modul DHT11 1 unit
7. Resistor 240 ohm 3 buah
8. LED 3 buah
9. Kabel jumper secukupnya
10.
C. Rangkaian
Cara merangkaian rangkaian modul kelembaban tanah sebagai berikut:
b. Dua pin yang berada di salah satu sisi modul elektronik dihubungkan ke dua sisi
yang berada pada bagian yang ditancapkan ke tanah.
c. Pin VCC dihubungkan ke 5V pada Arduino
d. Pin A0 dihubungkan ke pin A0 pada Arduino
e. Pin D0 dihubungkan ke pin 12 pada Arduino
f. Pin GND dihubungkan ke pin GND pda Arduino.
Pin analog jika media dalam keadaan kering maka nilai tinggi, jika nilianya terlalu
rendah makan media dalam keadan basah.

Merangkai modul DHT11 sebagai berikut:


b. VCC dihubungkan ke sumber teganagan 5V
c. Data duhubungkan ke pin analog
d. GND dihubungkan ke pin GND

D. Sketch
1. Sketch 1
// ---------------------------------------
// Contoh pengukuran kelembaban tanah
// ---------------------------------------

const int PIN_SENSOR = 0;

44
void setup()
{
Serial.begin(9600);
}

void loop()
{
int dataPin = analogRead(PIN_SENSOR);

Serial.print("Nilai kelembaban = ");


Serial.println(dataPin);

delay(1000);
}
2. Sketch 2
// ---------------------------------------
// Contoh pemantauan kelembaban tanah
// dengan menggunakan tiga LED
// ---------------------------------------

const int PIN_SENSOR = 0;


const int PIN_MERAH = 2;
const int PIN_KUNING = 3;
const int PIN_HIJAU = 4;

char ledMenyala = 0x20; // Spasi

void setup()
{
Serial.begin(9600);

pinMode(PIN_MERAH, OUTPUT);
pinMode(PIN_KUNING, OUTPUT);
pinMode(PIN_HIJAU, OUTPUT);
}

void loop()
{
int dataPin = analogRead(PIN_SENSOR);

if (dataPin < 250)


{
if (ledMenyala != 'H')

45
{
digitalWrite(PIN_MERAH, LOW);
digitalWrite(PIN_KUNING, LOW);
digitalWrite(PIN_HIJAU, HIGH);

ledMenyala = 'H';
}
}
else
if (dataPin < 700)
{
if (ledMenyala != 'K')
{
digitalWrite(PIN_MERAH, LOW);
digitalWrite(PIN_KUNING, HIGH);
digitalWrite(PIN_HIJAU, LOW);

ledMenyala = 'K';
}
}
else
{
if (ledMenyala != 'M')
{
digitalWrite(PIN_MERAH, HIGH);
digitalWrite(PIN_KUNING, LOW);
digitalWrite(PIN_HIJAU, LOW);

ledMenyala = 'M';
}
}

Serial.println(dataPin);
}

3. Sketch 3
// -----------------------------------
// Penggunaan sensor DHT11
// untuk mengukur kelembaban udara
// dan suhu udara
// -----------------------------------

#include <dht.h>

46
const int PIN_SENSOR = 0;

dht DHT;

void setup()
{
Serial.begin(9600);
Serial.println("Informasi kelembaban dan suhu udara");
}

void loop()
{
DHT.read11(PIN_SENSOR);
Serial.print("Kelembaban udara = ");
Serial.print(DHT.humidity);
Serial.println("%");
Serial.print("Suhu = ");
Serial.println(DHT.temperature);

delay(1000); // Diperlukan oleh DHT11


}

E. Tugas
1. Bualtah gamabar flow chart yang ada di dalan sketch yang ada.
2. Buatlah kesimpulan dari hasil pengmatan yang telah anda buat.

47
Job Sheet 11 Aplikasi Pengukur jarak (Sensor Ultrasonic)

A. Tujuan
1. Taruna dapa memahami cara kerja dari modul sensor Ultrasonik
2. Taruna dapat merangkai dan membuat program untuk mengukur jarak dengan
menggunakan modul sensr ultrasonic.
B. Alat dan Bahan
1. Arduino uno 1 unit
2. Modul sensor ultrasonic HC-SR04 1 unit
3. Kabel jumper.

C. Teori
Ketinggian air dapat diukur menggunakan sensor ultrasonic yang dikhusukan
untuk mengukur jarak. Salah satunya adalah sensor ultrasonic HC-SR04. Sensor
ultrasonic bekerja atas dasar suara. Pertama-tama gelombang suara dipantulkan oleh
suatu bagian pengirim yang diberi nama Triger. Kemudian gelombang suara
pantulan akan ditangkap oleh bagian penerima yang disebut Echo. Waktu yang
diperlukan dari saat gelombang suara dikirim hingga Kembali dapat digunakan untuk
menghitung jarak antara pengirim objek yang memantulkan suara.
Jarak antara sensor dan objek yang memantulkan gelombang suara dihitung
dengan menggunakan rumus sebagai berikut:
T
Jarak=kecepatan suara ×
2
T = waktu tempuh dari saat sinyal ultrasonic dipancarkan hingga Kembali.
Kecepatan suara = 343 m/detik

Prinsip kerja pengiriman sinyal oleh Trig dan penerimaan oleh Echo adalah sebagai
berikut:
3. Trig harus dalam keadaan HIGH paling tidak selama 10 detik
4. Modul Ultrasonik pun akan mengirim gelombang kotak dengan frekuensi 40kHz
5. Gelombang yang akan dikirim tersebut akan dipantau dengan sendirinya oleh
modul ultrasonic. Dalam hal ini, waktu yang digunakan dari saat pengiriman sinyal
hingga diterima Kembali adalah T. Pada waktu itulah pin Echo akan dalam
keadaan HIGH.
Dengan syntax program sebagai berikut:
T=pulseIn(PIN_ECHO,HIGH);

6. Karena T telah diperoleh, jarak dihitung dengan menggunakan rumus diatas.

48
7. Mengingat kecepatan suara sebesar 343 m/detik atau 34300cm/detik. Waktu
dinyatakan dalam detik diubah dalam satuan mikrodetik maka T/10 -6 sehingga
didapat:
T
10−6 T
jarak =34300× =0,0343 × cm
2 cm 2

D. Rangkaian
Cara merangkai modul ultrasonic sebagai berikut:
1. Pin VCC dihubungakan ke tegangan 5V
2. PinTrig dihubungkan ke pin 13 pada arduino
3. Pin Echo dihubungkan ke pin 12 pada Arduino
4. Pin GND dihubungkan ke GND pada Arduino.

E. Sketch
1. Sketch 1
//Untuk mengukur tinggi air

const int PIN_TRIG = 13;


const int PIN_ECHO = 12;

const double JARAK_DASAR = 23.12; //Diperoleh saat gelas disingkirkan

void setup()
{
Serial.begin (9600);

pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, OUTPUT);
}

void loop()
{
digitalWrite(PIN_TRIG, HIGH);
delayMicrosecond(10);
digitalWrite(PIN_TRIG, LOW);

double selang = pulseIn(PIN_ECHO, HIGH);

double tinggi = JARAK_DASAR – 0.0343 * (selang / 2);

Serial.print(tinggi);

49
Serial.print(“ cm”);

Delay(1000);
}

F. Tugas
1. Bualtah gambarflow chart dari program diatas.
2. Buatlah kesimpulah cara kerja dari rangkaian diatas.

50
Job Sheet 12 Aplikasi Sensor Gerak

A. Tujuan
1. Taruna dapat memahami cara kerja dari sensor PIR (passive Infra Red)
2. Taruna dapat merangkai dan membuat program aplikasi sensor gerak.
B. Alat dan Bahan
1. Arduino Uno 1 unit
2. Modul sensor PIR 1 unit
3. Resistor 1k Ohm 1 buah
4. LED 1 buah
5. Kabel jumper

C. Rangkaian

D. Sketch
1. Sketch 1
// -------------------------------------------
// Contoh penggunaan detektor gerakan PIR
// -------------------------------------------

const int PIN_SENSOR = 12;

void setup()
{
Serial.begin(9600);

pinMode(PIN_SENSOR, INPUT);
}

void loop()
{
int nilaiPin = digitalRead(PIN_SENSOR);
if (nilaiPin == HIGH)
Serial.println("HIGH");
else
Serial.println("LOW");

51
delay(1000);
}
2. Sketch 2
// -------------------------------------------
// Contoh penggunaan PIR
// untuk mengendalikan LED
// -------------------------------------------

const int PIN_SENSOR = 12;


const int PIN_LED = 7;
const int INTERVAL = 2000;
int waktuAwal = 0;

void setup()
{
pinMode(PIN_SENSOR, INPUT);
pinMode(PIN_LED, OUTPUT);
}

void loop()
{
int nilaiPin = digitalRead(PIN_SENSOR);
if (nilaiPin == HIGH)
{
digitalWrite(PIN_LED, HIGH);
waktuAwal = millis();
}

// Matikan LED kalau interval waktu telah tercapai


if (millis() - waktuAwal > INTERVAL)
digitalWrite(PIN_LED, LOW);
}

E. Tugas
1. Buatlah gambar flow chartnya rangkaian diatas.

52
2. Job Sheet 13

A. Tujuan
B. Alat dan Bahan
C. Rangkaian
D. Sketch
E. Tugas

53
Job Sheet 14 Pemrograman 7-segmen CA

A. Tujuan
1. Taruna dapat memahami 7-segmen Common Anoda (CA) display
2. Taruna dapat merangkai dan membuat program 7-segmen display

B. Alat dan Bahan


1. Arduio Uno 1 unit
2. 7-segmen 1 buah
3. Resistor 1k Ohm 8 buah

C. Rangkaian

54
D. Sketch
1. Sketch 1 Common Anoda
// ------------------------------------------
// Contoh pemrograman 7-segmen
// berjenis common anode
// ------------------------------------------

const byte SEGMEN[10] =


{
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};

const int PIN_SEGMEN[8] = { 12, 11, 10, 9, 8, 7, 6, 5};

void setup()
{
Serial.begin(9600);

// Inisialisasi pin segmen


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

void loop()
{
// Tampilkan 0 s/d 9
for (int j = 0; j < 10; j++)
{
Serial.println(j);
tampilkanAngka(j);
delay(2000);
}

delay(3000);
}

55
void tampilkanAngka(int angka)
{
// Abaikan kalau angka tidak antara 0 dan 9
if ((angka < 0) || (angka > 9))
return;

byte dataSegmen = SEGMEN[angka];


for (int j = 0; j < 8; j++)
{
int bit = bitRead(dataSegmen, 7-j);

if (bit == HIGH)
digitalWrite(PIN_SEGMEN[j], LOW);
else
digitalWrite(PIN_SEGMEN[j], HIGH);
}
}
2. Sektch 2 Comon Catoda
// ------------------------------------------
// Contoh pemrograman 7-segmen
// berjenis common cathode
// ------------------------------------------

const byte SEGMEN[10] =


{
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};

const int PIN_SEGMEN[8] = { 12, 11, 10, 9, 8, 7, 6, 5};

void setup()
{
Serial.begin(9600);

56
// Inisialisasi pin segmen
for (int j = 0; j < 8; j++)
pinMode(PIN_SEGMEN[j], OUTPUT);
}

void loop()
{
// Tampilkan 0 s/d 9
for (int j = 0; j < 10; j++)
{
Serial.println(j);
tampilkanAngka(j);
delay(2000);
}

delay(3000);
}

void tampilkanAngka(int angka)


{
// Abaikan kalau angka tidak antara 0 dan 9
if ((angka < 0) || (angka > 9))
return;

byte dataSegmen = SEGMEN[angka];


for (int j = 0; j < 8; j++)
{
int bit = bitRead(dataSegmen, 7-j);

if (bit == HIGH)
digitalWrite(PIN_SEGMEN[j], HIGH);
else
digitalWrite(PIN_SEGMEN[j], LOW);
}
}
E. Tugas
1. Buatlah gambar flow chartnya rangkaian diatas.

57
Job Sheet 14 Aplikasi penampil 4 buah 7-segmen

A. Tujuan
1. Taruna dapat memahami modul 4 buah 7-segmen
2. Taruna dapat merangkai dan membuat program penampil 4 buah 7-segemen.

B. Alat dan Bahan


1. Arduino Uno 1 unit
2. Modul 4 buah 7-segemen 1 buah
3. Kabel jumper

C. Rangkaian

D. Sketch
1. Sketch 1
// --------------------------------------------
// Contoh untuk menguji empat penampil 7 segmen
// berjenis common anode
// --------------------------------------------

#include <TimerOne.h>

const byte PIN_SEGMEN[] = {12, 11, 10, 9, 8, 7, 6, 5};


const byte PIN_KONTROL[] = {14, 15, 16, 17};

const byte SEGMEN[10] =


{
// ABCDEFGDP
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};

58
float nilai; // Asumsi: bagian bulat selalu 2 digit

void setup()
{
Serial.begin(9600);

for (byte indeks = 0; indeks <8; indeks++)


{
pinMode(PIN_SEGMEN[indeks], OUTPUT);
digitalWrite(PIN_SEGMEN[indeks], HIGH);
}

for (byte indeks = 0; indeks <4; indeks++)


{
pinMode(PIN_KONTROL[indeks], OUTPUT);
digitalWrite(PIN_KONTROL[indeks], LOW);
}

// Atur timer
Timer1.initialize(10000);

// Pasang fungsi yang akan dijalankan


Timer1.attachInterrupt(segarkanSegmen);
}

void loop()
{
// Bangkitkan bilangan pecahan yang bagian bulatnya
// selalu berjumlah dua digit
nilai = random (10, 99) + (random(0, 100) / 100.0);
Serial.println(nilai);

delay(500);
}

void segarkanSegmen()
{
// Konversikan isi nilai eke string
char st[6];
dtostrf(nilai, 0, 2, st);

// Tampilkan angka ke masing-masing 7-segmen


tampilkanSegmen(0, st[0] - '0');

59
tampilkanSegmen(1, st[1] - '0');
tampilkanSegmen(2, st[3] - '0');
tampilkanSegmen(3, st[4] - '0');
}

void tampilkanSegmen(byte idSegmen, int bilangan)


{
// Matikan kontrol selain idSegmen dan
for (byte indeks = 0; indeks < 4; indeks++)
digitalWrite(PIN_KONTROL[indeks], LOW);

// Hidupkan pinKontrol idSegmen


digitalWrite(PIN_KONTROL[idSegmen], HIGH);

// Matikan semua segmen


for (byte indeks = 0; indeks < 8; indeks++)
digitalWrite(PIN_SEGMEN[indeks], HIGH);

// Aktifkan segmen sesuai dengan bilangan


for (byte indeks = 0; indeks < 7; indeks++)
if (bitRead(SEGMEN[bilangan], 7 - indeks) == 1)
digitalWrite(PIN_SEGMEN[indeks], LOW);

// Hidupkan DP khusus untuk idSegmen = 1


if (idSegmen == 1)
digitalWrite(PIN_SEGMEN[7], LOW);

// Tunda sebentar
delay(100);
}
2. Sketch 2
// --------------------------------------------
// Contoh untuk menguji empat penampil 7 segmen
// berjenis common katode
// --------------------------------------------

#include <TimerOne.h>

const byte PIN_SEGMEN[] = {12, 11, 10, 9, 8, 7, 6, 5};


const byte PIN_KONTROL[] = {14, 15, 16, 17};

const byte SEGMEN[10] =


{
// ABCDEFGDP

60
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};

float nilai; // Asumsi: bagian bulat selalu 2 digit

void setup()
{
Serial.begin(9600);

for (byte indeks = 0; indeks <8; indeks++)


{
pinMode(PIN_SEGMEN[indeks], OUTPUT);
digitalWrite(PIN_SEGMEN[indeks], HIGH);
}

for (byte indeks = 0; indeks <4; indeks++)


{
pinMode(PIN_KONTROL[indeks], OUTPUT);
digitalWrite(PIN_KONTROL[indeks], LOW);
}

// Atur timer
Timer1.initialize(10000);

// Pasang fungsi yang akan dijalankan


Timer1.attachInterrupt(segarkanSegmen);
}

void loop()
{
// Bangkitkan bilangan pecahan yang bagian bulatnya
// selalu berjumlah dua digit
nilai = random (10, 99) + (random(0, 100) / 100.0);
Serial.println(nilai);

61
delay(500);
}

void segarkanSegmen()
{
// Konversikan isi nilai eke string
char st[6];
dtostrf(nilai, 0, 2, st);

// Tampilkan angka ke masing-masing 7-segmen


tampilkanSegmen(0, st[0] - '0');
tampilkanSegmen(1, st[1] - '0');
tampilkanSegmen(2, st[3] - '0');
tampilkanSegmen(3, st[4] - '0');
}

void tampilkanSegmen(byte idSegmen, int bilangan)


{
// Matikan kontrol selain idSegmen dan
for (byte indeks = 0; indeks < 4; indeks++)
digitalWrite(PIN_KONTROL[indeks], HIGH);

// Hidupkan pinKontrol idSegmen


digitalWrite(PIN_KONTROL[idSegmen], LOW);

// Matikan semua segmen


for (byte indeks = 0; indeks < 8; indeks++)
digitalWrite(PIN_SEGMEN[indeks], LOW);

// Aktifkan segmen sesuai dengan bilangan


for (byte indeks = 0; indeks < 7; indeks++)
if (bitRead(SEGMEN[bilangan], 7 - indeks) == 1)
digitalWrite(PIN_SEGMEN[indeks], HIGH);

// Hidupkan DP khusus untuk idSegmen = 1


if (idSegmen == 1)
digitalWrite(PIN_SEGMEN[7], HIGH);

// Tunda sebentar
delay(100);
}
3. Sketch 3
// --------------------------------------------
// Contoh penyajian informasi suhu

62
// di empat penampil 7 segmen
// berjenis common cathode
// --------------------------------------------

#include <TimerOne.h>

const byte PIN_SEGMEN[] = {12, 11, 10, 9, 8, 7, 6, 5};


const byte PIN_KONTROL[] = {14, 15, 16, 17};
const byte PIN_SENSOR = 5; // pin analog A5

const byte SEGMEN[10] =


{
// ABCDEFGDP
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};

float nilai; // Asumsi: bagian bulat selalu 2 digit

void setup()
{
Serial.begin(9600);

for (byte indeks = 0; indeks <8; indeks++)


{
pinMode(PIN_SEGMEN[indeks], OUTPUT);
digitalWrite(PIN_SEGMEN[indeks], HIGH);
}

for (byte indeks = 0; indeks <4; indeks++)


{
pinMode(PIN_KONTROL[indeks], OUTPUT);
digitalWrite(PIN_KONTROL[indeks], LOW);
}

// Atur timer

63
Timer1.initialize(10000);

// Pasang fungsi yang akan dijalankan


Timer1.attachInterrupt(segarkanSegmen);
}

void loop()
{
// Baca suhu
int dataPin = analogRead(PIN_SENSOR);

// nilai diisi dengan nilai celsius


nilai = dataPin / 1023.0 * 5 * 100;

Serial.println(nilai);

delay(500);
}

void segarkanSegmen()
{
// Konversikan isi nilai eke string
char st[6];
dtostrf(nilai, 0, 2, st);

// Tampilkan angka ke masing-masing 7-segmen


tampilkanSegmen(0, st[0] - '0');
tampilkanSegmen(1, st[1] - '0');
tampilkanSegmen(2, st[3] - '0');
tampilkanSegmen(3, st[4] - '0');
}

void tampilkanSegmen(byte idSegmen, int bilangan)


{
// Matikan kontrol selain idSegmen dan
for (byte indeks = 0; indeks < 4; indeks++)
digitalWrite(PIN_KONTROL[indeks], HIGH);

// Hidupkan pinKontrol idSegmen


digitalWrite(PIN_KONTROL[idSegmen], LOW);

// Matikan semua segmen


for (byte indeks = 0; indeks < 8; indeks++)
digitalWrite(PIN_SEGMEN[indeks], LOW);

64
// Aktifkan segmen sesuai dengan bilangan
for (byte indeks = 0; indeks < 7; indeks++)
if (bitRead(SEGMEN[bilangan], 7 - indeks) == 1)
digitalWrite(PIN_SEGMEN[indeks], HIGH);

// Hidupkan DP khusus untuk idSegmen = 1


if (idSegmen == 1)
digitalWrite(PIN_SEGMEN[7], HIGH);

// Tunda sebentar
delay(100);
}
E. Tugas
1. Buatlah gambar flow chartnya rangkaian diatas.

65
Job Sheet 15 aplikasi penampil matrix LED dengan max 7219

A. Tujuan
1. Taruna dapat memahami cara kerja modul MatrixLed max 7219
B. Alat dan Bahan
1. Arduino Uno 1 unit
2. Modul matrix Led Max7219 1 unit
3. Kabel jumper
C. Teori

D. Rangkaian

E. Sketch
1. Sketch 1
// -----------------------------------------
// Contoh pemakaian modul matriks LED
// MAX72XX dan pustaka LedControl
// -----------------------------------------

#include "LedControl.h"

const int JUMLAH_LED = 1;


const int PIN_CS = 10;
const int PIN_CLK = 11;
const int PIN_DIN = 12;

const byte HURUF_F[] =


{
B00111100,
B00100000,
B00100000,
B01111000,
B01100000,
B01100000,
B01100000,
B00000000
};

66
// Buat objek lc berkelas LedControl
LedControl lc = LedControl(PIN_DIN, PIN_CLK, PIN_CS, JUMLAH_LED);

void setup()
{
// Menghidupkan penampil nomor 0
lc.shutdown(0, false);

// Mengatur intensitas kecerahan (0 hingga 15)


lc.setIntensity(0,8);

// Menghapus layar
lc.clearDisplay(0);
}

void loop()
{
// Mengaktifkan semua LED
for (int baris = 0; baris < 8; baris++)
{
for (int kolom = 0; kolom < 8; kolom++)
{
lc.setLed(0, baris, kolom, true);
}
}

delay(1000);

// Mematikan semua LED


for (int baris = 0; baris < 8; baris++)
{
for (int kolom = 0; kolom < 8; kolom++)
{
lc.setLed(0, baris, kolom, false);
}
}

delay(1000);

// Menampilkan huruf
for (int baris = 0; baris < 8; baris++)
{
for (int kolom = 0; kolom < 8; kolom++)
{

67
if (bitRead(HURUF_F[baris], 7 - kolom) == 1)
lc.setLed(0, baris, kolom, true);
else
lc.setLed(0, baris, kolom, false);
}
}

delay(2000);
}
2. Sketch 2
3. Sketch 3
F. Tugas

68
Job Sheet 16 Pemrograman LCD tipe HD44780

A. Tujuan
B. Alat dan Bahan
C. Rangkaian
D. Sketch
E. Tugas

69
Job Sheet 17 Node MCU

A. Tujuan
B. Alat dan Bahan
C. Rangkaian
D. Sketch
E. Tugas

70
Job Sheet 18 Node MCU

A. Tujuan
B. Alat dan Bahan
C. Rangkaian
D. Sketch
E. Tugas

71
Job Sheet 19 Node MCU

A. Tujuan
B. Alat dan Bahan
C. Rangkaian
D. Sketch
E. Tugas

72

Anda mungkin juga menyukai