BAB II LANDASAN TEORI

advertisement
BAB II
LANDASAN TEORI
2.1 Gambaran Umum
Dalam merancang sebuah robot kita harus mengetahui bahwa robot itu terdiri dari 3
bagian utama , yaitu : mekanik , elektrik, dan program . Mekanik adalah hal yang paling
terpenting di antara ketiganya karena walaupun kita memiliki elektrik dan program yang baik
tetapi mekanik nya buruk maka yang dihasilkan adalah robot yang buruk tetapi dengan mekanik
yang baik walaupun elektrik dan program nya buruk akan menghasilkan robot yang cukup baik.
Sehingga urutan untuk merancang sebuah robot ialah mulai dari mendesign mekanik , kemudian
bagian elektrik dan yang terakhir bagian programming tetapi untuk dapat merancang mekanik
yang baik kita perlu mengetahui komponen-komponen apa saja yang akan dipasang di mekanik
robot.
2.1.1
Mekanik
Mendesign mekanik yang baik membutuhkan beberapa pertimbangan, yaitu :

Dimensi robot yang akan dibuat

Komponen-komponen apa saja yang terpasang di mekanik robot

Bagaimana cara robot bergerak

Bahan apa yang digunakan untuk mekanik

Metode pembuatan mekanik (manual/mesin)

Jalur pengkabelan

Software perancangan mekanik

Berat beban pada mekanik

Estetika design

Keefiseinan design
5
Page |6
Bahan pembuatan mekanik
A. Plat Alumunium
Gambar 2.1
Plat Alumunium
Tersedia dalam ketebalan antara 0.15mm sampai 250mm,
untuk pembuatan buatan base robot direkomendasikan menggunakan plat alumunium
dengan ketebalan 5mm sedangkan untuk pembuatan mekanik yang memerlukan tekukan
pada plat alumunium direkomendasikan menggunakan plat alumunium dengan ketebalan
2mm. Alamunium bersifat konduktif sehingga perlu hati-hati dalam penggunaannya.
Rating bahan:
Kekuatan
: 
Berat
: 
Pembentukan : 
Estetika
: 
Harga
: 
Page |7
B. Acrylic
Gambar 2.2
Lembar Acrylic
Acrylic bersifat isolator sehingga aman digunakan sebagai mekanik robot dan juga
acrylic memiliki berbagai macam pilihan warna sehingga dalam menambah estetika
robot. Tidak direkomendasikan menggunakan acrylic bening untuk bagian mekanik robot
yang bertanggungjawab pada beban yang berat , karena acrylic berwarna lebih kuat dari
acrylic bening.
Rating bahan:
Kekuatan
: 
Berat
: 
Pembentukan : 
Estetika
: 
Harga
: 
C. Untuk pemilihan bahan sebenarnya dapat menggunakan apa saja sesuai kreativitas anda,
Acrylic dan Alumunium merupakan bahan yang umum digunakan untuk membuat
mekanik sebuah robot.
Page |8
2.1.2
Elektrik
Komponen-komponen elektrik robot terdiri dari beberapa kategori , yaitu :

Komponen elektronika

Sensor

