Anda di halaman 1dari 106

JOBSHEET PRODUK KREATIF XI, XII JILID 1

“Disusun Sebagai Modul Pembelajaran Praktek Produk Kreatif”

Disusun Oleh
Eris Rifaldi, S.Pd.

SMK PASUNDAN 2 BANJARAN 2020


DAFTAR ISI

A. Introduction Arduino ........................................................................................................... 1


B. Installing Arduino IDE ........................................................................................................ 3
C. Programming Arduino ........................................................................................................ 6
D. Arduino ............................................................................................................................. 20
JobDesk1. Blink LED ........................................................................................................... 20
JobDesk2. Lampu Lalu Lintas .............................................................................................. 24
JobDesk3. Perakitan Produk Menyalakan Lampu Dengan Bluetooth .................................. 31
JobDesk4. Perakitan Produk Menyalakan Lampu Dengan Bluetooth dengan (Suara) ........ 36
JobDesk5. Perakitan Produk Running Text dengan Arduino ............................................... 41
JobDesk6. Perakitan Produk Arduino Sederhana Part 1 (Assembly Component) ............... 47
JobDesk7. Perakitan Produk Arduino Sederhana Part 2 (Burn BootLoader Arduino)......... 50
JobDesk8. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 1 (Motor DC)........................................................................ 55
JobDesk9. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 2 (Sensor Cahaya TCRT 5000) ............................................ 59
JobDesk10. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 3 (Servo Motor) .................................................................... 62
JobDesk11. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 4 (Ultrasonic) ....................................................................... 65
JobDesk12. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 5 (Modul Bluetooth) ............................................................. 68
JobDesk13. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 6 (Robot RC Bluetooth) ....................................................... 70
JobDesk14. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 7 (Robot RC Line Follower) ................................................ 74
JobDesk15. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 8 (Robot RC Obstacle Avoiding) ......................................... 76
E. Internet of Thinks (IoT)..................................................................................................... 78
Jobdesk16. Perakitan produk IoT lampu otomatis dengan Blynk ........................................ 78
Jobdesk17. Perakitan produk IoT lampu otomatis dengan Telegram ................................... 84
Jobdesk18. Perakitan produk IoT Sending Photo Using ESP32 Cam to Telegram ............. 90
Jobdesk19. Perakitan produk IoT CCTV Web Server Using ESP32 Cam ......................... 101

Eris Rifaldi i
Modul Produk Kreatif kelas XI dan XII
A. Introduction Arduino
Apa itu Mikrokontroler?
Menurut wikipedia:
“A microcontroller (sometimes abbreviated µC, uC or MCU) is a small computer on a single
integrated circuit containing a processor core, memory, and programmable input/output
peripherals. “
Dalam diskusi sehari-hari dan di forum internet, mikrokontroler sering dikenal dengan sebut
µC, uC, atau MCU. Terjemahan bebas dari pengertian tersebut, bisa dikatakan bahwa
mikrokontroller adalah komputer yang berukuran mikro dalam satu chip IC (integrated circuit)
yang terdiri dari processor, memory, dan interface yang bisa diprogram. Bisa disebut juga
komputer mikro karena dalam IC atau chip mikrokontroler terdiri dari CPU, memory, dan I/O
(Input/ Output) yang bisa di kontrol dengan cara memprogram mikrokontroler tersebut. I/O
biasanya dikenal dengan GPIO (General Purpose Input Output Pins) yang bermakna : pin
yang bisa diprogram sebagai input atau output sesuai dengan kebutuhan.

Gambar 1.1 Board Arduino Uno


Pada modul ini digunakan board Arduino Uno (Gambar 1.1) sebagai mikrokontroler untuk
pembelajaran. Hal yang dibutuhkan untuk memprogram board Arduino adalah satu buah
mikrokontroler Arduino sebagai kontroler yang akan diprogram dan software Arduino IDE
yang digunakan untuk memprogram mikrokontroler sehingga program dapat dibuat terlebih
dahulu dan disimpan pada mikrokontroler. Kelebihan dari Arduino yaitu bersifat open source,
yang berarti kita bebas mengembangkan Arduino itu sesuai dengan kebutuhan.

Gambar 1.2 Project board dan Kabel Jumper

Eris Rifaldi 1
Modul Produk Kreatif kelas XI dan XII
Pada praktek yang akan dilakukan, selain aplikasi dan hardware yang diperlukan ada komponen
lain yang dibutuhkan yaitu project board (ada yang menyebutnya dengan istilah bread board)
serta beberapa kabel jumper untuk menghubungkan antara komponen dan board Arduino
(Gambar 1.2). Dengan project board kita tidak perlu menyolder rangkaian sehingga relatif
mudah dan cepat dalam merangkai. Project board memungkinkan kita untuk membangun dan
membongkar rangkaian dengan cepat sehingga sangat cocok untuk eksperimen. Tetapi jika
ingin membuat rangkaian permanen, maka pembuatan project haruslah menggunakan PCB
(Printed Circuit Board).

Gambar 1.3 Peta jalur pada project board


Pada proses perangkaian skematik yang terpenting adalah, harus memahami jalur-jalur pada
project board. Project board terdiri dari jalur vertikal dan jalur horizontal. Jalur vertikal ada di
bagian tengah yang terdiri dari 2 x 64 jalur. Masing-masing jalur terdiri dari 5 titik vertikal,
misal jalur 1A1B-1C- 1D-1E dan jalur 1F-1G-1H-1I-1J yang kedua tidak saling tersambung.
Jalur horisontal sebanyak 8 jalur, 4 jalur ada di bagian atas dan 4 jalur lagi di bagian bawah.
Jalur ini bisa digunakan untuk power supply (VCC dan GND) untuk rangkaian. Untuk lebih
jelasnya, silakan perhatikan Gambar 1.3. Garis merah menunjukkan bahwa lubang tersebut
terhubung secara fisik.

Eris Rifaldi 2
Modul Produk Kreatif kelas XI dan XII
B. Installing Arduino IDE
Aplikasi Arduino IDE dapat di-download pada link resmi Arduino yaitu di ”Arduino.cc”.
Software Arduino ada yang versi installer untuk windows atau Mac Os dan versi terkompres
dalam file eksistensi zip. Apabila memilih versi tanpa install (format .zip), maka hanya perlu
mengekstraknya di folder mana saja pada PC atau Laptop serta dapat langsung digunakan
aplikasinya. Untuk pengguna Windows, Anda bisa menginstall dengan mengikuti instruksi
pada modul ini.

Instalasi Arduino IDE

1. Download aplikasi Arduino IDE pada link resmi arduino.cc atau


https://www.arduino.cc/en/Main/Software
2. Download sesuai OS dari PC atau Laptop yang digunakan, Windows Installer/ZIP/Mac
OS/ Linux
3. Setelah File diunduh maka hanya tinggal proses instalasi dan tekan yes untuk setiap
tahapan instalasi Aplikasi.
untuk lebih jelas step by step nya dapat dilihat pada link ini:
https://youtu.be/xXgg8nsrFWY

Instalasi driver CH340 (Apabila menggunakan Arduino SMD)

1. Unduh terlebih dahulu driver CH340 pada link https://sparks.gogo.co.nz/ch340.html dan


sesuaikan dengan OS PC atau Laptop.
2. Install driver tersebut dengan cara
Extract file CH340.rar yang telah diunduh.
Lalu instal seperti file biasa, maka akan tampil
seperti gambar di bawah ini.

Gambar 2.1 Instalasi Driver CH340


Klik install lalu tunggu hingga selesai.
3. Jika berhasil, dan arduino terinisialisasi berarti instalasi selesai. Maka ketika membuka
device manager akan tampil port arduino seperti berikut:

Eris Rifaldi 3
Modul Produk Kreatif kelas XI dan XII
Gambar 2.2 Tampilan Device Manager
device manager dapat dicari dengan tahapan search aplikasi device manager

Arduino IDE

Gambar 2.3 Tampilan Window Arduino IDE

Untuk memprogram board Arduino, kita butuh aplikasi IDE (Integrated Development
Environment) bawaan dari Arduino. Aplikasi ini berguna untuk membuat, membuka, dan
mengedit source code Arduino (Sketches, para programmer menyebut source code arduino
dengan istilah "sketches").
Selanjutnya, jika kita menyebut source code yang ditulis untuk Arduino, kita sebut "sketch".
Sketch
merupakan source code yang berisi logika dan algoritma yang akan diupload ke dalam IC
mikrokontroller (Arduino).
Interface Arduino IDE seperti gambar diatas dari kiri ke kanan dan atas ke bawah, bagian-
bagian IDE Arduino terdiri dari:
o Verify : pada versi sebelumnya dikenal dengan istilah Compile. Sebelum aplikasi di-upload
ke board Arduino, biasakan untuk memverifikasi terlebih dahulu sketch yang dibuat. Jika
ada kesalahan pada sketch, nanti akan muncul error. Proses Verify /Compile mengubah
sketch ke binary code untuk diupload ke mikrokontroller

Eris Rifaldi 4
Modul Produk Kreatif kelas XI dan XII
o Upload : tombol ini berfungsi untuk mengupload sketch ke board Arduino. Walaupun kita
tidak mengklik tombol verify, maka sketch akan decompile, kemudian langsung diupload
ke board. Berbeda dengan tombol verify yang hanya berfungsi untuk memverifikasi source
code saja.
o New Sketch : Membuka window dan membuat sketch baru
o Open Sketch : Membuka sketch yang sudah pernah dibuat. Sketch yang dibuat dengan IDE
Arduino akan disimpan dengan ekstensi file .ino
o Save Sketch : menyimpan sketch, tapi tidak disertai mengcompile.
o Serial Monitor : Membuka interface untuk komunikasi serial, nanti akan kita diskusikan
lebih lanjut pada bagian selanjutnya
o Keterangan Aplikasi : pesan-pesan yang dilakukan aplikasi akan muncul di sini, misal
"Compiling" dan "Done Uploading" ketika kita mengcompile dan mengupload sketch ke
board Arduino
o Konsol : Pesan-pesan yang dikerjakan aplikasi dan pesan-pesan tentang sketch akan muncul
pada bagian ini. Misal, ketika aplikasi mengcompile atau ketika ada kesalahan pada sketch
yang kita buat, maka informasi error dan baris akan diinformasikan di bagian ini.
o Baris Sketch : bagian ini akan menunjukkan posisi baris kursor yang sedang aktif pada
sketch.
o Informasi Port : bagian ini menginformasikan port yang dipakah oleh board Arduino.

Eris Rifaldi 5
Modul Produk Kreatif kelas XI dan XII
C. Programming Arduino
1. Addition, Subtraction, kelemahan dalam memiliki ukuran yang
Multiplication, & Division besar dan kecepatan komputasi yang
Deskripsi rendah
Operasi ini memberikan hasil penambahan, o Gunakanlah operasi penglihan seperti
pengurangan, pembagian dan perkalian dari (int)myFloat untu merubah sebuah
dua operasi. Operasi adalah pengaturan variable menjadi variable lain yang
menggunakan dua tipe data dalam operasi belum kita ketahui.
seperti 9/4 adalah 2 dimana 9 dan 4 adalah 1.1. assignment operator (single equal
intejer. Selain itu bisa juga diartikan operasi sign)
tersebut merupakan dapat menangani hasil Menyimpan nilai variable sebelah kanan ke
yang mempunyai range dalam sebuah tipe dalam variable sebelah kiri. Single equal
data ( 1 intejer mempunyai nilai 32,767 sign dalam pemrograman C adalah
sampai -32,768). Jika beberapa operan pemanggilan operator tugas (assignment
mempunyai perbedaa tipe data yang “besar” operator). Hal ini berbeda dengan kelas
yang digunakan untuk perhitungan. Salah aljabar yang mengindikasikan persamaan
satu operan yang digunaka adalah tipe float atau penyamaan. Operator penugasan ini
atau tipe double, floating point dapat memberitahu mikrokontroler untuk
digunakan untuk penghitungan mengevaluasi nilai apapun atau ekspresi
yang berada di sebelah kanan dan
Contoh menyimpannya ke dalam variable sebelah
y = y + 3; kiri.
x = x - 7;
i = j * 6;
r = r / 5; Contoh
int sensVal; // mendeklarasikan
sensVal
Syntax sebagai variable //intejer
result = value1 + value2; senVal = analogRead(0); // menyimpan
result = value1 - value2; (dijitasi) voltase //yang masuk pada
result = value1 * value2; analog pin ke 0 dalam sensVal
result = value1 / value2;

tips pemrograman
Parameter
Variable yang ada di sebelah kiri dari
Value1 : merupakan variable atau konstan
assignment
Value2 :merupakan variable atau konstan
operation (= sign) dibutuhkan untuk
Tips
digunakan
pemrograman :
menjaga nilai yang sudah tersimpan di
o Ketahui bahwa integer constan default
dalamnya.
untuk int sehingga beberapa konstanta
Jika hal itu tidak cukup besar untuk
penghitungan bisa overflow (60*1000
menangani
akan menghasilkan hasil yang negative)
sebuah nilai, nilai yang sudah tersimpan di
o Pilih besaran variable yang besarnya
variable
cukup untuk menangani hasil dari
tersebut akan menjadi salah. Jangan
penghitungan Anda
terkecoh
o Ketahui bahwa tanda operasi bilangan
dengan assignment operator [=] (sama
yang akan Anda gunakan harus
dengan)
langsung sesuai arah matematika
dengan operator komparasi [==] (dobel
contoh 0-1 atau 0 - - 32768
sama
o Untuk pemrograman yang memerlukan
dengan) yang mengevaluasi dua ekspresi
pecahan, gunakanlah vaiabel float, tapi
menjadi hasil.
perlu disadari hal ini mempunyai

Eris Rifaldi 6
Modul Produk Kreatif kelas XI dan XII
2. TIPE DATA x = x - 1; // x sekarang 65535
x = x + 1; // x sekarang 0
2.1 Int
Intejer merupakan tipe data yang utama dari 2.3 Word
macam penyimpanan dan terdiri dari 2 nilai Sebuah word menyimpan 16 bit angka dari
byte. Mempunyai range dari -32,768 0 sampai65535 sama seperti unsigned int
sampai 32,762 (nilai minimal adalah -2^15 Contoh
dan nilai maksimal (2615)-1 ) word w = 10000;
2.4 byte
Contoh byte menyimpan sebuah 8-bit dari 0 sampai
255
int ledPin = 13;
Contoh
byte b = B10010; // "B" is the binary
Syntax formatter (B10010 = 18 decimal)
Int var = val;
2.5 float
var – nama variable intejer Anda
Tipe data untuk angka floating point,
val – nilai yang diberikan dalam variable
sebuah angka yang mempunyai titik
Anda
decimal. Floating-point sering digunakan
pada nilai yang mendekati analog dan nilai
Tips Coding
yang berkesinambungan karena
Saat beberapa variable dibuat untuk
mempunyai resolusi yang lebih tinggi dari
melebihi kapasitas maksimal, maka nilai
pada intejer. Floating-point mempunyai
tersebut akan membalik ke minimal
besar 3.4028235E+38 dan 3.4028235E+38.
kapasitas, begitu juga sebaliknya.
Sehingga dapat menyimpan 32bit (4byte. )
int x informasi. Float hanya mempunyai
x = -32,768; kepresisian 6 – 7 dijit desimal. Yang
x = x - 1; // x sekarang menjadi maksudnya total angka dari dijitnya bukan
//32,767 – berbalik ke arah negatif.
angka dari titik kanan setelah decimal.
x = 32,767; Tidak seperti platform, dimana Anda dapat
x = x + 1; // x sekarang menjadi mendapatkan akurasi dari penggunaan tipe
//32,768 – berbalik kearah positif
data double (sampai 15 dijit) dalam arduino,
2.2 Unsigned Int double adalah besarnya sama seperti float.
Unsign int sama seperti int, namun dalam Angka Floating-point belum tentu tepat,
pemberian angka negative tidak dan bisa menghasilkan hasil yang tidak
diperkenankan, sebagai gantinya nilai biasa saat di komparasi.
negative digantikan nilai positif sehingga Seperti misalkan 6.0 / 3.0 hasilnya mungkin
mempunyai range 0 sampai 65,535 (2^16)- bukan 2.0 Anda harus mengganti dan
1). mengecek nya karena nilai absolute berbeda
Contoh dengan angka yang memiliki ketelitian.
unsigned int ledPin = 13;
Syntax Contoh
unsigned int var = val; float myfloat;
var – nama variable unsigned Anda float sensorCalbrate = 1.117;
val – nilai yang berada dalam variable Syntax
float var = val;
tersebut.
var – nama variable Anda val – nilai yang
Tips Coding
diberikan
Ketika membuat variable yang melebihi
Contoh Kode
kapasitas, maka akan membalik ke int x;
kapasitas minimum int y;
float z;
unsigned int x
x = 0; x = 1;

Eris Rifaldi 7
Modul Produk Kreatif kelas XI dan XII
y = x / 2; // y sekarang 0, int tidak
dapat mengani nya
z = (float)x / 2.0; // z sekarang .5 2.9 Boolean
(Anda memiliki hasil 2.0, bukan 2) Boolean menangani dua nilai yaitu true atau
false sedangkan variable menempati satu
2.6 double byte dari memori.
Dalam Arduino, Double sama seperti float Contoh
namun int LEDpin = 5; // LED pada pin 5
int switchPin = 13; //saat switch
memiliki kepresisian yang sedikit berbeda. terpasang pada pin 13,
Tips yang lain terkoneksi pada ground
Pengguna yang membawa kode dari source
boolean running = false;
code dari
luar yang didalamnya terdapat variable void setup()
double lebih {
pinMode(LEDpin, OUTPUT);
baik diuji terlebih dahulu untuk mengetahui pinMode(switchPin, INPUT);
perbedaan digitalWrite(switchPin, HIGH); //
menghidupkan pullup resistor
ketepatan yang terdapat pada Arduino. }

2.7 Long void loop()