Aktuator
1. Komponen elektronika
A. Resistor
Gambar 2.3
Resistor
Resistor menentukan aliran arus dalam rangkaian listrik. Dimana ada resistansi
yang besar di rangkaian aliran arus kecil, dan resistansi rendah aliran arus besar.
B. Kapasitor
Gambar 2.4
Kapasitor
Page |9
Kapasitor adalah komponen yang digunakan untuk menyimpan muatan listrik dan
digunakan dalam rangkaian timer. Sebuah kapasitor dapat digunakan dengan resistor
untuk menghasilkan timer. Kadang-kadang kapasitor digunakan untuk memperhalus arus
dalam sebuah rangkaian karena mereka dapat memotong spike dari komponen lain seperti
relay. Bila daya dipasok ke sirkuit yang mengandung kapasitor – Kapasitor mengisi daya.
Bila daya dimatikan kapasitor mulai pembuangan muatan listrik secara perlahan-lahan.
C. Dioda
Gambar 2.5
Dioda
Sebuah dioda memungkinkan listrik mengalir dalam satu arah saja dan
menghalangi aliran ke arah yang berlawanan. Mereka dapat dianggap sebagai katup satu
arah dan mereka digunakan dalam berbagai sirkuit, biasanya sebagai bentuk
perlindungan. Ada berbagai jenis dioda namun fungsi dasar mereka adalah sama.
D. Transistor
Gambar 2.6
Transistor
P a g e | 10
Transistor dapat dianggap sebagai jenis switch. Transistor adalah pusat untuk
elektronik dan ada dua jenis utama, NPN dan PNP. Kebanyakan sirkuit cenderung
menggunakan NPN. Ada ratusan transistor yang bekerja pada tegangan yang berbeda,
tetapi mereka semua jatuh ke dalam dua kategori tersebut.
2. Sensor
A. Resistive bent sensor - Resistansi bertambah bila ditekuk
Gambar 2.7
Resistive bent sensor
Ini sensor sederhana mendeteksi tekukan. Kesederhanaan membuatnya serbaguna,
bisa digunakan untuk mendeteksi getaran, kelembaban, gerak, dampak, dan aliran udara.
Sensor tekukan terdiri dari substrat yang terlapisi, misalnya plastik, sensor ini mengalami
perubahan konduktivitas listrik saat mengalami tekukan. Ini memberikan kehandalan
non-mekanik dalam penginderaan elektronik dan teknologi aktuator. Sensor ini terdiri
dari film plastik dicetak dengan tinta karbon khusus. Film ini tidak biasa, inovasi nyata
pada sensor ini adalah tinta. Hambatan dari tinta ini menurun bila semakin ditekuk. Tinta
dapat dicetak pada hampir semua bentuk dan ukuran film.
P a g e | 11
B. Potentiometer - Resistansi bertambah bila diputar
Gambar 2.8
Potentiometer
Sebuah potensiometer adalah resistor tiga terminal dengan kontak geser yang
membentuk pembagi tegangan yang dapat disesuaikan. Jika hanya dua terminal yang
digunakan, satu ujung dan wiper, maka ia bertindak sebagai resistor variabel atau
rheostat.
C. Light Dependent Resistor (LDR)
Gambar 2.9
LDR
Sebuah light dependent resistor (LDR) adalah sebuah resistor yang resistansinya
menurun dengan meningkatnya intensitas cahaya, dengan kata lain, hal itu menunjukkan
fotokonduktivitas. LDR terbuat dari semikonduktor resistansi tinggi. Jika cahaya yang
jatuh pada perangkat memiliki frekuensi yang cukup tinggi, foton diserap oleh
semikonduktor memberikan elektron terikat energi yang cukup untuk melompat ke pita
konduksi. menghasilkan elektron bebas menghantarkan listrik, sehingga menurunkan
resistensi.
P a g e | 12
D. Limit Switch
Gambar 2.10
Limit Switch
Dalam teknik elektro limit switch adalah perangkat elektromekanis yang terdiri
dari aktuator mekanis terkait dengan satu set kontak. Ketika sebuah benda datang dan
menekan aktuator, perangkat beroperasi untuk menghubungkan atau memutuskan
sambungan listrik. Limit switch digunakan dalam berbagai aplikasi dan lingkungan
karena kehandalannya, kemudahan instalasi, dan keandalan operasi. Mereka dapat
mendeteksi keberadaan, passing, positioning, dan akhir perjalanan dari suatu obyek.
Mereka pertama kali digunakan untuk menentukan batas perjalanan obyek; maka disebut
"Limit Switch."
E. Photodioda
Gambar 2.11
Photodioda
Photodioda adalah dioda yang bekerja berdasarkan intensitas cahaya, jika
photodioda terkena cahaya maka photodioda bekerja seperti dioda pada umumnya, tetapi
jika tidak mendapat cahaya maka photodioda akan berperan seperti resistor dengan nilai
tahanan yang besar sehingga arus listrik tidak dapat mengalir.
P a g e | 13
F. Sensor Jarak Infrared
Gambar 2.12
Sensor Jarak Infrared
Sharp IR Range Finder bekerja dengan proses triangulasi. Sebuah pulsa cahaya
(kisaran panjang gelombang 850nm + /-70nm) dipancarkan dan kemudian dipantulkan
kembali (atau tidak tercermin sama sekali). Ketika cahaya pantulan datang kembali
dengan sudut yang tergantung pada jarak objek refleksi. Triangulasi ini bekerja dengan
mendeteksi sudut cahaya pantulan - dengan mengetahui sudut, jarak kemudian dapat
ditentukan.
G. Ultrasonic sensor
Gambar 2.13
Ultrasonic sensor
P a g e | 14
Mikrokontroler Anda memberi perintah Sensor Ultrasonik untuk memancarkan
gelombang suara ultrasonik. Sensor Ultrasonik mengeluarkan suara yang sebagian besar
tak terdengar, waktu berlalu, kemudian mendeteksi echo atau pantulan suara yang
kembali ke sensor. Kemudian segera mengirim sinyal tegangan ke mikrokontroler,
dengan melacak waktu kirim dan waktu kembali, dapat menghitung jarak dari objek yang
terdeteksi.
H. Accelerometer
Gambar 2.14
Accelerometer
Accelerometers sangat penting dalam dunia sensor karena mereka dapat
merasakan seperti berbagai gerak. Accelerometer mengukur percepatan (perubahan
kecepatan)
P a g e | 15
I. Digital Compass
Gambar 2.15
Digital Compass
Digital Compass memberikan pengukuran berdasarkan medan magnet bumi untuk
navigasi robot. Kompas digital murah biasanya memiliki resolusi sekitar + / - 5 derajat,
tetapi yang lebih baru dan lebih baik dapat mendeteksi dengan akurasi yang lebih baik.
3. Aktuator
A. Motor DC
Gambat 2.16
Motor DC
Motor DC memerlukan suplai tegangan yang searah pada kumparan medan untuk
diubah menjadi energi mekanik. Bagian utama motor DC adalah stator dan rotor dimana
P a g e | 16
kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan
kumparan jangkar disebut rotor (bagian yang berputar). Bentuk motor paling sederhana
memiliki kumparan satu lilitan yang bisa berputar bebas di antara kutub-kutub magnet
permanen.
B. Servo
Gambar 2.17
Servo
Motor servo adalah sebuah motor DC yang dilengkapi rangkaian kendali dengan
sistem closed feedback yang terintegrasi dalam motor tersebut. Pada motor servo posisi
putaran sumbu (axis) dari motor akan diinformasikan kembali ke rangkaian kontrol yang
ada di dalam motor servo. Motor servo disusun dari sebuah motor DC, gearbox, variabel
resistor (VR) atau potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk
menentukan batas maksimum putaran sumbu (axis) motor servo. Sedangkan sudut dari
sumbu motor servo diatur berdasarkan lebar pulsa yang pada pin kontrol motor servo.
P a g e | 17
C. Motor Stepper
Gambar 2.18
Motor stepper
Motor Stepper adalah suatu motor listrik yang dapat mengubah pulsa listrik yang
diberikan menjadi gerakan motor discret (terputus) yang disebut step (langkah). Satu
putaran motor memerlukan 360° dengan jumlah langkah yang tertentu perderajatnya.
Ukuran kerja dari motor stepper biasanya diberikan dalam jumlah langkah per-putaran
per-detik.
2.1.3
Programming (Arduino)
1. Struktur
Struktur dasar dari bahasa pemrograman Arduino cukup sederhana dan berjalan dalam
setidaknya dua bagian. Dibawah ini merupakan dua bagian yang diperlukan, termasuk
blok pernyataan.
void setup()
{
statements;
}
void loop()
{
statements;
}
P a g e | 18
Dimana setup () adalah persiapan, loop() adalah eksekusi. Kedua fungsi yang
dibutuhkan untuk program untuk bekerja.
Fungsi setup() harus mengikuti deklarasi setiap variabel di awal program. Ini
adalah fungsi pertama yang berjalan di program, dijalankan hanya sekali, dan digunakan
untuk mengatur pinMode atau menginisialisasi komunikasi serial.
Fungsi loop() yang dijalankan berikutnya dan termasuk kode yang akan
dieksekusi berulang kali - membaca input, memicu output, dll. Fungsi ini adalah inti dari
semua program Arduino dan melakukan sebagian besar pekerjaan.
2. Tipe Data
A. byte
byte menyimpan nilai numerik 8-bit tanpa bilangan desimal. Bernilai 0-255.
B. int
Integer adalah tipe data utama untuk penyimpanan nomor tanpa bilangan desimal dan
menyimpan nilai 16-bit dengan kisaran 32.767 sampai -32.768.
Note: Variabel integer akan direset jika melewati nilai maksimum atau nilai minimum dikarenakan program atau
perbandingan. Sebagai contoh, jika x = 32767 dan pernyataan berikutnya menambahkan 1 x, x = x + 1 atau x + +,
x kemudian akan direset dan setara -32.768.
C. long
Tipe data utama untuk penyimpanan nomor, tanpa bilangan desimal, disimpan dalam
nilai 32-bit dengan kisaran 2147483647 untuk -2147483648.
D. float
Sebuah datatype untuk angka floating-point, atau angka yang memiliki titik desimal.
Angka floating-point memiliki resolusi lebih besar dari bilangan bulat dan disimpan
sebagai nilai 32-bit dengan kisaran 3.4028235E +38 ke-3.4028235E +38.
Note: Angka floating-point tidak exact, dan dapat menghasilkan hasil yang aneh bila dibandingkan. floating-point
juga jauh lebih lambat dibandingkan integer dalam melakukan perhitungan, sehingga harus dihindari jika
mungkin.
P a g e | 19
E. array
Array adalah koleksi nilai yang diakses dengan nomor indeks. Setiap nilai dalam
array dapat dipanggil dengan memanggil nama array dan nomor indeks nilai. Array
harus dideklarasikan dan opsional ditugaskan nilai sebelum mereka dapat digunakan.
int myArray[ ] = {value0, value1, value2...}
Demikian juga dimungkinkan untuk mendeklarasikan array dengan mendeklarasikan
tipe array dan ukuran dan kemudian memberikan nilai pada posisi indeks:
int myArray[5]; // declares integer array w/ 6 positions
myArray[3] = 10; // assigns the 4th index the value 10
Untuk mengambil nilai dari sebuah array, menetapkan variabel ke array dan posisi
indeks:
x = myArray[3]; // x now equals 10
Array sering digunakan dalam untuk loop, di mana counter kenaikan juga digunakan
sebagai posisi indeks untuk setiap nilai array.
3. Aritmatika
Operator aritmatika termasuk penambahan, pengurangan, perkalian, dan
pembagian. Mereka mengembalikan jumlah, selisih, produk, atau quotient (masingmasing) dari dua operan.
y = y + 3;
x = x – 7;
i = j * 6;
r = r / 5;
Operasi ini dilakukan dengan menggunakan tipe data dari operan, jadi, misalnya,
9/4 menghasilkan 2 bukannya 2,25 sejak 9 dan 4 ints dan tidak mampu menggunakan
bilangan desimal. Ini juga berarti bahwa operasi bisa bertambah jika hasilnya lebih besar
dari
apa
yang
dapat
disimpan
dalam
tipe
data.
P a g e | 20
Jika operan dari berbagai jenis, jenis yang lebih besar digunakan untuk
perhitungan. Misalnya, jika salah satu nomor (operan) adalah dari tipe float dan lainnya
bertipe integer, floating point akan digunakan untuk perhitungan.
Pilih ukuran variabel yang cukup besar untuk menampung hasil terbesar dari
perhitungan. Tahu pada titik apa variabel Anda akan rollover dan juga apa yang terjadi di
arah lain misalnya (0 - 1) ATAU (0-32.768).
Untuk matematika yang memerlukan pecahan, menggunakan variabel float, tetapi
menyadari kekurangan mereka: ukuran besar dan kecepatan perhitungan lambat.
Note: Gunakan cast operator misalnya (int) myFloat untuk mengkonversi satu jenis variabel yang lain dengan cepat.
Misalnya, i = (int) 3,6 akan menetapkan i sama dengan 3.
4. Compound Assignments
compound assignment menggabungkan operasi aritmatika dengan tugas variabel. Ini
biasanya ditemukan dalam untuk loop seperti yang dijelaskan kemudian. compound
assignment yang paling umum yaitu:
x ++ // same as x = x + 1, or increments x by +1
x -- // same as x = x - 1, or decrements x by -1
x += y // same as x = x + y, or increments x by +y
x -= y // same as x = x - y, or decrements x by -y
x *= y // same as x = x * y, or multiplies x by y
x /= y // same as x = x / y, or divides x by y
Note: Misalnya, x * = 3 akan tiga kali lipat nilai lama x dan kembali menetapkan hasilnya sebagai x.
5. Operator Pembanding
Perbandingan satu variabel atau konstan terhadap yang lain sering digunakan dalam jika
pernyataan untuk menguji apakah kondisi tertentu adalah benar.
x == y
x != y
x<y
x>y
x <= y
x >= y
// x is equal to y
// x is not equal to y
// x is less than y
// x is greater than y
// x is less than or equal to y
// x is greater than or equal to y
P a g e | 21
6. Operator Logika
Logical operator biasanya cara untuk membandingkan dua ekspresi dan mengkategorikan
TRUE atau FALSE, tergantung pada operator. Ada tiga operator logika, AND, OR, dan
NOT, yang sering digunakan dalam pernyataan if:
Logical AND:
if (x > 0 && x < 5) // true only if both
// expressions are true
Logical OR:
if (x > 0 || y > 0) // true if either
// expression is true
Logical NOT:
if (!x > 0) // true only if
// expression is false
7. Konstanta
Bahasa Arduino memiliki nilai-nilai yang telah ditetapkan, yang disebut konstanta.
Mereka digunakan untuk membuat program lebih mudah dibaca. Konstanta
diklasifikasikan dalam kelompok.
A. true/false
Ini adalah konstanta Boolean yang mendefinisikan tingkat logika. FALSE mudah
didefinisikan sebagai 0 (nol) sedangkan TRUE sering didefinisikan sebagai 1, tetapi
juga bisa menjadi apa pun kecuali nol. Jadi dalam arti Boolean, -1, 2, dan -200 semua
juga didefinisikan sebagai TRUE.
if (b == TRUE);
{
doSomething;
}
B. high/low
Konstanta ini mendefinisikan tingkat pin sebagai HIGH atau LOW dan digunakan
ketika membaca atau menulis ke pin digital. HIGH didefinisikan sebagai tingkat
logika 1, ON, atau 5 volt sementara LOW adalah tingkat logika 0, OFF, atau 0 volt.
digitalWrite(13, HIGH);
P a g e | 22
C. input/output
Konstanta digunakan dengan fungsi pinMode () untuk menentukan mode pin digital
baik sebagai INPUT atau OUTPUT.
pinMode(13, OUTPUT);
8. Flow Control
A. if
if menguji apakah kondisi tertentu telah tercapai, seperti nilai analog berada di atas
jumlah tertentu, dan mengeksekusi pernyataan di dalam kurung jika pernyataan
tersebut benar. Jika program tidak sesuai maka pernyataan tersebut akan dilewati.
Format untuk if :
if (someVariable ?? value)
{
doSomething;
}
Contoh di atas membandingkan someVariable ke nilai lain, yang dapat berupa
variabel atau konstanta. Jika perbandingan, atau kondisi dalam kurung adalah benar,
pernyataan di dalam kurung kurawal dijalankan. Jika tidak, program akan dilewati
dan melanjutkan ke program di bawahnya.
Note: Waspadai menggunakan '=', seperti dalam if (x = 10), sedangkan secara teknis mendefinisikan variabel x
dengan nilai 10 dan sebagai akibat selalu benar. Alih-alih menggunakan '==', seperti dalam if (x == 10), yang
hanya menguji apakah x terjadi menyamai nilai 10 atau tidak.
B. if… else
if… else terbatas pada dua pilihan yang harus dibuat. Misalnya, jika Anda ingin
menguji input digital, dan melakukan satu hal jika input HIGH atau sebaliknya
melakukan hal lain jika input adalah LOW, Anda akan menulis dengan cara ini:
P a g e | 23
if (inputPin == HIGH)
{
doThingA;
}
else
{
doThingB;
}
else juga dapat mendahului lain if tes, sehingga bisa lebih dari satu, tes saling
eksklusif dapat dijalankan pada waktu yang sama. Hal ini bahkan dimungkinkan
untuk memiliki jumlah yang tidak terbatas dari cabang tersebut. Ingat juga, hanya
satu set pernyataan akan dijalankan tergantung pada tes kondisi:
if (inputPin < 500)
{
doThingA;
}
else if (inputPin >= 1000)
{
doThingB;
}
else
{
doThingC;
}
Note: Sebuah pernyataan if hanya menguji apakah kondisi di dalam kurung adalah benar atau salah. Pernyataan
ini bisa menjadi pernyataan C berlaku seperti dalam contoh pertama, jika (inputPin == HIGH). Dalam contoh ini,
jika pernyataan hanya memeriksa untuk melihat apakah memang input yang ditetapkan bernilai HIGH, atau +5 v
C. for
pernyataan for digunakan untuk mengulang blok pernyataan diapit oleh kurung
kurawal sejumlah tertentu kali. Counter increment sering digunakan untuk kenaikan
dan mengakhiri loop. Ada tiga bagian, dipisahkan dengan titik koma (;), untuk for
loop header:
P a g e | 24
for (initialization; condition; expression)
{
doSomething;
}
Inisialisasi variabel lokal, atau counter kenaikan, terjadi pertama dan hanya sekali.
Setiap kali melalui loop, kondisi berikut diuji. Jika kondisi tetap benar, pernyataan
dan ekspresi berikut dijalankan dan kondisi diuji lagi. Ketika kondisi menjadi salah,
loop berakhir.
Contoh berikut mulai i bilangan bulat pada 0, tes untuk melihat apakah saya masih
kurang dari 20 dan jika benar, kenaikan i oleh 1 dan mengeksekusi pernyataan yang
didalam kurung kurawal:
for (int i=0; i<20; i++)
// declares i, tests if less
{
// than 20, increments i by 1
digitalWrite(13, HIGH); // turns pin 13 on
delay(250);
// pauses for 1/4 second
digitalWrite(13, LOW); // turns pin 13 off
delay(250);
// pauses for 1/4 second
}
Note: bahasa C untuk loop jauh lebih fleksibel daripada loop ditemukan dalam beberapa bahasa komputer
lainnya, termasuk BASIC. Salah satu atau semua dari tiga elemen header yang dapat diabaikan, meskipun titik
koma diperlukan. Juga pernyataan untuk inisialisasi, kondisi, dan ekspresi dapat berupa pernyataan bahasa C
berlaku dengan variabel terkait. Jenis yang tidak biasa untuk laporan dapat memberikan solusi untuk beberapa
masalah pemrograman.
D. while
while loops akan dieksekusi terus menerus, dan tak terbatas, sampai ekspresi dalam
kurung menjadi false. Sesuatu harus mengubah variabel diuji, atau loop while tidak
akan pernah keluar. Hal ini bisa dalam kode Anda, seperti variabel bertambah, atau
kondisi eksternal, seperti pengujian sensor.
while (someVariable ?? value)
{
doSomething;
}
P a g e | 25
Contoh berikut tes apakah 'someVariable' kurang dari 200 dan jika benar
mengeksekusi pernyataan di dalam kurung dan akan terus looping sampai
'someVariable' tidak lagi kurang dari 200.
while (someVariable < 200) // tests if less than 200
{
doSomething;
// executes enclosed statements
someVariable++;
// increments variable by 1
}
E. do… while
do loop adalah didorong loop bawah yang bekerja dalam cara yang sama seperti loop
while, dengan pengecualian bahwa kondisi ini diuji pada akhir loop, sehingga do
loop akan selalu berjalan setidaknya sekali.
do
{
doSomething;
} while (someVariable ?? value);
Contoh berikut memberikan readSensors () untuk variabel 'x', jeda selama 50
milidetik, kemudian loop tanpa batas waktu sampai 'x' tidak lagi kurang dari 100:
do
{
x = readSensors(); // assigns the value of
// readSensors() to x
delay (50);
// pauses 50 milliseconds
} while (x < 100); // loops if x is less than 100
P a g e | 26
2.2 Teori Dasar Elektronika
2.2.1
Hukum Ohm
Hukum Ohm adalah suatu pernyataan bahwa besar arus listrik yang mengalir melalui
sebuah penghantar selalu
kepadanya.Sebuah
benda
berbanding
lurus
penghantar
denganbeda
dikatakan
mematuhi
potensial yang
hukum
diterapkan
Ohm
apabila
nilai resistansinyatidak bergantung terhadap besar dan polaritas beda potensial yang dikenakan
kepadanya. Walaupun pernyataan ini tidak selalu berlaku untuk semua jenis penghantar, namun
istilah "hukum" tetap digunakan dengan alasan sejarah. Secara matematis hukum Ohm
diekspresikan dengan persamaan:
Dimana :