{
Variable long adalah variable yang if (digitalRead(switchPin) == LOW)
mempunyai penyimpanan angka yang lebar { // switch ditekan – pullup membiarkan
yaitu 32bit (4byte) dari -2,147,483,648 //pin high normally
delay(100); // delay untuk switch
sampai 2,147,487,483,647 running = !running; //toggle variable
Contoh running digitalWrite(LEDpin, running)
long speedOfLight = 186000L; // indikasi via LED
}
// see Integer Constants for }
explanation of the 'L'
Syntax 2.10 Char
long var = val;
Sebuah tipe data yang mengambil 1byte
2.8 Unsigned Long memori untuk menyimpan nilai karakter.
Unsigned Long adalah variable yang Karakter huruf tertulis dalam tanda kutip
mempunyai lebar 32bit dan tidak seperti satu seperti „A‟ (untuk karakter
long, unsigned long tidak dapat yang banyak, menggunakan tanda petik dua
menyimpan angka negative, mempunyai : “ABC”).
range antara 0 sampai 4,294,967,295 (2^32 Anda dapat melihat encoding yang lebih
– 1). spesifik dalan
ASCII CHART. Ini dimaksudkan dapat
Contoh memungkinkan
unsigned long time; untuk menjalankan aritmatika dalam nilai
void setup() ASCII yang
{
Serial.begin(9600);
menggunakan karakter misalkan „A‟ +1
} memiliki nilai
void loop() 66, karena nilai ASCII dari huruf A adalah
{
Serial.print("Time: "); 65.
time = millis();//mencetak waktu saat
program dijalankan Tipe dara char adalah angka encoding dari -
Serial.println(time);// besaran waktu
tunggu saat tidak mengirim sejumlah 128 sampai 127
data Contoh
delay(1000); char myChar = 'A';
}
Syntax char myChar = 65;
unsigned long var = val; // both are equivalent

Eris Rifaldi 8
Modul Produk Kreatif kelas XI dan XII
Sebuah penugasan dalam sebuah array
2.11 Unsigned Char
Tipe data yang membutuhkan 1byte dari mySensVals[0] = 10;
memori.
Sepeti pada tipe data byte, unsigned char untuk mendapatkan sebuah nilai dari array
mempunyai
panjang 0 sampai 255. x = mySensVals[4];
Dalam Arduino, tipe data ini jarang
digunakan Array dan perulangan OR
Contoh Array dapat dimanipulasikan dalam
unsigned char myChar = 240; perulangan for, dimana penghitungan
perulangan digunakan sebagai indeks pada
2.12 Arrays beberapa elemen array. Seperti contoh
Array adalah kumpulan dari beberapa untuk mencetak beberapa elemen sebuah
variable yang saling array pada serial port, Anda dapat
berkaitan dengan sebuah nomer indeks. melakukan sesuatu seperti berikut :
Membuat (deklarasi) sebuah Array
Dibawah ini adalah membuat sebuah int i;
for (i = 0; i < 5; i = i + 1) {
metode array yang benar. Serial.println(myPins[i]);
int myInts[6]; }
int myPins[] = {2, 4, 8, 3, 6};
int mySensVals[6] = {2, 4, -8, 3, 2};
char 2.13 Void
message[6] = "hello"; Kata kunci void hanya digunakan dalam
mendelarasikan fungsi. Hal ini untuk
Anda dapat mendeklarasikan aray tanpa menandakan bahwa fungsi itu diharapkan
menginisialisasikan nya seperti dalam untuk memberi informasi dari fungsi yang
myInts. telah dipanggil.
Contoh
Mengakses sebuah array // actions are performed in the
Array merupakan zero indexed yang functions "setup" and "loop"
// but no information is reported to the
menunjuk pada array yang telah larger program
diinisialisasi sebelumnya, elemen pertama void setup()
dari array adalah indeks ke 0 {
mySensVals[0] == 2, // ...
mySensVals[1] == 4, dan sampai ke empat. }

void loop()
Seperti halnya array dengan 10 elemen, {
// ...
indek 9 adalah elemen terahir }

int
myArray[10]={9,3,2,4,3,2,7,8,9,11}; 3. String
// myArray[9] contains 11 Text string dapat dituliskan ke dalam dua
//myArray[10] is invalid and contains
random information (other memory cara, Anda dapat menggunakan tipe data
address) String yang merupakan bagian dari dasar
versi 0019, atau Anda dapat menggunakan
sebuah string luar dari sebuah array tipe
Tidak seperti BASIC atau JAVA, dalam char dan null-terminatenya.
compiler C tidak mengecek untuk Contoh
mengetahui jika akses array sudah sesuai char Str1[15];
char Str2[8] = {'a', 'r', 'd', 'u', 'i',
batas besaran array yang Anda deklarasikan 'n', 'o'};
sebelumnya. char Str3[8] = {'a', 'r', 'd', 'u','i',
'n', 'o', '\0'};
char Str4[ ] = "arduino";

Eris Rifaldi 9
Modul Produk Kreatif kelas XI dan XII
char Str5[8] = "arduino"; char Str6[15] "This is string 2", "This is string 3",
="arduino"; "This is string 4", "This is string
5","This is string 6"};
void setup(){ Serial.begin(9600);
kemungkinan – kemungkinan untuk }
deklarasi srting void loop(){
o deklarasi sebuah array dari chars tanpa for (int i = 0; i < 6; i++)
{
inisialisasi seperti dalam Str1 Serial.println(myStrings[i]);
o deklarasi sebuah array dari chars delay(500);}
(dengan satu extra char) dan compiler
akan menambah karakter null seperti 4. Penghitungan
dalam Str2 4.1 abs(x)
o menambahkan karakter null secara Menghitung nilai absolute dari sebuah
langsung, Str3 cacah
o inisial dengan sebuah konstanta string Parameter
dalam tanda kutipan, compiler akan x : cacah
menghitung lebar konstanta array untuk perhatian
panjang kontanta string dan sebuah karena tentang abs() berfungsi untuk
pengahiran karakter null, Str4 penerapan, hindari penggunaan fungsi yang
o inisial array dengan menuliskan besar terdapat tanda kurang, hal akan
dan konstanta string, Str5 menghasilkan hasil yang salah
o inisial array, memberi ruang ekstra abs(a++); // avoid this - yields
untuk string yang lebih besar, Str6 incorrect results
a++; // use this instead -
abs(a);// keep other math outside the
3.1 Ahiran Null //function
Biasanya, banyak string yang diahiri
dengan sebuah karakter null (kode ASCII 4.2 constrain (x,a,b)
0). Hal ini membolehkan fungsi (seperti contrain merupakan angka batasan dalam
Serial.print() ) untuk memanggil sebuah range
diakhir string. Selain itu, meraka akan parameter
melanjutkan pembacaan byte subskuen dari x : angka dari contrain ; semua tipe data
memori yang bukan merupakan bagian dari a : batas bawah dari range; semua tipe data
string. Hal ini dimaksud saat Anda b : batas
membutuhkan string yang memiliki ruang atas dari range; semua tipe data
untuk karakter yang lebih banyak dari teks kebalikan
yang anda inginkan. Ini kenapa Str2 dan x : jika x diantara a dan b a : jika x lebih
Str5 membutuhkan 8 karakter sedangkan kecil dari a b :
“arduino” hanya 7, posisi yang terahir jika x lebih dari b
secara otomatis akan ditempai oleh karakter
null.Str4 akan otomatis sebesar 8 karakter, Contoh
satu dari external null. Dalam Str3, kami sensVal = constrain(sensVal, 10, 150);
mempunyai penyertaan karakter null secara // batas range dari nilai sensor antara
10 dan 150
explicit.
4.3 map(value, fromLow, fromHigh,
3.2 Menyatukan string yang panjang toLow, toHigh)
Anda dapat menyatukan string yang Memetakan ulang sebuah angka dari sebuah
panjang seperti berikut : range ke yang lainnya. Ini adalah sebuah
char myString[] = "This is the first
line" nilai dari fromLow yang sudah dipetakan ke
“second line” toLow, sebuah nilai dari fromHigh pada
toHigh.
3.3 Array dari string Contoh
char* myStrings[]={"This is string 1",

Eris Rifaldi 10
Modul Produk Kreatif kelas XI dan XII
y = map(x, 1, 50, 50, 1); }
fungsi ini juga menangani angka negative void loop()
y = map(x, 1, 50, 50, -100); {
//
Contoh Kode ...
/* Map an analog value to 8 bits (0 to }
255) */
void setup() {}
void loop() 5.2 loop()
{
int val = analogRead(0);
Setelah membuat fungsi setup (), yang
val = map(val, 0, 1023, 0, 255); harus dilakukan adalah menginisialisasi dan
analogWrite(9, val); mengeset nilai inisial dari fungsi loop()
}
dengan tepat apa nama yang akan diberikan.
Catatan tambahan Gunakan ini untuk mengaktifkan board
Untuk penghitungan matematika, berikut Arduino.
adalah fungsinya Contoh
int buttonPin = 3;
long map(long x, long in_min, long
// setup initializes serial and the
in_max, long out_min, long out_max)
button
{
pin void setup()
return (x - in_min) * (out_max -
{
out_min)
beginSerial(9600); pinMode(buttonPin,
/ (in_max - in_min) + out_min;
INPUT);
}
}
4.4 min(x,y) // loop checks the button pin each time,
Menghitung minimum dari dua angka // and will send serial if it is pressed
void loop()
{
sensVal = min(sensVal, 100); // assigns
if (digitalRead(buttonPin) == HIGH)
sensVal to the smaller of
serialWrite('H');
//sensVal or 100
else
// ensuring that it never gets above
serialWrite('L');
100.
delay(1000);
//max() juga ikut digunakan untuk
}
//konstrain yang lebih rendag dari
//variable range, sedangkan min() 6. Control Sructure
//digunakan untuk konstrain yang 6.1 IF
mempuyai
//range lebih tinggi.
If yang digunaan dalam imbuhan dengan
sensVal = max(senVal, 20); // assigns operator pembanding.
sensVal to the larger of sensVal or 20 Format untuk if :
5. Struktur if (someVariable > 50)
{
5.1 setup()
Fungsi setup() untuk memulai sketsa // bisa digunakan untuk statemen yang
pemrograman, inisilaisasi variable, pin lain
}
mode, memulai
menggunakan library dan lainnya. Fungsi Untuk cara lain, statemen if selalu
setup akan dalam keadaan true
dijalankan sekali setelah arduino if (x > 120) digitalWrite(LEDpin,
dihidupkan atau di HIGH);
reset. if (x > 120) digitalWrite(LEDpin,
HIGH);
if (x > 120){ digitalWrite(LEDpin,
Contoh HIGH); }
int buttonPin = 3; if (x > 120)
{
void setup() digitalWrite(LEDpin1, HIGH);
{ digitalWrite(LEDpin2, HIGH);
}
Serial.begin(9600); pinMode(buttonPin, // semua dianggap benar
INPUT);

Eris Rifaldi 11
Modul Produk Kreatif kelas XI dan XII
6.2 Comparison Operators default:
x == y (x sama dengan y) // if nothing else matches, do the
x != y (x tidak sama dengan y) default
x < y (x lebih kecil dari y) // default is optional
x > y (x lebih besar dari y) }
x <= y (x lebih kecil sama dengan y)
x >= y (x lebih besar sama dengan y) Syntax
switch (var) {
6.3 IF/ELSE case label:
Struktur if/else membeikan kita control // statements break;
case label:
yang lebih besar untuk menangani berbagai //statements
statement dibandingkan dengan statemen break;
dasar if. Jadi struktur if else merupakan default:
// statements
gabungan pernyataan if dan else yang }
membolehkan logika ya atau tidak. Untuk
contoh, sebuah input analog dapat break selalu ada dalam statemen case, dan
mengerjakan sebuah aksi yang mempunyai digunakan untuk ahiran dari bermacam
inputan kurang dari 500 dan yang lain macam case, tanpa statemen break,
beraksi jika inputan tersebut > 500, maka statemen swich akan terus dijalankan sesuai
kodenya dapat dituliskan sebagai berikut ekpresi tanpa henti (“falling- through”)
sampai menemukan statemen break atau
if (pinFiveInput < 500)
{ sampai satemen swich ditutup.
// action A
} 6.5 For
else
{ Pernyataan for digunakan untuk mengulang
// action B sebuah blok statemen yang terus berputar.
} Biasanya,
pernyataan for digunakan untuk
Else juga dapat digunakan secara bertingkat
mengkombinasikan
sampai dengan tak terhingga selama proses
sebuah array dalam menyatakan sebuah pin
yang kita inginkan belum menyatakan
atau data.
sebuah kebenaran atau berlogika true,
Berikut header untuk perulangan for :
berikut contoh kodenya
if (pinFiveInput < 500)
{ for (initialization; condition;
// do Thing A increment) {
} //statement(s);
else if (pinFiveInput >= 1000) }
{
// do Thing B Inisialisasi dilakukan pertama dan sekali
}
else saja. Condition
{ adalah berapa kali kita akan melakukan
// do Thing C
}
looping,
increment adalah menunjukan bahawa
6.4 Switch/case looping akan
Seperti halnya if statemen, switch…case dijalankan secara bertingkat.
megontrol alir dari program yang Contoh :
membolehkan beberapa parameter yang // Dim an LED using a PWM pin
berbeda untuk dieksekusi dalam kondisi int PWMpin = 10; // LED in series with
yang bervariasi. 470
ohm resistor on pin 10
Contoh
switch (var) { case 1: void setup()
//do something when var equals 1 break; {
case 2: // no setup needed
//do something when var equals 2 break;

Eris Rifaldi 12
Modul Produk Kreatif kelas XI dan XII
} 6.7 do-while
void loop()
{ Perulangan do bekerja seperti cara while
for (int i=0; i <= 255; i++){ melakukan perulangan, perulangan do
analogWrite(PWMpin, i); hanya mengerjakan sekali di ahir statemen.
delay(10); do
} {
} //statement block
}
Tips while (test condition);
Dalam C, statemen for sangat fleksibel
disbanding dengan for yang ada pada Contoh
BASIC. Beberapa diantaranya dalah do
{
elemen header bisa saja dihilangkan, namun delay(50); // wait for sensors to
tanda titik koma harus tetap disertakan. stabilize x = readSensors(); // check
the sensors
for(int x = 2; x < 100; x = x * 1.5){ }
println(x); while (x < 100);
}
menghasilkan: 6.8 break
2,3,4,6,9,13,19,28,42,63,94
Contoh lain break digunakan untuk mengahiri
perulangan dari do, for atau while. Dan
void loop() juga digunakan untuk mengahiri statemen
{
int x = 1; switch.
for (int i = 0; i > -1; i = i + x){ Contoh
analogWrite(PWMpin, i); for (x = 0; x < 255; x ++)
if (i = 255) x = -1; {
// switch direction at peak digitalWrite(PWMpin, x);
delay(10); sens = analogRead(sensorPin);
} if (sens > threshold){ // bail out
} on sensor detect x = 0;
break;
}
6.6 while delay(50);
}
While akan melakukan perulangan secara
6.9 goto
kontinyu dan tidak terbatas samapi ekspresi
Untuk melompati alur program ke program
tersebut menemukan kembali
yang sudah kita beri label.
parenthesisnya, () menjadi false. Biasanya
Syntax label:
digunakan untuk mengetes sebuah sensor goto label; // mengirim alur ke program
karena perulangan ini tak akan berahir yang telah diberi label.
sampai adanya kondisi eksternal yang Tips
meutupnya Dalam menggunakan goto, adalah tidak
Syntax lazim dalam pemrograman C. beberapa
buku memberikan gambaran bahwa
while(expression) statemen goto justru akan mengganggu
{
// statement(s) jalannya alur program, karena tidak bisa
} stemen yang ada didalam goto tidak dapat
dikenali dan tidak dapat di debug, sehingga
Parameters hasilnya pun tidak bisa kita ketahui. Berikut
expression - (boolean) statemen C contoh programnya:
mengoreksi true atau false for(byte r = 0; r < 255; r++){
for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
Contoh if (analogRead(0) > 250){ goto
var = 0; bailout;}
while(var < 200){ //mengulang sesuatu
sampai 200 kali var++; // more statements ...

Eris Rifaldi 13
Modul Produk Kreatif kelas XI dan XII
} digital pin 13
} void setup()
} {
pinMode(ledPin, OUTPUT);
6.10 bailout // set digital pin sebagai output
}
Mengahiri sebuah fungsi dan
mengembalikan sebuah nilai dari sebuah void loop()
fungsi tersebut untuk memanggil {
digitalWrite(ledPin, HIGH); // set
fungsi yang lain jika diinginkan. LED on
Syntax: delay(1000);
return; return value;
// waktu tunggu
dalam second
Contoh digitalWrite(ledPin
sebuah fungsi untuk membandingkan ,
LOW);
inputan sebuah sensor kepada sebuah
threshold // set LED off
delay(1000); //
int checkSensor(){ waktu tunggu dalam second
if (analogRead(0) > 400) { return 1; }
else{
return 0; 7.2 digitalWrite()
}
}
Menulisakan logika HIGH atau LOW pada
pin dijital. Jika pin telah dikonfigurasi
6.11 continue sebagai OUTPUT dengan pinMode(), itu
Statemen continue membiarkan atau berarti arus akan diset dengan nilai 5V(atau
melanjutkan penghentian perulangan (do, 3.3V dalam board) untuk HIGH, 0V
for atau while). Digunakan untuk (ground) untuk LOW.
melanjutkan pada pengecekan sebuah Jika pin dikonfigurasi sebagai INPUT,
ekspresi kondisi dari loop dan maka penulisan logika HIGH dengan
memprosesnya dengan beberapa digitalWrite() akan membutuhkan sebuah
subsequent yang berulang ulang. resistor pullup internal 20K .penulisan
LOW akan mendisable pullup nya. Pullup
Contoh resistor cukup untuk menyalakan LED
for (x = 0; x < 255; x ++) dengan redup, jadi jika LED bekerja namun
{
if (x > 40 && x < 120){
samar, maka harus memperbaiki set pin ke
// create jump in values continue; output dengan fungsi pinMode()
}
digitalWrite(PWMpin, x); delay(50);
} Syntax
digitalWrite(pin, value)

7. FUNCTION Parameters
7.1 pinMode() pin: nomer pin
Digunakan untuk mengkonfigurasi pin value: HIGH or LOW
secara spesifik sebagai sebuah intputan atau
outputan. Contoh
Syntax int ledPin = 13; // LED connected to
pinMode(pin, mode) digital pin 13
void setup()
{
Parameters pinMode(ledPin, OUTPUT);
pin: set nomer pin mode mode: INPUT or // sets the digital pin as output
OUTPUT }

void loop()
Contoh {
int ledPin = 13; // LED terkoneksi pada digitalWrite(ledPin, HIGH); // sets the

Eris Rifaldi 14
Modul Produk Kreatif kelas XI dan XII
LED on delay(1000); // waits for a o INTERNAL : sebuah acuan built-inn
second digitalWrite(ledPin, LOW); //
sets the LED off delay(1000); // waits sama dengan 1.1V dalam
for a second ATmega168 atau ATmega328 dan
} 2.56V pada ATmefa8 (tidak terdapat
pada Arduino Mega)
7.3 digitalRead()
o INTERNAL1V1 : acuan built-in 1.1V
Membaca nilai dari spesifikasi digital pin
(hanya Arduino Mega)
yang bernilai HIGH atau LOW.
o INTERNAL2V56: acuan built-in 2.56V
Syntax
(hanya Arduino Mega)
digitalRead(pin)
o EXTERNAL : voltase yang digunakan
pada pin AREF
Parameters
Parameters
pin: nomer dari digital pin yang ingin
type: acuan yang digunakan (DEFAULT,
dibaca (int)
INTERNAL,
INTERNAL1V1, INTERNAL2V56, atau
Contoh
int ledPin = 13; EXTERNAL).
// LED terkoneksi pada digital pin 13
int
inPin = 7;
Setelah mengganti acuan analog,
// pushbutton terkoneksi digital pin 7 pembacaan pertama pada analogRead()
int mungkin idak bisa akurat. Jika Anda
val = 0;
// variable to store the read value
menggunakan acuan voltase external
void setup() (digunakan untuk pin AREF), Anda harus
{ menyeting acuan analog pada EXTERNAL
pinMode(ledPin, OUTPUT);
// set digital pin 13 sebagai output sebelum memanggil analogRead(). Selain
pinMode(inPin, INPUT); itu, Anda bisa mengaktifkan acuan voltase
// set digital pin 7 sebagai input bersamaan (internally generated) dan pada
}
pin AREF, dapat merusak mikrokontroler
void loop() pada board Arduino.
{
val = digitalRead(inPin); // baca input
pin 8.2 analogRead()
digitalWrite(ledPin, val); Membaca nilai dari pin analog. Board
// set LED untuk nilai pada button Arduino menampung 6 chanel (8 chanel
}
Set pin 13 seperti nilai dari pin 7 yang pada Mini dan Nano, 16 pada Mega), 10-bit
menjadi ADC. Ini berarti akan memetakan voltase
inputan. Jika pin tidak terkoneksi pada antara 0 sampai 5 volt dalam nilai integer
digitalRead() maka dapat dikembalikan antara 0 dan 1023. Sehingga menghasilkan
pada HIGH atau LOW dan dapat berganti resolusi pembacaa dai 5volt/1024 unti atau
secara acak. Input pin analog dapat 0.0049volt (4.9mV) per unit. Panjang input
digunakan sebagai digital pin, tertunjuk dan resilusi dapat digantkan dengan
sebagai A0, A1, dsb. alalogReference(). Hal ini membutujkan
100milisecond (0.0001s) untuk membaca
8. ANALOG I/O input analog, jadi maksimum rate
8.1 analogReference(type) pembacaan sekitar 10000 kali per detik.
Fungsi ini digunakan untuk
mengkonfigurasi voltase acuan yang Syntax
digunakan untuk input analog, sebagai analogRead(pin)
pilihannya :
o DEFAULT : default acuan analog Parameter
sebesar 5V (dalam 5V Arduino board) pin : nomer dari pin input aalog untuk
atau 3.3 V (dalam 3.3V board Arduino) dibaca dari (0 sampai 5 pada umumnya, 0

Eris Rifaldi 15
Modul Produk Kreatif kelas XI dan XII
sampai 7 pada Mini dan Nano, 0 sampai 15 dikarenakan interaksi dengan fungsi
pada Mega) bisa juga dituliskan sebagai int millis() dan delay() yang membagi sesame
(0 sampai 1023) . penggunaan internal timer yang digunakan
oleh output PWM.
Contoh
int analogPin = 3; // potentiometer Contoh
wiper (middle terminal)
//connected to analog pin 3 Set output pada LED dengan nilai yang
// outside leads to ground and +5V disesuaikan dari nilai potensiometer
int val = 0; // variable to store the
value read int ledPin = 9; // LED connected
void setup() to
{ digital pin 9
Serial.begin(9600); int analogPin = 3;
// setup serial //potentiometer connected to analog pin
} 3
int val = 0; // variable to store the
void loop() read
{ value
val = analogRead(analogPin); // read
the input pin void setup()
Serial.println(val); // debug value {
}
pinMode(ledPin, OUTPUT);
8.3 analogWrite() // sets the pin as output
analogWrite() dapat digunakan untuk }
menulis nilai analog (gelombang PWM) void loop()
untuk sebuah pin. Dapat juga digunakan {
menyalakan LED dengan cahaya yang val = analogRead(analogPin); // read
the input pin
bervariasi atau mengontrol motor dengan analogWrite(ledPin, val / 4);
kecepatan yang bervariasi. Frekuensi sinyal // analogRead values go from 0 to
PWM bisa mencapai 490 Hz. Di dalam 1023,
//analogWrite values from 0 to 255
board Arduino ATmega168 atau }
ATmega328, pin yang berfungsi adalah
3,5,6,9,10 dan 11. Di dalam Arduino Mega 9. Advance I/O
bekerja pada pin 2 bersama 13, dalam 9.1 pulseIn()
Arduino ATmega8 hanya mendukung Fungsi ini digunakan untuk membaca
analogWrite() pada pin 9,10 dan 11. Anda sebuah pulsa (HIGH atau LOW) pada
tidak dapat memanggil pinMode() untuk sebuah pin
menyeting pin sebagai output sebelum
memanggil analogWrite(). Syntax
pulseIn(pin,value) pulseIn(pin, value,
timeout)
Fungsi dari analogWrite tidak bisa bekerja
tanpa pin analog atau fungsi analogRead. Parameter
pin : nomer pin yang akan dibaca pulsa nya
Syntax (int)
analogWrite(pin, value)
value :tipe dari pulsa (HIGH atau LOW)
(int)
parameter timeout (optional) : angka dalam
pin: pin yang untuk ditulis mikrosekon waktu tunggu pulsa untuk
value : putaran penugasan : antara 0 (selalu memulai, defaultnya adalah 1 detik
off) dan 255 (selalu on). (unsigned long)
Pada output PWM yang dihasilkan pada pin
5 dan 6 akan mempunyai putaran Contoh
penugasan yang lebih tinggi. Hal ini int pin = 7;

Eris Rifaldi 16
Modul Produk Kreatif kelas XI dan XII
unsigned long duration; int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
void setup() ////Pin connected to DS of 74HC595
{ int dataPin = 11;

pinMode(pin, INPUT);
} void setup() {
//set pins to output because they are
void loop() addressed in the main //loop
{ pinMode(latchPin, OUTPUT);
duration = pulseIn(pin, HIGH); pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
} }
void loop() {
9.2 shiftOut() //count up routine
for (int j = 0; j < 256; j++) {
Shift out adalah sebuah byte dari data dalam //ground latchPin and hold low for as
satu bit per satuan waktu. long
as you are //transmitting
digitalWrite(latchPin, LOW);
Syntax shiftOut(dataPin, clockPin, LSBFIRST,
shiftOut(dataPin, clockPin, bitOrder, j);
value) //return the latch pin high to signal
parameter chip
dataPin : pin yang menjadi output bit (int) that it
//no longer needs to listen for
clockPin : pin yang sekali dilewati dengan information
dataPin (int) digitalWrite(latchPin, HIGH);
bitOrder : bit yang akan diberikan untuk delay(1000);

shift out berupa MSBFIRS atau 9.3 tone()


LSBFIRST (Most significant Bit First atau Dapat menghasilkan gelombang kotak
Least Significant Bit First) dengan spesifikisai frekuensi (50% siklus
value : data untuk shift out (byte) dataPin kerja) dalam sebuah pin, biasanya pin ini
dan clockPin harus selalu dikonfigurasi dikoneksikan pada buzzer atau speaker
sebagai output untuk memanggil pinMode() untuk memutar bunyi. Bunyi ini akan
diputar terus menerus sebelum ada
// Do this for MSBFIRST serial int data = pemanggilan noTone(). Jika tone() sedang
500; bekerja pada sebuah pin, maka pin yang lain
// shift out highbyte tidak akan mempunyai efek apapun, jadi
shiftOut(dataPin, clock, MSBFIRST, (data bila kita akan membunyikan suara pada
>> 8)); beberapa pin, maka kita harus menyertakan
// shift out lowbyte fungsi noTone() pada setiap akhir
shiftOut(data, clock, MSBFIRST, data); ekspresinya.
// Or do this for LSBFIRST serial data = Syntax
500; tone(pin, frequency)
// shift out lowbyte tone(pin, frequency, duration)
shiftOut(dataPin, clock, LSBFIRST, data);
// shift out highbyte
shiftOut(dataPin, clock, LSBFIRST, (data
>> 8)); 10. COMMUNICATION
10.1 Serial
Contoh Untuk berkomunikasi dengan computer
For accompanying circuit, see the tutorial atau device lain, semua board arduino
on controlling a mempunyai serial port (UART atau
74HC595 shift register. USART). Untuk berkomunikasi
//Pin connected to ST_CP of 74HC595 mengunakan digital pin 0 (RX) dan 1 (TX)

Eris Rifaldi 17
Modul Produk Kreatif kelas XI dan XII
seperti computer dengan USB. Dalam 3). Arduino Mega mempunyai 4 tambahan:
Arduino Mega, mempunyai tambahan 3 nomer 2 (pin 21), 3 (pin 20), 4 (pin 19) dan
serial port : serial 1 pada pin 19 (RX) dan 5 (pin 18)
18 (TX), serial 2 pada pin 17 (RX) dan 16 Parameter
(TX), serial 13 pada pin 15(RX) dan 14 interrupt : nomer interupsi (int)
(TX), untuk berkomuniksai dengan PC, function : fungsi untuk memanggil interupsi
Anda membutuhkan USB to Serial yang terjadi, menjadi acuan bagi interrupt
adaptor,untuk mengkomunikasikan dengan servicer routine.
external TTL serial device. Jangan mode : mendefinsikan jika terjadi trigger
menyambungkan pin pada RS232 secara interupsi, ada 4 parameter yang menjadi
langsung, karena mempunyai +/12v yang validasi nilainya :
bisa merusak board Arduino. - LOW untuk trigger interupsi saat pin low.
- CHANGE untuk trigger interupsi saat pin
10.2 INTERUPT mengganti nilai
10.2.1 interrupt() - RISING untuk trigger saat pin berpindah
Mengaktifkan kembali interupsi (setelah dari low menjadi high.
nonaktif oleh noInterupt() ).interupsi - FALLING untuk pin yang berpindah dari
memperbolehkan program lain yang lebih high ke low
penting untuk berjalan terlebih dahulu.
Beberapa fungsi tidak akan dapat bekerja Interupsi digunakan untuk membantu
jika interupsi tersebut disable, dan menangani masalah penjadualan waktu
berkomunikasi kembali ketika diabaikan. pada program mikrokontroler.
Contoh Contoh
void setup() {} void loop() int pin = 13;
{ volatile int state = LOW;
noInterrupts(); void setup()
// critical, time-sensitive code {
here interrupts(); pinMode(pin, OUTPUT);
// other code here attachInterrupt(0,
} blink, CHANGE);
}
10.2.2 noInterupts() void loop()
Mematikan interupsi (Anda dapat {
mengaktifkan kembali dengan digitalWrite(pin, state);
interups()).fungsi ini adalah kebalikan dari }
void blink()
fungsi interups(). {
Contoh state = !state;
void setup() {} void loop() }
{
noInterrupts(); 11. TIME
// critical, time-sensitive code here
interrupts(); 11.1 delay()
// other code here Memberi jeda pada program unuk beberapa
} waktu ( dalam millisecond)
Syntax
10.3 EXTERNAL INTERRUPT delay(ms)
10.3.1 attachInterrupt(interrupt,
function, mode) Parameter
Fungsi yang lebih spesifik untuk ms : waktu dalam millisecond (unsigned
memanggil external interrupt. Mengganti long)
beberapa funsi sebelumnya yang telah
disertakan. Kebanyakan board Arduino Contoh
mempunyai 2 external interup. Nomer 0 int ledPin = 13; // LED connected to
digital pin 13
(dalan digital pin 2) dan 1 (dalam digital pin void setup()

Eris Rifaldi 18
Modul Produk Kreatif kelas XI dan XII
{
pinMode(ledPin, OUTPUT);
// sets the digital pin as output
}
void loop()
{
digitalWrite(ledPin, HIGH); //
sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); //
sets the LED off
delay(1000); // waits for a second
}

11.2 delayMicroseconds()
Memberi jeda program dalam beberapa
waktu (mikrodetik), 1000 microsecond
adalah 1 milisecond dan 1juta microsecond
adalah 1 detik.
Syntax
delayMicroseconds(us)

Parameter
us : angka untuk jeda dalam microsecond
(unsigned int)

Contoh
int outPin = 8; // digital pin 8
void setup()
{
pinMode(outPin, OUTPUT);
// sets the digital pin as output
}
void loop()
{
digitalWrite(outPin, HIGH); //
sets the pin on
delayMicroseconds(50); // pauses for
50 microseconds
digitalWrite(outPin, LOW); // sets the
pin off
delayMicroseconds(50); // pauses for
50 microseconds
}

Mengkonfigurasi pin nomer 8 sebagai pin


output, memberikan pulsa dengan waktu
100 microsecond per periode

Eris Rifaldi 19
Modul Produk Kreatif kelas XI dan XII
D. Arduino
JobDesk1. Blink LED
I. Judul
Blink LED
II. Tujuan
Siswa dapat mempelajari program sederhana Arduino uno.
Siswa dapat mengoperasikan aplikasi Arduino IDE.
Siswa dapat merangkai rangkaian sederhana LED pada Arduino.
III. Teori Singkat
LED merupakan singkatan dari (Led Emitting Dioda) yang berarti dioda yang
menyala, sering digunakan rangkaian – rangkaian elektronika sederhana. Di era
modern ini LED dikembangkan untuk digunakan menjadi latar dasar teknologi layar
sekarang ini, dimana memiliki keunggulan, yakni hemat daya listrik.
LED memiliki warna yang berbeda-beda, oleh karena itu pengklasifikasian LED
tergantung warna bisa saja digunakan karena, warna LED menentukan berapa
tegangan kerja yang terjadi pada lampu LED tersebut. Karena Arduino Uno bekerja
pada tegangan 5 volt sehingga pemasangan LED dibutuhkan rangkaian tambahan
atau komponen tambahan; yakni dengan menggunakan resistor secara seri pada kaki
positif LED sehingga tegangan 5 volt akan dibagi ke LED dan ke Resistor, apabila
resistor tidak dipasang maka LED akan over atau kelebihan tegangan, dan seringkali
mengakibatkan LED tersebut terbakar.
LED terdiri dari sebuah chip semikonduktor yang di doping sehingga menciptakan
junction P dan N. Yang dimaksud dengan proses doping dalam semikonduktor
adalah proses untuk menambahkan ketidakmurnian (impurity) pada semikonduktor
yang murni sehingga menghasilkan karakteristik kelistrikan yang diinginkan.
Ketika LED dialiri tegangan maju atau bias forward yaitu dari Anoda (P) menuju ke
Katoda (K).

Eris Rifaldi 20
Modul Produk Kreatif kelas XI dan XII
IV. Alat dan Bahan
1.
Arduino Uno
2.
Kabel USB Arduino Uno
3.
Lampu LED
4.
Resistor 220 Ohm
5.
Project Board
V. Langkah Kerja
1. Buka Aplikasi Arduino IDE pada komputer masing-masing
2. Setelah menu Arduino IDE terbuka maka klik menu File> Examples > Basics >
Blink, untuk membuka contoh program Blink LED pada Arduino

3. Masukan Kabel USB yang terhubung dengan mikrokontroller Arduino

4. Setelah itu setel mikrokontroller yang digunakan ke menu


Tools>Board>Arduino/Genuino Uno

Eris Rifaldi 21
Modul Produk Kreatif kelas XI dan XII
5. Lalu Setel lagi port yang digunakan untuk komunikasi antara Laptop/ PC dengan
Mikrokontroller Arduino. Tools> Port

6. Setelah itu upload program yang telah dibuat dengan menekan tombol upload

7. Amatilah apa yang terjadi

VI. Tugas

Eris Rifaldi 22
Modul Produk Kreatif kelas XI dan XII
1. Coba ganti delay (1000) dengan nilai berapapun? Apa yang terjadi? jelaskan!
2. Coba ganti LED_BUILTIN dengan angka 13 saja! Apa yang terjadi? Jelaskan!
3. Coba buatlah rangkaian LED + resistor 220 dengan dengan kaki resistor 1
terhubung ke pin 13 dan kaki yang lain ke kaki positif LED, hubungkan kaki
Negatif LED pada GND Arduino. Apa yang terjadi?
4. Coba ganti angka 13 dengan angka berapa saja 2-12, dan rangkaian salah satu
kaki resistor terhubung pada angka yang diatur!
VII. Kesimpulan
1. Tulislah Kesimpulan
2. Buatlah Skematik Sesuai dengan Program yang ada di Video tutorial Flip Flop
https://youtu.be/Wl_FntRNUrc
3. Buatlah Skematik Sesuai dengan Program yang ada di Video tutorial Running
LED
https://youtu.be/Wl_FntRNUrc
4. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 23
Modul Produk Kreatif kelas XI dan XII
JobDesk2. Lampu Lalu Lintas
I. Judul
Lampu Lalu Lintas
II. Tujuan
1. Siswa dapat melakukan perakitan komponen traffic light 4 arah pada Instalasi
Tenaga Listrik
2. Siswa dapat melakukan uji coba traffic light 4 arah pada Instalasi Tenaga Listrik
III. Teori Singkat
LED merupakan singkatan dari (Led Emitting Dioda) yang berarti dioda yang
menyala, sering digunakan rangkaian – rangkaian elektronika sederhana. Di era
modern ini LED dikembangkan untuk digunakan menjadi latar dasar teknologi layar
sekarang ini, dimana memiliki keunggulan, yakni hemat daya listrik.
LED memiliki warna yang berbeda-beda, oleh karena itu pengklasifikasian LED
tergantung warna bisa saja digunakan karena, warna LED menentukan berapa
tegangan kerja yang terjadi pada lampu LED tersebut. Karena Arduino Uno bekerja
pada tegangan 5 volt sehingga pemasangan LED dibutuhkan rangkaian tambahan
atau komponen tambahan; yakni dengan menggunakan resistor secara seri pada kaki
positif LED sehingga tegangan 5 volt akan dibagi ke LED dan ke Resistor, apabila
resistor tidak dipasang maka LED akan over atau kelebihan tegangan, dan seringkali
mengakibatkan LED tersebut terbakar.

LED terdiri dari sebuah chip semikonduktor yang di doping sehingga menciptakan
junction P dan N. Yang dimaksud dengan proses doping dalam semikonduktor
adalah proses untuk menambahkan ketidakmurnian (impurity) pada semikonduktor
yang murni sehingga menghasilkan karakteristik kelistrikan yang diinginkan.
Ketika LED dialiri tegangan maju atau bias forward yaitu dari Anoda (P) menuju ke
Katoda (K).

Eris Rifaldi 24
Modul Produk Kreatif kelas XI dan XII
IV. Alat dan Bahan
1. Arduino Uno
2. Kabel USB Arduino Uno
3. Lampu LED 3warna 12x
4. Resistor 220 Ohm 3x
V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

Eris Rifaldi 25
Modul Produk Kreatif kelas XI dan XII
2. Buka Aplikasi Arduino IDE pada PC/ Laptop
3. Setelah menu Arduino IDE terbuka maka masukkan kode pemrograman seperti
dibawah pada lembar kerja Arduino IDE

Eris Rifaldi 26
Modul Produk Kreatif kelas XI dan XII
Eris Rifaldi 27
Modul Produk Kreatif kelas XI dan XII
Eris Rifaldi 28
Modul Produk Kreatif kelas XI dan XII
4. Masukan Kabel USB yang terhubung dengan mikrokontroller Arduino

5. Setelah itu setel mikrokontroller yang digunakan ke menu


Tools>Board>Arduino/Genuino Uno

6. Lalu Setel lagi port yang digunakan untuk komunikasi antara Laptop/ PC dengan
Mikrokontroller Arduino. Tools> Port

Eris Rifaldi 29
Modul Produk Kreatif kelas XI dan XII
7. Setelah itu upload program yang telah dibuat dengan menekan tombol upload

8. Amatilah apa yang terjadi

VI. Tugas
1. Lengkapi tabel di bawah ini agar program traffic light dapat berfungsi dengan baik