adalah arus listrik yang mengalir pada suatu penghantar dalam satuan Ampere.

adalah tegangan listrik yang terdapat pada kedua ujung penghantar dalam satuan volt.

adalah nilai hambatan listrik (resistansi) yang terdapat pada suatu penghantar dalam
satuan ohm.
Gambar 2.19
Diagram hukum Ohm
P a g e | 27
Hukum ini dicetuskan oleh George Simon Ohm, seorang fisikawan dari Jerman pada
tahun 1825 dan dipublikasikan pada sebuah paper yang berjudul The Galvanic Circuit
Investigated Mathematically pada tahun 1827.
2.2.2
Hukum Arus Kirchhoff
Hukum ini juga disebut Hukum I Kirchhoff, Hukum titik Kirchhoff, Hukum percabangan
Kirchhoff,
atau
KCL
(Kirchhoff's
Current
Law).
Prinsip
dari
kekekalan muatan
listrik mengatakan bahwa:
Pada setiap titik percabangan dalam sirkuit listrik, jumlah dari arus yang masuk kedalam titik
itu sama dengan jumlah arus yang keluar dari titik tersebut.
atau
Jumlah total arus pada sebuah titik adalah nol.
Mengingat bahwa arus adalah besaran bertanda (positif atau negatif) yang menunjukan arah arus
tersebut menuju atau keluar dari titik, maka prinsip ini bisa dirumuskan menjadi :
=0
n adalah jumlah cabang dengan arus yang masuk atau keluar terhadap titik tersebut.
Hukum ini berdasar pada kekekalan muatan, dengan muatan (dalam satuan coulomb) adalah
hasil kali dari arus (ampere) dan waktu (detik).
P a g e | 28
2.2.3
Hukum Tegangan Kirchhoff
Hukum ini juga disebut sebagai Hukum kedua kirchhoff, Hukum loop (putaran)
Kirchhoff, dan KVL (Kirchhoff's Voltage Law). Prinsip kekekalan energi mengatakan bahwa :
Jumlah terarah (melihat orientasi tanda positif dan negatif) dari
beda potensial listrik (tegangan) di sekitar sirkuit tertutup sama dengan nol.
atau
secara lebih sederhana, jumlah dari emf dalam lingkaran tertutup ekivalen dengan
jumlah turunnya potensial pada lingkaran itu.
atau
Jumlah hasil kali resistansi konduktor dan arus pada konduktor dalam
lingkaran tertutup sama dengan total emf yang ada dalam lingkaran (loop) itu.
Mirip dengan hukum pertama Kirchhoff, dapat ditulis sebagai:
=0
Disini, n adalah jumlah tegangan listrik yang diukur.
Hukum ini berdasarkan kekekalan "energi yang diserap atau dikeluarkan medan
potensial" (tidak termasuk energi yang hilang karena disipasi). Diberikan sebuah tegangan listrik,
suatu muatan tidak mendapat atau kehilangan energi setelah berputar dalam satu lingkaran sirkuit
karena telah kembali ke potensial awal.
Hukum ini tetap berlaku walaupun resistansi (yang mengakibatkan disipasi energi) ada
dalam sirkuit. Validitas hukum ini dalam kasus tadi dapat dimengerti dengan menyadari bahwa
muatan tidak kembali ke tempat asalnya karena ada disipasi energi. Pada terminal negatif,
muatan sudah hilang. Artinya energi yang diberikan oleh beda potensial sudah terpakai
seluruhnya oleh resistansi yang mengubah energi tadi menjadi disipasi panas.
P a g e | 29
2.3 Arduino
Untuk memahami Arduino, terlebih dahulu kita harus memahami terlebih dahulu apa
yang dimaksud dengan physical computing. Physical computing adalah membuat sebuah sistem
atau perangkat fisik dengan menggunakan software dan hardware yang sifatnya interaktif yaitu
dapat menerima rangsangan dari lingkungan dan merespon balik. Physical computing adalah
sebuah konsep untuk memahami hubungan yang manusiawi antara lingkungan yang sifat
alaminya adalah analog dengan dunia digital. Pada prakteknya konsep ini diaplikasikan dalam
desain-desain alat atau projek-projek yang menggunakan sensor dan microcontroller untuk
menerjemahkan input analog ke dalam sistem software untuk mengontrol gerakan alat-alat
elektro-mekanik seperti lampu, motor dan sebagainya.
Pembuatan prototype atau prototyping adalah kegiatan yang sangat penting di dalam
proses physical computing karena pada tahap inilah seorang perancang melakukan eksperimen
dan uji coba dari berbagai jenis komponen, ukuran, parameter, program komputer dan
sebagainya berulang-ulang kali sampai diperoleh kombinasi yang paling tepat. Dalam hal ini
perhitungan angka-angka dan rumus yang akurat bukanlah satu-satunya faktor yang menjadi
kunci sukses di dalam mendesain sebuah alat karena ada banyak faktor eksternal yang turut
berperan, sehingga proses mencoba dan menemukan/mengoreksi kesalahan perlu melibatkan halhal yang sifatnya non-eksakta. Prototyping adalah gabungan antara akurasi perhitungan dan seni.
Proses prototyping bisa menjadi sebuah kegiatan yang menyenangkan atau menyebalkan,
itu tergantung bagaimana kita melakukannya. Misalnya jika untuk mengganti sebuah komponen,
merubah ukurannya atau merombak kerja sebuah prototype dibutuhkan usaha yang besar dan
waktu yang lama, mungkin prototyping akan sangat melelahkan karena pekerjaan ini dapat
dilakukan berulang-ulang sampai puluhan kali – bayangkan betapa frustasinya perancang yang
harus melakukan itu. Idealnya sebuah prototype adalah sebuah sistem yang fleksibel dimana
perancang bisa dengan mudah dan cepat melakukan perubahan-perubahan dan mencobanya lagi
sehingga tenaga dan waktu tidak menjadi kendala berarti. Dengan demikian harus ada sebuah
alat pengembangan yang membuat proses prototyping menjadi mudah.
Pada masa lalu (dan masih terjadi hingga hari ini) bekerja dengan hardware berarti
membuat rangkaian menggunakan berbagai komponen elektronik seperti resistor, kapasitor,
transistor dan sebagainya. Setiap komponen disambungkan secara fisik dengan kabel atau jalur
tembaga yang disebut dengan istilah “hard wired” sehingga untuk merubah rangkaian maka
P a g e | 30
sambungansambungan itu harus diputuskan dan disambung kembali. Dengan hadirnya teknologi
digital dan microprocessor fungsi yang sebelumnya dilakukan dengan hired wired digantikan
dengan program-program software. Ini adalah sebuah revolusi di dalam proses prototyping.
Software lebih mudah diubah dibandingkan hardware, dengan beberapa penekanan tombol kita
dapat merubah logika alat secara radikal dan mencoba versi ke-dua, ke-tiga dan seterusnya
dengan cepat tanpa harus mengubah pengkabelan dari rangkaian.
Secara umum Arduino terdiri dari dua bagian, yaitu:
1. Hardware  papan input/output (I/O)
2. Software  Software Arduino meliputi IDE untuk menulis program, driver untuk koneksi
dengan komputer, contoh program dan library untuk pengembangan program.
2.3.1
Jenis-jenis Arduino
1. Arduino USB
Gambar 2.20
Arduino Uno
Menggunakan USB sebagai antar muka pemrograman atau komunikasi komputer.
Contoh:
 Arduino Uno
 Arduino Duemilanove
 Arduino Diecimila
 Arduino NG Rev. C
 Arduino NG (Nuova Generazione)
 Arduino Extreme dan Arduino Extreme v2
 Arduino USB dan Arduino USB v2.0
P a g e | 31
2. Arduino Serial
Menggunakan RS232 sebagai antar muka pemrograman atau komunikasi komputer.
Gambar 2.21
Arduino Serial
Contoh: Arduino Serial dan Arduino Serial v2.0
3. Arduino Mega
Gambar 2.22
Arduino Mega
Papan Arduino dengan spesifikasi yang lebih tinggi, dilengkapi tambahan pin digital, pin
analog,
port serial dan sebagainya. Contoh:

Arduino Mega

Arduino Mega 2560
P a g e | 32
4. Arduino Fio
Ditujukan untuk penggunaan nirkabel.
Gambar 2.23
Arduino Fio
5. Arduino Lilypad
Papan dengan bentuk yang melingkar. Contoh: LilyPad Arduino 00, LilyPad Arduino 01,
LilyPad Arduino 02, LilyPad Arduino 03, LilyPad Arduino 04
Gambar 2.24
Arduino Lilypad
P a g e | 33
6. Arduino BT
Mengandung Bluetooth untuk komunikasi nirkabel
Gambar 2.25
Arduino BT
7. Arduino Nano dan Arduino Mini
Gambar 2.26
Arduino Nano
Papan berbentuk kompak dan digunakan bersama breadboard. Contoh:

Arduino Nano 3.0, Arduino Nano 2.x

Arduino Mini 04, Arduino Mini 03, Arduino Stamp 02
P a g e | 34
2.3.2
Arduino Controller
Komponen utama di dalam papan Arduino adalah sebuah microcontroller 8 bit dengan merk
ATmega yang dibuat oleh perusahaan Atmel Corporation. Berbagai papan Arduino menggunakan tipe
ATmega yang berbeda-beda tergantung dari spesifikasinya, sebagai contoh Arduino Uno menggunakan
ATmega328 sedangkan Arduino Mega 2560 yang lebih canggih menggunakan ATmega2560.
Untuk memberikan gambaran mengenai apa saja yang terdapat di dalam sebuah microcontroller,
pada gambar berikut ini diperlihatkan contoh diagram blok sederhana dari microcontroller ATmega328
(dipakai pada Arduino Uno).
Gambar 2.27
Blok diagram atmega328
P a g e | 35
Blok-blok di atas dijelaskan sebagai berikut:

Universal Asynchronous Receiver/Transmitter (UART) adalah antar muka yang
digunakan untuk komunikasi serial seperti pada RS-232, RS-422 dan RS-485.

2KB RAM pada memory kerja bersifat volatile (hilang saat daya dimatikan), digunakan
oleh variable-variabel di dalam program.

32KB RAM flash memory bersifat non-volatile, digunakan untuk menyimpan program
yang dimuat dari komputer. Selain program, flash memory juga menyimpan bootloader.
Bootloader adalah program inisiasi yang ukurannya kecil, dijalankan oleh CPU saat daya
dihidupkan. Setelah bootloader selesai dijalankan, berikutnya program di dalam RAM
akan dieksekusi.

1KB EEPROM bersifat non-volatile, digunakan untuk menyimpan data yang tidak boleh
hilang saat daya dimatikan. Tidak digunakan pada papan Arduino.

Central Processing Unit (CPU), bagian dari microcontroller untuk menjalankan setiap
instruksi dari program.

Port input/output, pin-pin untuk menerima data (input) digital atau analog, dan
mengeluarkan data (output) digital atau analog.
2.4 UBEC
UBEC " Universal Battery Elimination Circuit" adalah sebuah sirkuit elektronik eksternal
yang berperan sebagai keran daya dari baterai Anda dan mengatur tegangan ke yang diperlukan 5
atau 6 volt. Maksimum tegangan input akan bervariasi sesuai dengan spesifikasi UBEC.
Beberapa dapat menangani tegangan yang lebih tinggi daripada yang lain. Pilihan pengaturan
tegangan output biasanya diatur pengguna.
UBEC diperlukan dalam beberapa aplikasi di mana arus yang lebih tinggi diperlukan,
Jika Anda menggunakan 3 sampai 4 servo, servo digital, servo ukuran standar, 4 lipo sel atau
lebih besar, Anda perlu menggunakan Sirkuit UBEC . UBEC "" Universal Battery Elimination
Circuit " Ini UBEC 3 amp adalah ‘switch mode’ DC regulator yang mengambil tegangan tinggi
(hingga 28 volt) dari baterai utama dan mengkonversinya menjadi tegangan konsisten dan aman
5 atau 6 volt (diatur menggunakan saklar) untuk servo. UBEC diperlukan jika Electronic Speed
P a g e | 36
Control (ESC) yang digunakan untuk motor tidak memiliki built in Battery Elimination Circuit
(BEC), atau jika BEC dari ESC tidak memadai untuk daya jumlah dan / atau ukuran servos yang
digunakan.
Menggunakan UBEC 3A adalah cara yang aman karena alasan berikut:
o
Kebanyakan built-in sirkuit BEC adalah 1 sampai 2 amp ‘linear mode‘ sirkuit yang
hanya berguna untuk 2 atau mungkin 3 standar servos ukuran ketika menggunakan 3 sel
baterai Lipo. Jika Anda menggunakan servo lebih, atau tegangan baterai pack yang
lebih tinggi, Anda akan hampir pasti membebani BEC, menyebabkan alat menjadi
crash.
o
Dalam ESC dengan panas yang berlebihan built-in BEC, dihasilkan di ESC dengan
menarik arus dari motor dan / atau BEC dapat menyebabkan kerugian total daya ke
servos, sehingga robot mengalami kegagalan daya.
Gambar 2.28
UBEC 3A
Download