2. Isilah Soal Berikut

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 30
Modul Produk Kreatif kelas XI dan XII
JobDesk3. Perakitan Produk Menyalakan Lampu Dengan Bluetooth
I. Judul
Perakitan Produk Menyalakan Lampu Dengan Bluetooth
II. Tujuan
1. Siswa dapat melakukan perakitan komponen menyalakan Lampu dengan
Bluetooth pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba menyalakan lampu dengan Bluetooth pada
Instalasi Tenaga Listrik
III. Teori Singkat
Bluetooth adalah suatu peralatan media komunikasi yang dapat digunakan untuk
menghubungkan sebuah perangkat komunikasi dengan perangkat komunikasi
lainnya, bluetooth umumnya digunakan di handphone, komputer atau pc, tablet, dan
lain-lain. Fungsi bluetooth yaitu untuk mempermudah berbagi atau sharing file,
audio, menggantikan penggunaan kabel dan lain-lain.
Kelebihan Bluetooth

• Bisa menembus rintangan, misalnya seperti dinding, kotak, dan sebagainya.


Walaupun jarak transmisinya hanya 10 M.
• Tidak memerlukan media kabel ataupun kawat.
• Dapat mensingkronisasi data dari Handphone ke Komputer atau laptop.
• Dapat dipakai sebagai perantara modem.
• Praktis dan tidak ribet dalam penggunaanya.

Kekurangan Bluetooth

• Memakai frekuensi yang sama dengan gelombang WiFi.


• Kalu terlalu banyak koneksi bluetooth didalam satu ruangan, akan sulit untuk
menemukan penerima yang dituju.
• Sering beredar virus-virus yang disebarkan melalui bluetooth, khususnya dari
handphone.
• Cukup banyak mekanisme keamanan yang harus diperhatikan untuk mencegah
kegagalan pengiriman data atau penerimaan data maupun informasi.
• Kecepatan dalam transfer data tidak tetap, tergantung dari perangkat yang
dipakai untuk mengirim dan yang menerima data maupun informasi.

Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan
komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama
yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch).
Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar
sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik
yang bertegangan lebih tinggi. Sebagai contoh, dengan Relay yang menggunakan
Elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang
berfungsi sebagai saklarnya) untuk menghantarkan listrik 220V 2A

Eris Rifaldi 31
Modul Produk Kreatif kelas XI dan XII
IV. Alat dan Bahan
1. Arduino Uno
2. Kabel USB Arduino Uno
3. Lampu 220v
4. Relay 5VDC
5. Modul Bluetooth HC-05
6. Steker
7. Kabel NYA
8. Fitting Lampu
9. Aplikasi Arduino Bluetooth 4 CH
V. Langkah Kerja
1. Download Aplikasi Arduino Bluetooth 4 CH diplaystore

2. Rangkailah rangkaian dibawah ini:

3. Buka Aplikasi Arduino IDE pada PC/ Laptop


4. Setelah menu Arduino IDE terbuka maka masukkan kode pemrograman seperti
dibawah pada lembar kerja Arduino IDE

Eris Rifaldi 32
Modul Produk Kreatif kelas XI dan XII
Eris Rifaldi 33
Modul Produk Kreatif kelas XI dan XII
5. Masukan Kabel USB yang terhubung dengan mikrokontroller Arduino

6. Setelah itu setel mikrokontroller yang digunakan ke menu


Tools>Board>Arduino/Genuino Uno

Eris Rifaldi 34
Modul Produk Kreatif kelas XI dan XII
7. Lalu Setel lagi port yang digunakan untuk komunikasi antara Laptop/ PC dengan
Mikrokontroller Arduino. Tools> Port

8. Setelah itu upload program yang telah dibuat dengan menekan tombol upload

9. Amatilah apa yang terjadi


10. Pada Aplikasi Bluetooth Controller 8 Lamp cari Perangkat Bluetooth yang
digunakan sistem dan hubungkan.
11. Setelah itu coba tools yang ada pada Aplikasi tersebut.
VI. Tugas
3. Rubahlah PIN ouput Arduino yang akan dipakai mulai dari PIN 2 s.d 5, kemudian
buat dan uji programnya!
4. Buatlah daftar bahan yang digunakan!
5. Tes Formatif

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 35
Modul Produk Kreatif kelas XI dan XII
JobDesk4. Perakitan Produk Menyalakan Lampu Dengan Bluetooth dengan (Suara)
I. Judul
Perakitan Produk Menyalakan Lampu Dengan Bluetooth dengan (Suara)
II. Tujuan
1. Siswa dapat Melakukan perakitan komponen menyalakan Lampu dengan
Bluetooth dengan suara pada Instalasi Tenaga Listrik
2. Siswa dapat Melakukan uji coba menyalakan lampu dengan Bluetooth dengan
suara pada Instalasi Tenaga Listrik
III. Teori Singkat
Bluetooth adalah suatu peralatan media komunikasi yang dapat digunakan untuk
menghubungkan sebuah perangkat komunikasi dengan perangkat komunikasi
lainnya, bluetooth umumnya digunakan di handphone, komputer atau pc, tablet, dan
lain-lain. Fungsi bluetooth yaitu untuk mempermudah berbagi atau sharing file,
audio, menggantikan penggunaan kabel dan lain-lain.
Kelebihan Bluetooth

• Bisa menembus rintangan, misalnya seperti dinding, kotak, dan sebagainya.


Walaupun jarak transmisinya hanya 10 M.
• Tidak memerlukan media kabel ataupun kawat.
• Dapat mensingkronisasi data dari Handphone ke Komputer atau laptop.
• Dapat dipakai sebagai perantara modem.
• Praktis dan tidak ribet dalam penggunaanya.

Kekurangan Bluetooth

• Memakai frekuensi yang sama dengan gelombang WiFi.


• Kalu terlalu banyak koneksi bluetooth didalam satu ruangan, akan sulit untuk
menemukan penerima yang dituju.
• Sering beredar virus-virus yang disebarkan melalui bluetooth, khususnya dari
handphone.
• Cukup banyak mekanisme keamanan yang harus diperhatikan untuk mencegah
kegagalan pengiriman data atau penerimaan data maupun informasi.
• Kecepatan dalam transfer data tidak tetap, tergantung dari perangkat yang
dipakai untuk mengirim dan yang menerima data maupun informasi.

Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan
komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama
yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch).
Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar
sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik
yang bertegangan lebih tinggi. Sebagai contoh, dengan Relay yang menggunakan
Elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang
berfungsi sebagai saklarnya) untuk menghantarkan listrik 220V 2A

Eris Rifaldi 36
Modul Produk Kreatif kelas XI dan XII
IV. Alat dan Bahan
1. Arduino Uno
2. Kabel USB Arduino Uno
3. Lampu 220v
4. Relay 5VDC
5. Modul Bluetooth HC-05
6. Steker
7. Kabel NYA
8. Fitting Lampu
9. Aplikasi BT Voice Control for Arduino
V. Langkah Kerja
1. Download Aplikasi BT Voice Control for Arduino CH diplaystore
2. Rangkailah rangkaian dibawah ini:

3. Buka Aplikasi Arduino IDE pada PC/ Laptop


4. Setelah menu Arduino IDE terbuka maka masukkan kode pemrograman seperti
dibawah pada lembar kerja Arduino IDE

Eris Rifaldi 37
Modul Produk Kreatif kelas XI dan XII
Eris Rifaldi 38
Modul Produk Kreatif kelas XI dan XII
5. Masukan Kabel USB yang terhubung dengan mikrokontroller Arduino

6. Setelah itu setel mikrokontroller yang digunakan ke menu


Tools>Board>Arduino/Genuino Uno

7. Lalu Setel lagi port yang digunakan untuk komunikasi antara Laptop/ PC dengan
Mikrokontroller Arduino. Tools> Port

Eris Rifaldi 39
Modul Produk Kreatif kelas XI dan XII
8. Setelah itu upload program yang telah dibuat dengan menekan tombol upload

9. Amatilah apa yang terjadi


10. Pada Aplikasi BT Voice Control for Arduino CH cari Perangkat Bluetooth yang
digunakan sistem dan hubungkan.
11. Setelah itu coba Katakan, “Lampu Nyala”, “ Lampu Mati”, “Motor Hidup”,
“Motor Mati”, “Kipas Jalan”, “Kipas Mati”, “Buka Pintu”, “Tutup Pintu”, “Semua
Nyala”, “Semua Mati”.
VI. Tugas
3. Rubahlah PIN output Arduino yang akan dipakai mulai dari PIN 2 s.d 5, kemudian
buat dan uji programnya!
4. Buatlah daftar bahan yang digunakan!
5. Tes Formatif

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 40
Modul Produk Kreatif kelas XI dan XII
JobDesk5. Perakitan Produk Running Text dengan Arduino
I. Judul
Perakitan Produk Running Text dengan Arduino
II. Tujuan
1. Siswa dapat melakukan perakitan komponen Running text pada Instalasi Tenaga
Listrik
2. Siswa dapat melakukan uji coba Running text pada Instalasi Tenaga Listrik
III. Teori Singkat

LED Running Text adalah sebuah teknik elektronik yang menampilkan sebuah
tulisan bergerak atau berjalan yang terdiri dari susunan LED kemudian terhubung
secara matrix dengan perpaduan LED antara baris dan kolomnya. LED Running
Text ini memiliki fasilitas komunikasi secara seri yang mampu menampilkan pesan
ataupun tulisan bergerak dan berjalan yang dapat dirubah melalui PC, laptop dan
juga remote.

Bukan hanya itu, Running Text memiliki fasilitas untuk mengatur waktu yang
menggunakan Real Time Clock (RTC) sehingga dapat menampilkan detik, menit,
jam, hari, tanggal dan tahun. Untuk penyesuaiannya dapat dilakukan melalui media
komputer atau remote. LED Running Text ini tidak akan berubah walaupun
dimatikan artinya data akan tersimpan di dalam memori. Untuk warna yang
digunakan sangat bervariasi sesuai dengan kebutuhan, adapun warna warna yang
tersedia antara lain warna hijau, warna biru, warna merah, warna kuning dan warna
putih khusus untuk warna led.

Running Text atau sering disebut Moving sign ini merupakan sebuah media
elektronik yang sangat bermanfaat untuk dijadikan sebagai media iklan,
pemberitahuan informasi serta untuk dekorasi kantor atau sentuhan keindahan
perkotaan. Moving LED ataupun LED running text sangat berbeda dengan banner
ataupun spanduk, karena banner dan spanduk sifatnya non permanen artinya tidak
mampu bertahan lama atau cepat mengalami kerusakan. Sedangkan Moving Sign /

Eris Rifaldi 41
Modul Produk Kreatif kelas XI dan XII
LED Running Text sifatnya Semi-Permanen dan isinya dapat diubah sesuai dengan
kebutuhan atau sesuai dengan selera

IV. Alat dan Bahan


1. Arduino Uno
2. Kabel USB Arduino Uno
3. Kabel Port 12
4. Modul p10 Outdoor/ Indoor
5. Power Supply 5v 2A
V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

2. Buka Aplikasi Arduino IDE pada PC/ Laptop


3. Setelah menu Arduino IDE terbuka maka masukkan kode pemrograman seperti
dibawah pada lembar kerja Arduino IDE

Eris Rifaldi 42
Modul Produk Kreatif kelas XI dan XII
Eris Rifaldi 43
Modul Produk Kreatif kelas XI dan XII
4. Masukan Kabel USB yang terhubung dengan mikrokontroller Arduino

5. Setelah itu setel mikrokontroller yang digunakan ke menu


Tools>Board>Arduino/Genuino Uno

6. Lalu Setel lagi port yang digunakan untuk komunikasi antara Laptop/ PC dengan
Mikrokontroller Arduino. Tools> Port

Eris Rifaldi 44
Modul Produk Kreatif kelas XI dan XII
7. Setelah itu upload program yang telah dibuat dengan menekan tombol upload

8. Amatilah apa yang terjadi


9. Video lengkap tutorial pembuatan
https://youtu.be/elf0LuHE5dM
10.

VI. Tugas
1. Buatlah Text ”SMK PASUNDAN 2 BANJARAN” pada Running Text di atas!
2. Atur kecepatan Text nya dengan cara mengatur TIME nya!
3. Tes Formatif

Eris Rifaldi 45
Modul Produk Kreatif kelas XI dan XII
VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 46
Modul Produk Kreatif kelas XI dan XII
JobDesk6. Perakitan Produk Arduino Sederhana Part 1 (Assembly Component)
I. Judul
Perakitan Produk Arduino Sederhana Part 1 (Assembly Component)
II. Tujuan
1. Siswa dapat melakukan perakitan komponen Arduino Sederhana pada Instalasi
Tenaga Listrik
2. Siswa dapat melakukan uji coba Arduino sederhana pada Instalasi Tenaga Listrik
III. Teori Singkat

Arduino merupakan suatu Mikrokontroler sederhana yang bersifat open source,


setiap orang dapat mengembangkannya.

IV. Alat dan Bahan


1. PCB Matriks/ PCB Bolong
2. Atmega 328 p
3. Kapasitor 22pF
4. Kapasitor 100nF
5. Resistor 470 Ohm
6. Resistor 10k Ohm
7. Lampu LED
8. Pin Header Male
9. Pin Header Female
10. USB to TTL FTDI
11. Crystal
12. Timah
13. Solder
14. Penyedot Timah
15. Kawat tembaga
16. Socket IC 3M
V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

2. Letakkan setiap komponen seperti contoh seperti ini!

Eris Rifaldi 47
Modul Produk Kreatif kelas XI dan XII
3. Buatlah jalur seperti Contoh gambar!

VI. Tugas

VII. Kesimpulan
Tulislah Kesimpulan!

Eris Rifaldi 48
Modul Produk Kreatif kelas XI dan XII
Eris Rifaldi 49
Modul Produk Kreatif kelas XI dan XII
JobDesk7. Perakitan Produk Arduino Sederhana Part 2 (Burn BootLoader Arduino)
I. Judul
Perakitan Produk Arduino Sederhana Part 2 (Burn BootLoader Arduino)
II. Tujuan
1. Siswa dapat melakukan perakitan komponen Arduino Sederhana pada Instalasi
Tenaga Listrik
2. Siswa dapat melakukan uji coba Arduino sederhana pada Instalasi Tenaga Listrik
III. Teori Singkat

Arduino merupakan suatu Mikrokontroler sederhana yang bersifat open source,


setiap orang dapat mengembangkannya.
Burn Bootloader merupakan proses penanaman program Arduino pada IC Atmega

IV. Alat dan Bahan


1. Atmega 328p
2. Arduino Uno R3
3. Project Board
4. Kabel Jumper
5. Kapasitor 22pF
6. Kapasitor 100nF
7. Resistor 10k Ohm
8. Crystal
V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

2. Buatlah Shield Arduino Burn Bootloader


3. Masukkan koding pemrograman Arduino ISP terlebih dahulu
4. Hubungkan Arduino Uno R3 ke PC/ Laptop menggunakan Kabel USB
5. Buka aplikasi Arduino IDE pada PC/ Laptop
6. Buka file koding Arduino ISP di, File>Example>Arduino ISP

Eris Rifaldi 50
Modul Produk Kreatif kelas XI dan XII
7. Atur pada menu tools Board dan Port yang sesuai dengan penggunaan
Mikrokontroler dan Portnya.

8. Upload Program Arduino ISP

Eris Rifaldi 51
Modul Produk Kreatif kelas XI dan XII
9. Pasangkan Shield Arduino Burn Bootloader pada Arduino Uno

10. Pasangkan IC Atmega 328p di pada Shield Arduino Burn Bootloader

11. Setting Programmer pada Tool untuk Arduino as ISP dengan cara ke
tools>Programmer>Arduino as ISP

Eris Rifaldi 52
Modul Produk Kreatif kelas XI dan XII
12. Sekarang lakukan Burning dengan menggunakan menu tools>BurnBootloader

13. Tunggu sampai muncul notifikasi Done Burn Bootloader

Eris Rifaldi 53
Modul Produk Kreatif kelas XI dan XII
14. Apabila tidak berhasil maka coba perhatikan wiring shield, peletakan Shield dengan
Arduino uno dan Peletakan IC Atmega 328p
15. Sekarang coba masukkan Program led blink pada Arduino sederhana yang telah
dibuat!
16. Amati apa yang terjadi!

VI. Tugas
1. Buatlah Berhasil Atmega 328p terburn!
2. Upload Program LED Blink ke Arduino Sederhananya!
VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di buku laporan masing-masing!

Eris Rifaldi 54
Modul Produk Kreatif kelas XI dan XII
JobDesk8. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 1 (Motor DC)
I. Judul
Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 1 (Motor DC)
II. Tujuan
1. Siswa dapat melakukan perakitan Robot Obstacle Avoiding, Robot Line Follower
& Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba Robot Obstacle Avoiding, Robot Line Follower &
Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
III. Teori Singkat

Motor Listrik DC atau DC Motor ini menghasilkan sejumlah putaran per menit atau
biasanya dikenal dengan istilah RPM (Revolutions per minute) dan dapat dibuat
berputar searah jarum jam maupun berlawanan arah jarum jam apabila polaritas
listrik yang diberikan pada Motor DC tersebut dibalikan. Motor Listrik DC tersedia
dalam berbagai ukuran rpm dan bentuk. Kebanyakan Motor Listrik DC memberikan
kecepatan rotasi sekitar 3000 rpm hingga 8000 rpm dengan tegangan operasional
dari 1,5V hingga 24V. Apabile tegangan yang diberikan ke Motor Listrik DC lebih
rendah dari tegangan operasionalnya maka akan dapat memperlambat rotasi motor
DC tersebut sedangkan tegangan yang lebih tinggi dari tegangan operasional akan
membuat rotasi motor DC menjadi lebih cepat. Namun ketika tegangan yang
diberikan ke Motor DC tersebut turun menjadi dibawah 50% dari tegangan
operasional yang ditentukan maka Motor DC tersebut tidak dapat berputar atau
terhenti. Sebaliknya, jika tegangan yang diberikan ke Motor DC tersebut lebih tinggi
sekitar 30% dari tegangan operasional yang ditentukan, maka motor DC tersebut
akan menjadi sangat panas dan akhirnya akan menjadi rusak.

Terdapat dua bagian utama pada sebuah Motor Listrik DC,


yaitu Stator dan Rotor. Stator adalah bagian motor yang tidak berputar, bagian yang
statis ini terdiri dari rangka dan kumparan medan. Sedangkan Rotor adalah bagian
yang berputar, bagian Rotor ini terdiri dari kumparan Jangkar. Dua bagian utama ini
dapat dibagi lagi menjadi beberapa komponen penting yaitu diantaranya
adalah Yoke (kerangka magnet), Poles (kutub motor), Field winding (kumparan

Eris Rifaldi 55
Modul Produk Kreatif kelas XI dan XII
medan magnet), Armature Winding (Kumparan Jangkar), Commutator (Komutator)
dan Brushes (kuas/sikat arang).

Push Button adalah saklar yang berupa tombol dan berfungsi sebagai pemutus atau
penyambung arus listrik dari sumber arus ke beban listrik.
Suatu sistem saklar tekan push button terdiri dari saklar tekan start, stop reset dan
saklar tekan untuk emergency.

Push button memiliki kontak NC (normally close) dan NO (normally open).

Prinsip kerja Push Button adalah apabila dalam keadaan normal tidak ditekan
maka kontak tidak berubah, apabila ditekan maka kontak NC akan berfungsi sebagai
stop (memberhentikan) dan kontak NO akan berfungsi sebagai start (menjalankan)
biasanya digunakan pada sistem pengontrolan motor – motor induksi untuk
menjalankan mematikan motor pada industri – industri.

Push button dibedakan menjadi beberapa tipe, yaitu:

a. Tipe Normally Open (NO)


Tombol ini disebut juga dengan tombol start karena kontak akan menutup bila
ditekan dan kembali terbuka bila dilepaskan. Bila tombol ditekan maka kontak
bergerak akan menyentuh kontak tetap sehingga arus listrik akan mengalir.
b. Tipe Normally Close (NC)
Tombol ini disebut juga dengan tombol stop karena kontak akan membuka bila
ditekan dan kembali tertutup bila dilepaskan. Kontak bergerak akan lepas dari
kontak tetap sehingga arus listrik akan terputus.
c. Tipe NC dan NO
Tipe ini kontak memiliki 4 buah terminal baut, sehingga bila tombol tidak ditekan
maka sepasang kontak akan NC dan kontak lain akan NO, bila tombol ditekan maka
kontak tertutup akan membuka dan kontak yang membuka akan tertutup.

IV. Alat dan Bahan


1. Arduino Uno R3
2. Kabel USB Uploader
3. Motor DC 2x

Eris Rifaldi 56
Modul Produk Kreatif kelas XI dan XII
4. Push Button 2x
5. Kabel Jumper
V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

2. Sambungkan Arduino Uno ke PC/ Laptop menggunakan kabel USB uploader


3. Buka Aplikasi Arduino IDE pada PC/ Laptop
4. Tulis Program seperti pada dibawah ini!

5. Upload Program
6. Uji coba rangkaian eksperimen tersebut! Dengan menekan setiap push button
VI. Tugas

Eris Rifaldi 57
Modul Produk Kreatif kelas XI dan XII
1. Amatilah Pergerakan Motor DC!
2. Buatlah rangkaian eksperimen tersebut
3. Tes Formatif
a. Mengapa Motor DC dapat berputar forward dan reverse (maju mundur)?
b. Apakah kita bisa mengatur kecepatan putaran motor DC tersebut?

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 58
Modul Produk Kreatif kelas XI dan XII
JobDesk9. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 2 (Sensor Cahaya TCRT 5000)
I. Judul
Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 2 (Sensor Cahaya TCRT 5000)
II. Tujuan
1. Siswa dapat melakukan perakitan Robot Obstacle Avoiding, Robot Line Follower
& Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba Robot Obstacle Avoiding, Robot Line Follower &
Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
III. Teori Singkat
TCRT5000 adalah salah satu sensor yang sering digunakan untuk sensor robot Line
follower, keluaran dari sensor ini berupa sinyal analog, sehingga memungkinkan
kita untuk menggunakan transistor untuk pengaplikasiannya. Bentuk fisik dari
sensor TCRT5000 dapat dilihat pad Gambar dibawah

Jika dilihat dari gambar diatas, kita dapat melihat sebuah potensio dibagian belakang
sensor, fungsi dari pada potensio ini adalah untuk mengatur sensitivitas sensor.
TCRT5000 mempunyai 4 pin, yaitu :
- VCC (untuk input tegangan positif).
- GND (untuk input tegangan negatif).
- D0 (Digital Output), pin Output digital dari sensor TCRT5000.
- A0 (Analog Output), pin output analod dari sensor TCRT5000.
Dalam sensor TCRT5000 terdapat 2 sensor infrared yang masing-masing berfungsi
sebagai pemancar dan penerima, bentuknya seperti LED kecil, dari gambar diatas
dapat dilihat Infrared yang berwarna biru berfungsi sebagai pemancar cahaya, dan
yang berwarna hitam berfungsi sebagai penerima cahayanya.
Cara kerja dari sensor ini dapat dilihat pada Gambar berikut

Eris Rifaldi 59
Modul Produk Kreatif kelas XI dan XII
Dari gambar diatas dapat kita pahami bahwa ketika sensor dihadapkan dengan benda
yang dapat merefleksikan cahaya maka cahaya, maka cahaya akan diteruskan
kepada sensor receiver. Jika sensor dihadapkan dengan benda yang tidak dapatr
merefleksikan cahaya, maka cahaya InfraRed tidak akan diteruskan.
Dari hasil percobaan yang dilakukan, keluaran dari sensor akan bernilai high ketika
dihadapkan dengan warna yang tidak dapat merefleksikan cahaya, misalnya dengan
warna hitam. kemudian pada saat dihadapkan dengan benda/warna yang tidak dapat
merefleksikan cahaya keluaran dari sensor bernilai LOW.

IV. Alat dan Bahan


1. Arduino Uno R3
2. Kabel USB Uploader
3. TCRT 5000
4. LED
5. Kabel Jumper
V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

2. Sambungkan Arduino Uno ke PC/ Laptop menggunakan kabel USB uploader


3. Buka Aplikasi Arduino IDE pada PC/ Laptop
4. Tulis Program seperti pada dibawah ini

Eris Rifaldi 60
Modul Produk Kreatif kelas XI dan XII
5. Upload Program
6. Uji coba rangkaian eksperimen tersebut! Dengan menutup sensor TCRT 5000
VI. Tugas!
1. Buatlah rangkaian eksperimen tersebut
2. Tes Formatif
a. Mengapa sensor TCRT dapat mendeteksi adanya perbedaan intensitas cahaya?
b. Apakah fungsi pin D0 dan A0 pada Sensor TCRT 5000?

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 61
Modul Produk Kreatif kelas XI dan XII
JobDesk10. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 3 (Servo Motor)
I. Judul
Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 3 (Servo Motor)
II. Tujuan
1. Siswa dapat melakukan perakitan Robot Obstacle Avoiding, Robot Line Follower
& Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba Robot Obstacle Avoiding, Robot Line Follower &
Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
III. Teori Singkat
Motor Servo adalah sebuah motor dengan sistem umpan balik tertutup, posisi dari
motor akan diinformasikan kembali kerangkaian kontrol yang ada di dalam motor
servo. Motor ini terdiri dari sebuah motor DC, serangkaian roda gigi (gear),
potensiometer dan rangkaian kontrol.
Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo.
Sedangkan putaran sudut dari sumbu motor servo diatur ( dengan sinyal PWM)
berdasarkan lebar pulsa ( berkisar antara 0.5 ms s.d. 2ms) yang dikirim melalui kaki
sinyal dari motor servo.
Secara umum terdapat 2 jenis motor servo, yaitu motor servo standar (dapat
berputar 180 derajat) dan motor servo Continous (dapat berputar sebesar 360
derajat)

Motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (Pulse
Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol yang
diberikan akan menentukan posisi sudut putaran dari poros motor servo. Sebagai
contoh, lebar pulsa dengan waktu 1,5 ms (mili detik) akan memutar poros motor
servo ke posisi sudut 90⁰. Bila pulsa lebih pendek dari 1,5 ms maka akan berputar
ke arah posisi 0⁰ atau ke kiri (berlawanan dengan arah jarum jam), sedangkan bila
pulsa yang diberikan lebih lama dari 1,5 ms maka poros motor servo akan berputar
ke arah posisi 180⁰ atau ke kanan (searah jarum jam)

Eris Rifaldi 62
Modul Produk Kreatif kelas XI dan XII
IV. Alat dan Bahan
1. Arduino Uno R3
2. Kabel USB Uploader
3. Potensiometer
4. Servomotor
5. Kabel Jumper
V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

2. Sambungkan Arduino Uno ke PC/ Laptop menggunakan kabel USB uploader


3. Buka Aplikasi Arduino IDE pada PC/ Laptop
4. Tulis Program seperti pada dibawah ini

Eris Rifaldi 63
Modul Produk Kreatif kelas XI dan XII
5. Upload Program
6. Uji coba rangkaian eksperimen tersebut!
VI. Tugas!
1. Buatlah rangkaian eksperimen tersebut
2. Tes Formatif
a. Tuliskan jenis-jenis Servo motor!
b. Mengapa motor Servo berbeda dengan motor DC biasa?

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 64
Modul Produk Kreatif kelas XI dan XII
JobDesk11. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 4 (Ultrasonic)
I. Judul
Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 4 (Ultrasonic)
II. Tujuan
1. Siswa dapat melakukan perakitan Robot Obstacle Avoiding, Robot Line Follower
& Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba Robot Obstacle Avoiding, Robot Line Follower &
Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
III. Teori Singkat
Sensor ultrasonik adalah sensor yang dapat mendeteksi gelombang ultrasonik, yaitu
gelombang suara yang memiliki frekuensi ultrasonik atau frekuensi di atas kisaran
frekuensi pendengaran manusia.

HC-SR04 adalah sensor non-kontak pengukur jarak yang menggunakan ultrasonik.


Prinsip kerja sensor ini mirip dengan sistem ekolokasi pada keleleawan, dimana
terdapat pemancar mengirimkan seberkas gelombang ultrasonik yang memiliki
kecepatan v (340m/s) , lalu diukur waktu yang dibutuhkan hingga datangnya
pantulan dari obyek (t). Lamanya waktu ini sebanding dengan dua kali jarak sensor
dengan obyek (R), sehingga jarak sensor dengan obyek dapat ditentukan dalam
persamaan
𝑡
𝑅 = 𝑣𝑥
2

Spesifikasi Sensor Ultrasonic


• VCC = 5V power supply. Pin sumber tegangan positif sensor.
• Trig = Trigger/penyulut. Pin ini yang digunakan untuk membangkitkan sinyal
ultrasonik.
• Echo = Receive/indikator. Pin ini yang digunakan untuk mendeteksi sinyal pantulan
ultrasonik.
• GND = Ground/0V power supply. Pin sumber tegangan negatif sensor. Karakteristik
sensor ultrasonik HC-SR04 antara lain sebagai berikut ini:
• Tegangan sumber operasi tunggal 5.0 V

Eris Rifaldi 65
Modul Produk Kreatif kelas XI dan XII
• Konsumsi arus 15 mA
• Frekuensi operasi 40 kHz
• Minimum pendeteksi jarak 0.02 m (2 cm)
• Maksimum pendeteksian jarak 4 m
• Sudut pantul gelombang pengukuran 15 derajat
• Dimensi 45 x 20 x 15 mm

IV. Alat dan Bahan


1. Arduino Uno R3
2. Kabel USB Uploader
3. Ultrasonic
4. Motor Servo
5. Kabel Jumper
V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

2. Sambungkan Arduino Uno ke PC/ Laptop menggunakan kabel USB uploader


3. Buka Aplikasi Arduino IDE pada PC/ Laptop

Eris Rifaldi 66
Modul Produk Kreatif kelas XI dan XII
4. Tulis Program seperti pada dibawah ini

5. Upload Program
6. Uji coba rangkaian eksperimen tersebut! Dengan menutup menghalangi lajur
Ultrasonic menggunakan benda padat!
VI. Tugas!
1. Buatlah rangkaian eksperimen tersebut
2. Tes Formatif
a. Mengapa sensor Ultrasonik dapat mendeteksi adanya Jarak?
b. Sebutkan jenis-jenis Sensor Ultrasonic dipasaran?

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 67
Modul Produk Kreatif kelas XI dan XII
JobDesk12. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 5 (Modul Bluetooth)
I. Judul
Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 5 (Modul Bluetooth)
II. Tujuan
1. Siswa dapat melakukan perakitan Robot Obstacle Avoiding, Robot Line Follower
& Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba Robot Obstacle Avoiding, Robot Line Follower &
Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
III. Teori Singkat
Bluetooth merupakan sarana komunikasi yang bisa dipergunakan sebagai perantara
(mediator) penghubungan satu alat elektronik semisal smartphone dengan alat
elektronik lainnya semisal laptop atau komputer. Fungsi mendasar bluetooth yaitu
memudahkan proses berbagi data baik video, audio ataupun berkas, sehingga
menggantikan sarana perantara kabel dalam proses berbagi data.

IV. Alat dan Bahan


1. Arduino Uno R3
2. Kabel USB Uploader
3. Modul Bluetooth
4. Kabel Jumper
5. Aplikasi Bluetooth RC Controller
V. Langkah Kerja

Eris Rifaldi 68
Modul Produk Kreatif kelas XI dan XII
1. Rangkailah rangkaian dibawah ini:

2. Sambungkan Arduino Uno ke PC/ Laptop menggunakan kabel USB uploader


3. Buka Aplikasi Arduino IDE pada PC/ Laptop
4. Tulis Program seperti pada dibawah ini
5. Upload Program
6. Uji coba rangkaian eksperimen tersebut! Dengan menekan fungsi-fungsi yang ada
di aplikasi
VI. Tugas!
1. Buatlah rangkaian eksperimen tersebut
2. Tes Formatif
a. Berapa jarak maksimal Bluetooth dapat mengirim sinyal?
b. Coba jelaskan aplikasi mengirimkan data seperti apa ke mikrokontroler?

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 69
Modul Produk Kreatif kelas XI dan XII
JobDesk13. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 6 (Robot RC 2WD Bluetooth)
I. Judul
Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 6 (Robot RC Bluetooth)
II. Tujuan
1. Siswa dapat melakukan perakitan Robot Obstacle Avoiding, Robot Line Follower
& Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba Robot Obstacle Avoiding, Robot Line Follower &
Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
III. Teori Singkat

Teori Bluetooth & Motor DC

IV. Alat dan Bahan


1. Arduino Uno R3
2. Kabel USB Uploader
3. Modul Bluetooth
4. LED
5. Kabel Jumper
6. Body
7. Motor DC 2 + GearBox
8. Roda
9. Spiser 2cm
10. Shield Motor L293 D

V. Langkah Kerja
1. Unduh aplikasi Bluetooth RC Controller di Playstore
2. Rangkailah rangkaian dibawah ini:
- 2WD

Eris Rifaldi 70
Modul Produk Kreatif kelas XI dan XII
- 4WD

3. Rangkailah body yang akan digunakan


- 2WD
- 4WD
4. Sambungkan Arduino Uno ke PC/ Laptop menggunakan kabel USB uploader
5. Buka Aplikasi Arduino IDE pada PC/ Laptop
6. Tulis Program seperti pada dibawah ini
7. Upload Program
8. Buka aplikasi Bluetooth RC Controller
9. Setting Bluetooth Handphone untuk terhububung dengan Bluetooth Robot RC
10. Uji coba rangkaian eksperimen tersebut!
VI. Tugas!

Eris Rifaldi 71
Modul Produk Kreatif kelas XI dan XII
1. Buatlah rangkaian eksperimen tersebut!
2. Deskripsikan dan gambarkan flowchart bagaimana sistem device tersebut bisa
berfungsi sebagaimestinya!
VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 72
Modul Produk Kreatif kelas XI dan XII
Eris Rifaldi 73
Modul Produk Kreatif kelas XI dan XII
JobDesk14. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 7 (Robot RC 2WD Line Follower)
I. Judul
Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 7 (Robot RC Line Follower)
II. Tujuan
1. Siswa dapat melakukan perakitan Robot Obstacle Avoiding, Robot Line Follower
& Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba Robot Obstacle Avoiding, Robot Line Follower &
Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
III. Teori Singkat
Teori TCRT5000 & Motor DC
IV. Alat dan Bahan
1. Arduino Uno R3
2. Kabel USB Uploader
3. TCRT5000 2x
4. LED
5. Kabel Jumper
6. Body
7. Motor DC + GearBox (2/4)
8. Roda
9. Spiser 2cm
10. Shield Motor L293 D

V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:
- 2WD

- 4WD

Eris Rifaldi 74
Modul Produk Kreatif kelas XI dan XII
2. Rangkailah body yang akan digunakan
- 2WD
- 4WD
3. Sambungkan Arduino Uno ke PC/ Laptop menggunakan kabel USB uploader
4. Buka Aplikasi Arduino IDE pada PC/ Laptop
5. Tulis Program seperti pada dibawah ini
- 2WD
- 4WD
6. Upload Program
7. Uji coba rangkaian eksperimen tersebut!
VI. Tugas!
1. Buatlah rangkaian eksperimen tersebut
2. Deskripsikan dan gambarkan flowchart bagaimana sistem device tersebut bisa
berfungsi sebagaimestinya!

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 75
Modul Produk Kreatif kelas XI dan XII
JobDesk15. Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 8 (Robot RC 2WD Obstacle Avoiding)
I. Judul
Perakitan Produk Robot Obstacle Avoiding, Robot Line Follower & Robot
Controlling by Bluetooth Part 8 (Robot RC Obstacle Avoiding)
II. Tujuan
1. Siswa dapat melakukan perakitan Robot Obstacle Avoiding, Robot Line Follower
& Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba Robot Obstacle Avoiding, Robot Line Follower &
Robot Controlling by Bluetooth pada Instalasi Tenaga Listrik
III. Teori Singkat
Teori mengenai Ultrasonic dan Motor Servo
IV. Alat dan Bahan
1. Arduino Uno R3
2. Kabel USB Uploader
3. LED
4. Kabel Jumper
5. Body
6. Motor DC 2 + GearBox
7. Roda
8. Spiser 2cm
9. Shield Motor L293 D
10. Ultrasonic HC SR 04
11. Motor Servo

V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:
- 2WD

Eris Rifaldi 76
Modul Produk Kreatif kelas XI dan XII
- 4WD

2. Rangkailah body yang akan digunakan


- 2WD
- 4WD
3. Sambungkan Arduino Uno ke PC/ Laptop menggunakan kabel USB uploader
4. Buka Aplikasi Arduino IDE pada PC/ Laptop
5. Tulis Program seperti pada dibawah ini
- 2WD
- 4WD
6. Upload Program
7. Uji coba rangkaian eksperimen tersebut!
VI. Tugas!
1. Buatlah rangkaian eksperimen tersebut
2. Deskripsikan dan gambarkan flowchart bagaimana sistem device tersebut bisa
berfungsi sebagaimestinya!

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 77
Modul Produk Kreatif kelas XI dan XII
E. Internet of Thinks (IoT)
Jobdesk16. Perakitan produk IoT lampu otomatis dengan Blynk
I. Judul
Perakitan produk IoT lampu otomatis dengan Blynk
II. Tujuan
1. Siswa dapat melakukan produk IoT lampu otomatis dengan Blynk pada Instalasi
Tenaga Listrik
2. Siswa dapat melakukan uji coba produk IoT lampu otomatis dengan Blynk pada
Instalasi Tenaga Listrik
III. Teori Singkat
Blynk adalah sebuah Platform aplikasi iOS dan Android, digunakan untuk
mengontrol Arduino, Raspberry Pi dan yang lainnya. Blynk adalah dashboard
digital dimana kita dapat membuat sebuah interface grafik untuk pembuatan suatu
project dengan menggeser (drag and drop) dan menyimpan widgets. Dengan
menggunakan Blynk ini kita mudah untuk mengontrol ataupun memonitoring sesuai
dengan kebutuhan
Blynk mendukung untuk pengontrolan mikrokontroler seperti Arduino, ESP8266,
ESP32, Raspberry Pi dan yang lainnya. Asalkan setiap mikrokontroler terhubung
dengan internet menggunakan data selular atau Wi-Fi, Ethernet atau , Blynk bisa
diunduh di playstore secara online dan mendukung Internet of Things.

Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan
komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama
yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch).
Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar
sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik
yang bertegangan lebih tinggi. Sebagai contoh, dengan Relay yang menggunakan
Elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang
berfungsi sebagai saklarnya) untuk menghantarkan listrik 220V 2A

Eris Rifaldi 78
Modul Produk Kreatif kelas XI dan XII
IV. Alat dan Bahan
1. ESP32
2. Kabel USB Type B
3. Kabel Jumper
4. Relay 5VDC
5. DC to DC converter 5V

V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:
- Hubungkanlah pin 5 pada Esp 32 ke IN 1 pada Relay.
- Hubungkanlah sumber dari DC to DC buck ke relay, positif untuk Vcc dan
negatif untuk GND
- Hubungkanlah GND pada relay dengan GND yang ada pada Esp 32

Eris Rifaldi 79
Modul Produk Kreatif kelas XI dan XII
2. Sambungkan Arduino Uno ke PC/ Laptop menggunakan kabel USB uploader
3. Unduh Aplikasi Blynk
4. Masuk dengan menggunakan akun email (gmail)
5. Buat project baru, beri nama project dan pilih mikrokontroler yang akan kontrol.

> >

Eris Rifaldi 80
Modul Produk Kreatif kelas XI dan XII
6. Pada project baru tambahkan 1 switch dengan menambahkan button dan atur
button sebagai switch serta atur konektivitas button tersebut ke GP5 (pin 5 Esp32).

> >

7. Dapatkan auth token pada Blynk App dengan menekan project setting

Eris Rifaldi 81
Modul Produk Kreatif kelas XI dan XII
8. Masukkan program dibawah

9. Masukan Auth token tersebut pada char auth[] =”isi disini”

10. Masukan SSID Wifi dan Passwordnya

11. Jangan Lupa setting Board yang digunakan ke menu, Tools> Board> DOIT ESP
32 DEV KIT V1.

12. Setting juga Port yang terhubung dari Laptop/PC dengan Microkontroller.

Eris Rifaldi 82
Modul Produk Kreatif kelas XI dan XII
13. Upload Program.
14. Kemudian jalankanlah project pada Blynk

>
15. Kemudian On/OFF kan lah Switch Push Button yang ada pada aplikasi
Smartphone kalian.
16. Amati apa yang terjadi!
VI. Tugas!
1. Buatlah rangkaian eksperimen tersebut
2. Deskripsikan dan gambarkan flowchart bagaimana sistem device tersebut bisa
berfungsi sebagaimestinya!

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 83
Modul Produk Kreatif kelas XI dan XII
Jobdesk17. Perakitan produk IoT lampu otomatis dengan Telegram
I. Judul
Perakitan produk IoT lampu otomatis dengan Telegram
II. Tujuan
1. Siswa dapat melakukan produk IoT lampu otomatis dengan Telegram pada Instalasi
Tenaga Listrik
2. Siswa dapat melakukan uji coba produk IoT lampu otomatis dengan Telegram pada
Instalasi Tenaga Listrik
III. Teori Singkat
Telegram Messenger adalah layanan olahpesan cepat dan suara melalui IP berbasis
cloud. Anda dapat dengan mudah menginstalnya di smartphone (Android dan
iPhone) atau komputer (PC, Mac dan Linux). Telegram gratis dan tanpa iklan.
Telegram memungkinkan Anda membuat bot yang dapat Anda gunakan untuk
berinteraksi.
“Bot adalah aplikasi pihak ketiga yang berjalan di dalam Telegram. Pengguna dapat
berinteraksi dengan bot dengan mengirimi mereka pesan, perintah, dan permintaan
sebaris. Anda mengontrol bot Anda menggunakan permintaan HTTPS ke Telegram
Bot API “.
ESP32 / ESP8266 akan berinteraksi dengan bot Telegram untuk menerima dan
menangani pesan, dan mengirim tanggapan. Dalam tutorial ini Anda akan
mempelajari cara menggunakan Telegram untuk mengirim pesan ke bot Anda untuk
mengontrol keluaran ESP dari mana saja (Anda hanya perlu Telegram dan akses ke
internet).

IV. Alat dan Bahan


1. ESP32

Eris Rifaldi 84
Modul Produk Kreatif kelas XI dan XII
2.Kabel USB Type B
3.Kabel Jumper
4.Relay 5VDC
5.DC to DC converter 5V
V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

2. Buatlah Telegram bot terlebih dahulu dengan cara:

a. install Telegram

Eris Rifaldi 85
Modul Produk Kreatif kelas XI dan XII
b. Cari BotFather

c. klik /start

d. klik /newbot dan masukkan nama bot dan


username untuk bot

Eris Rifaldi 86
Modul Produk Kreatif kelas XI dan XII
e. Bot telah selesai dibuat, dan auth token
sudah didapat
3. Sambungkan ESP32 ke PC/ Laptop menggunakan kabel USB uploader
4. Buka Aplikasi Arduino IDE pada PC/ Laptop
5. Instalasi Library ArduinoJson dan Universial Telegram Bot
Skech > Include Library > Manage Libraries

Eris Rifaldi 87
Modul Produk Kreatif kelas XI dan XII
6. Masukkan program seperti dibawah ini

Eris Rifaldi 88
Modul Produk Kreatif kelas XI dan XII
7. Masukkan Auth token bot Telegram

8. Masukan SSID Wifi dan Passwordnya

9. Jangan Lupa setting Board yang digunakan ke menu, Tools> Board> DOIT ESP32
DEVKIT
10. Setel port yang digunakan ESP32
11. Upload Program
12. Uji coba rangkaian eksperimen tersebut!
VI. Tugas!
1. Buatlah rangkaian eksperimen tersebut
2. Deskripsikan dan gambarkan flowchart bagaimana sistem device tersebut bisa
berfungsi sebagaimestinya!

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 89
Modul Produk Kreatif kelas XI dan XII
Jobdesk18. Perakitan produk IoT Sending Photo Using ESP32 Cam to Telegram
I. Judul
Perakitan produk IoT Sending Photo Using ESP32 Cam to Telegram
II. Tujuan
1. Siswa dapat melakukan produk IoT Sending Photo Using ESP32 Cam to Telegram
pada Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba produk IoT Sending Photo Using ESP32 Cam to
Telegram pada Instalasi Tenaga Listrik
III. Teori Singkat

IV. Alat dan Bahan


1. ESP 32 Cam
2. USB to TTL FTDI
3. Kabel USB
4. Kabel Jumper

V. Langkah Kerja
1. Rangkailah rangkaian dibawah ini:

2. Buatlah Telegram bot terlebih dahulu dengan cara:

Eris Rifaldi 90
Modul Produk Kreatif kelas XI dan XII
a. install Telegram

b. Cari BotFather

c. klik /start

d. klik /newbot dan masukkan nama bot dan


username untuk bot

Eris Rifaldi 91
Modul Produk Kreatif kelas XI dan XII
e. Bot telah selesai dibuat, dan auth token
sudah didapat
3. Buat Chat ID

Cari ID Bot

Char /getid, maka ID Chat dapat


didapatkan
4. Instalasi Library ArduinoJson dan Universial Telegram Bot

Eris Rifaldi 92
Modul Produk Kreatif kelas XI dan XII
Skech > Include Library > Manage Libraries

5. Sambungkan ESP 32 Cam ke PC/ Laptop menggunakan kabel USB uploader


6. Buka Aplikasi Arduino IDE pada PC/ Laptop
7. Tulis Program seperti pada dibawah ini
[code]
#include <Arduino.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include "soc/soc.h"
#include "soc/rtc_cntl_reg.h"
#include "esp_camera.h"
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>

const char* ssid = "REPLACE_WITH_YOUR_SSID";


const char* password = "REPLACE_WITH_YOUR_PASSWORD";

// Initialize Telegram BOT

Eris Rifaldi 93
Modul Produk Kreatif kelas XI dan XII
String BOTtoken =
"XXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
"; // Bot Token mu

// Use @myidbot to find out the chat ID of an individual or a group


// Also note that you need to click "start" on a bot before it can
// message you
String CHAT_ID = "XXXXXXXXXX";

bool sendPhoto = false;

WiFiClientSecure clientTCP;
UniversalTelegramBot bot(BOTtoken, clientTCP);

#define FLASH_LED_PIN 4
bool flashState = LOW;

//Checks for new messages every 1 second.


int botRequestDelay = 1000;
unsigned long lastTimeBotRan;

//CAMERA_MODEL_AI_THINKER
#define PWDN_GPIO_NUM 32
#define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 0
#define SIOD_GPIO_NUM 26
#define SIOC_GPIO_NUM 27

#define Y9_GPIO_NUM 35
#define Y8_GPIO_NUM 34
#define Y7_GPIO_NUM 39
#define Y6_GPIO_NUM 36
#define Y5_GPIO_NUM 21
#define Y4_GPIO_NUM 19
#define Y3_GPIO_NUM 18
#define Y2_GPIO_NUM 5
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22

void configInitCamera(){
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;

Eris Rifaldi 94
Modul Produk Kreatif kelas XI dan XII
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;

//init with high specs to pre-allocate larger buffers


if(psramFound()){
config.frame_size = FRAMESIZE_UXGA;
config.jpeg_quality = 10; //0-63 lower number means higher quality
config.fb_count = 2;
} else {
config.frame_size = FRAMESIZE_SVGA;
config.jpeg_quality = 12; //0-63 lower number means higher quality
config.fb_count = 1;
}

// camera init
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
delay(1000);
ESP.restart();
}

// Drop down frame size for higher initial frame rate


sensor_t * s = esp_camera_sensor_get();
s->set_framesize(s, FRAMESIZE_CIF); //
UXGA|SXGA|XGA|SVGA|VGA|CIF|QVGA|HQVGA|QQVGA
}

void handleNewMessages(int numNewMessages) {


Serial.print("Handle New Messages: ");
Serial.println(numNewMessages);

Eris Rifaldi 95
Modul Produk Kreatif kelas XI dan XII
for (int i = 0; i < numNewMessages; i++) {
String chat_id = String(bot.messages[i].chat_id);
if (chat_id != CHAT_ID){
bot.sendMessage(chat_id, "Unauthorized user", "");
continue;
}

// Print the received message


String text = bot.messages[i].text;
Serial.println(text);

String from_name = bot.messages[i].from_name;


if (text == "/start") {
String welcome = "Welcome , " + from_name + "\n";
welcome += "Use the following commands to interact with the ESP32-CAM
\n";
welcome += "/photo : takes a new photo\n";
welcome += "/flash : toggles flash LED \n";
bot.sendMessage(CHAT_ID, welcome, "");
}
if (text == "/flash") {
flashState = !flashState;
digitalWrite(FLASH_LED_PIN, flashState);
Serial.println("Change flash LED state");
}
if (text == "/photo") {
sendPhoto = true;
Serial.println("New photo request");
}
}
}

String sendPhotoTelegram() {
const char* myDomain = "api.telegram.org";
String getAll = "";
String getBody = "";

camera_fb_t * fb = NULL;
fb = esp_camera_fb_get();
if(!fb) {
Serial.println("Camera capture failed");
delay(1000);
ESP.restart();
return "Camera capture failed";
}

Eris Rifaldi 96
Modul Produk Kreatif kelas XI dan XII
Serial.println("Connect to " + String(myDomain));

if (clientTCP.connect(myDomain, 443)) {
Serial.println("Connection successful");

String head = "--RandomNerdTutorials\r\nContent-Disposition: form-data;


name=\"chat_id\"; \r\n\r\n" + CHAT_ID + "\r\n--
RandomNerdTutorials\r\nContent-Disposition: form-data; name=\"photo\";
filename=\"esp32-cam.jpg\"\r\nContent-Type: image/jpeg\r\n\r\n";
String tail = "\r\n--RandomNerdTutorials--\r\n";

uint16_t imageLen = fb->len;


uint16_t extraLen = head.length() + tail.length();
uint16_t totalLen = imageLen + extraLen;

clientTCP.println("POST /bot"+BOTtoken+"/sendPhoto HTTP/1.1");


clientTCP.println("Host: " + String(myDomain));
clientTCP.println("Content-Length: " + String(totalLen));
clientTCP.println("Content-Type: multipart/form-data;
boundary=RandomNerdTutorials");
clientTCP.println();
clientTCP.print(head);

uint8_t *fbBuf = fb->buf;


size_t fbLen = fb->len;
for (size_t n=0;n<fbLen;n=n+1024) {
if (n+1024<fbLen) {
clientTCP.write(fbBuf, 1024);
fbBuf += 1024;
}
else if (fbLen%1024>0) {
size_t remainder = fbLen%1024;
clientTCP.write(fbBuf, remainder);
}
}

clientTCP.print(tail);

esp_camera_fb_return(fb);

int waitTime = 10000; // timeout 10 seconds


long startTimer = millis();
boolean state = false;

Eris Rifaldi 97
Modul Produk Kreatif kelas XI dan XII
while ((startTimer + waitTime) > millis())
{
Serial.print(".");
delay(100);
while (clientTCP.available())
{
char c = clientTCP.read();
if (c == '\n')
{
if (getAll.length()==0) state=true;
getAll = "";
}
else if (c != '\r')
getAll += String(c);
if (state==true) getBody += String(c);
startTimer = millis();
}
if (getBody.length()>0) break;
}
clientTCP.stop();
Serial.println(getBody);
}
else {
getBody="Connected to api.telegram.org failed.";
Serial.println("Connected to api.telegram.org failed.");
}
return getBody;
}

void setup(){
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);
// Init Serial Monitor
Serial.begin(115200);

// Set LED Flash as output


pinMode(FLASH_LED_PIN, OUTPUT);
digitalWrite(FLASH_LED_PIN, flashState);

// Config and init the camera


configInitCamera();

// Connect to Wi-Fi
WiFi.mode(WIFI_STA);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

Eris Rifaldi 98
Modul Produk Kreatif kelas XI dan XII
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("ESP32-CAM IP Address: ");
Serial.println(WiFi.localIP());
}

void loop() {
if (sendPhoto) {
Serial.println("Preparing photo");
sendPhotoTelegram();
sendPhoto = false;
}
if (millis() > lastTimeBotRan + botRequestDelay) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages) {
Serial.println("got response");
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
}
[/code]
8. Masukkan Auth token bot Telegram

9. Masukan SSID Wifi dan Passwordnya

10. Masukkan Chat ID

11. Jangan Lupa setting Board yang digunakan ke menu, Tools> Board> AI Thinker
ESP 32 Cam
12. Setel port yang digunakan ESP32 Cam
13. Upload Program
14. Ketika mengupload pin Io0 dan GND harus tersambung seperti pada gambar
rangkaian dan tekan tombol RST pada ESP 32 Cam
15. Ketika Program telah diupload ke ESP 32 CAM maka cabut komunikasi Io0
dengan GND dan tekan tombol RST kembali.
16. Uji coba rangkaian eksperimen tersebut!

VI. Tugas!

Eris Rifaldi 99
Modul Produk Kreatif kelas XI dan XII
1. Buatlah rangkaian eksperimen tersebut
2. Deskripsikan dan gambarkan flowchart bagaimana sistem device tersebut bisa
berfungsi sebagaimestinya!

VII. Kesimpulan
3. Tulislah Kesimpulan!
4. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 100


Modul Produk Kreatif kelas XI dan XII
Jobdesk19. Perakitan produk IoT CCTV Web Server Using ESP32 Cam
I. Judul
Perakitan produk IoT CCTV Web Server Using ESP32 Cam
II. Tujuan
1. Siswa dapat melakukan produk IoT CCTV Web Server Using ESP32 Cam pada
Instalasi Tenaga Listrik
2. Siswa dapat melakukan uji coba produk IoT CCTV Web Server Using ESP32 Cam
pada Instalasi Tenaga Listrik
III. Teori Singkat
IV. Alat dan Bahan
1. ESP 32 Cam
2. USB to TTL FTDI
3. Kabel USB
4. Kabel Jumper
V. Langkah Kerja
5. Rangkailah rangkaian dibawah ini:

6. Hubungkan ESP 32-CAM dengan PC/ Laptop menggunakan kabel USB


7. Buka Aplikasi Arduino IDE pada PC/ Laptop
8. Instalasi Library ArduinoJson
Skech > Include Library > Manage Libraries

Eris Rifaldi 101


Modul Produk Kreatif kelas XI dan XII
9. Masukkan Program ini.
[code]
#include "esp_camera.h"
#include <WiFi.h>

//
// WARNING!!! Make sure that you have either selected ESP32 Wrover Module,
// or another board which has PSRAM enabled
//

// Select camera model


//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER

#include "camera_pins.h"

const char* ssid = "Xena";


const char* password = "DindaKurus";

void startCameraServer();

void setup() {
Serial.begin(115200);
Serial.setDebugOutput(true);
Serial.println();

camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;

Eris Rifaldi 102


Modul Produk Kreatif kelas XI dan XII
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 5000000;
config.pixel_format = PIXFORMAT_RGB888;
//init with high specs to pre-allocate larger buffers
if(psramFound()){
config.frame_size = FRAMESIZE_VGA;
config.jpeg_quality = 10;
config.fb_count = 2;
} else {
config.frame_size = FRAMESIZE_VGA;
config.jpeg_quality = 12;
config.fb_count = 1;
}

#if defined(CAMERA_MODEL_ESP_EYE)
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
#endif

// camera init
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
return;
}

sensor_t * s = esp_camera_sensor_get();
//initial sensors are flipped vertically and colors are a bit saturated
if (s->id.PID == OV3660_PID) {
s->set_vflip(s, 1);//flip it back
s->set_brightness(s, 1);//up the blightness just a bit
s->set_saturation(s, -2);//lower the saturation
}
//drop down frame size for higher initial frame rate
s->set_framesize(s, FRAMESIZE_QVGA);

#if defined(CAMERA_MODEL_M5STACK_WIDE)
s->set_vflip(s, 1);
s->set_hmirror(s, 1);
#endif

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {


delay(500);

Eris Rifaldi 103


Modul Produk Kreatif kelas XI dan XII
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

startCameraServer();

Serial.print("Camera Ready! Use 'http://");


Serial.print(WiFi.localIP());
Serial.println("' to connect");
}

void loop() {
// put your main code here, to run repeatedly:
delay(10000);
}
[/code]

10. Jangan Lupa setting Board yang digunakan ke menu, Tools> Board> AI Thinker
ESP 32 Cam
11. Setel port yang digunakan ESP32 Cam
12. Upload Program
13. Ketika mengupload pin Io0 dan GND harus tersambung seperti pada gambar
rangkaian dan tekan tombol RST pada ESP 32 Cam
14. Ketika Program telah diupload ke ESP 32 CAM maka cabut komunikasi Io0
dengan GND dan tekan tombol RST kembali.
15. Uji coba rangkaian eksperimen tersebut!
VI. Tugas!
1. Buatlah rangkaian eksperimen tersebut
2. Deskripsikan dan gambarkan flowchart bagaimana sistem device tersebut bisa
berfungsi sebagaimestinya!

VII. Kesimpulan
1. Tulislah Kesimpulan!
2. Buat Laporan Praktik di Kertas 2 Lembar

Eris Rifaldi 104


Modul Produk Kreatif kelas XI dan XII

Anda mungkin juga menyukai