Modul 0 - Pengenalan Arduino - 160125
Modul 0 - Pengenalan Arduino - 160125
Pengenalan Arduino
1 Tujuan Praktikum
Pada praktikum ini anda diminta untuk dapat menguasai beberapa kompetensi khusus yang
berhubungan dengan mikroprosesor berbasis Arduino. Beberapa kompetensi khusus tersebut antara
lain,
Mampu memakai Monitor untuk mengamati jalannya program arduino, untuk kemudian
membetulkan jika ada kesalahan.
Inti dari sistem ini adalah mikroprosesor ATMega328, yang dilengkapi dengan beberapa blok
tambahan. Blok-blok inti adalah:
1. Digital Output.
2. Digital Input.
3. Analog Input, untuk menerima masukan sinyal yang harganya antara 0 5 Volt, dan
akan dikonversi menjadi angka 0 1023 (10 bit).
4. I2C pada pin A4 dan A5, bisa digunakan untuk komunikasi antar Arduino.
Melalui konektor USB. Dengan jalan ini Arduino dan seluruh piranti yang terhubung
akan mengambil daya dari komputer. Dianjurkan agar arus total yang diambil tidak lebih
dari 500mA. Jika berlebih, maka port USB di komputer anda bisa rusak !
Melalui konektor Jack-DC pada Arduino, dengan tegangan masukan 7-12 Volt, yang
akan diregulasi menjadi 5V. Jika tegangan kurang dari 6 Volt, maka jalannya prosesor
akan tidak normal dan bisa jadi Arduino akan mengambil daya dari USB. Sebaliknya
jika tegangan berlebih, maka keping regulator akan cepat panas. Sementara itu kapasitas
arus regulator hanyalah 800 mA. Jika arus yang diambil berlebih, regulator bisa rusak.
Pin daya Vin. Sama seperti melalui Jack-DC, hanya lewat pin.
Pin daya 5V. Untuk memberi daya external langsung ke prosesor Arduino tanpa melalui
regulator. Oleh karena itu pastikan bahwa listrik melalui jalur ini sudah teregulasi 5V
dengan baik.
Dengan demikian, Arduino sangat fleksibel dalam menerima daya listrik. Namun konsekuensinya,
berhati-hatilah dalam mengkoneksikan Arduino ke daya listrik, sesuaikan dengan daya yang dipakai
seluruh piranti.
Arduino Duemilanove : tipe paling tua, memakai prosesor 8 bit ATMega 328 dan chip FTDI
untuk komunikasi ke komputer.
Arduino Nano: sama seperti Duemilanove, namun dengan bentuk yang lebih kecil.
Ada sebuah editor utama dimana kita bisa menulis program dalam bahasa Arduino. Di bawahnya
ada jendela hitam yang akan menampilkan pesan-pesan saat proses kompilasi maupun upload. Di
bagian atas ada baris tombol-tombol menu. Dua yang penting adalah tombol save dan upload.
Paling atas ada baris menu guna mengaktifkan berbagai fitur layanan dari File hingga Help. Untuk
belajar, ada dua menu yang berguna yaitu:
Menu Help > Reference : menampilkan referensi bahasa Arduino pada suatu web browser.
Selama belajar ini, sangat dianjurkan untuk membuka referensi ini saat anda bertemu
berbagai perintah-perintah baru.
Dalam menulis program, arduino memakai bahasa C++ yang telah disederhanakan dan disesuaikan
untuk mikroprosesor. Dalam bahasa C atau C++, program selalu memiliki satu fungsi utama yakni
main(). Demi mempermudah pemrograman mikroprosesor, bahasa arduino menetapkan adanya dua
subrutin utama yaitu loop() dan setup() seperti kode dasar di bawah ini.
// Deklarasi Konstanta
void setup(){
// Perintah (inisialisasi)
}
void loop(){
// Perintah (jalan terus secara berulang)
}
Diagram alir Gambar 4 memperlihatkan bagaimana kedua subrutin utama tersebut akan dijalankan.
Begitu mikroprosesor dihidupkan, maka setup() akan berjalan sekali saja. Setelah itu loop() akan
berjalan secara berulang hingga mikroprosesor di matikan, di-reset atau di-program ulang.
Setelah kode program selesai ditulis maka kode sumber arduino harus disimpan menjadi file dengan
extensi ino. Langkah selanjutnya, kode sumber harus dikompilasi menjadi kode biner. Dalam
kompilasi ini, kode sumber mungkin mengandung kesalahan tulis (syntax error). Arduino akan
menampilkan kesalahan tersebut pada kotak pesan (di bagian bawah). Baca baik-baik pesan
tersebut, lalu benarkan kode sumber, dan kompilasi kembali sampai sukses.
Setelah kompilasi selesai, maka kode biner dapat di-upload ke mikroprosesor dengan prosedur:
Arduino sudah harus terkoneksi ke komputer melalui jalur USB, dan nampak bahwa lampu
indikator dayanya menyala.
Pada Arduino IDE, pilih jalur komunikasi serial antara komputer dengan mikroprosesor dari
menu Tools > Serial Port. Di sistem operasi Linux, port serial yang digunakan adalah
Pada Arduino IDE, pilih jenis perangkat keras Arduino yang sesuai melalui menu Tools >
Boards. Pilih sesuai board yang anda gunakan, Arduino Uno atau Arduino Duemilanove.
Setelah ketiga hal tersebut siap, maka tinggal klik tombol upload. Tunggu sejenak hingga
pada kotak pesan muncul pesan bahwa proses upload sudah selesai (done). Sekecap
kemudian, program akan mulai dijalankan di perangkat keras arduino.
1. Koneksikan piranti ke Arduino hanya ketika sistem sedang mati (tak ada catu dayanya).
2. Ketika akan memberi catu daya, perhatikan betul bahwa koneksi sudah benar dan tak ada
yang konslet.
4 Tugas Awal
Tugas awal harap dikerjakan di rumah, satu tiap regu, ditulis tangan pada kertas A4. Asisten akan
memeriksanya sebelum praktikum dimulai. Tugas awal ini PENTING untuk pelaksanaan
praktikum. Karena itu jika tugas awal tidak layak, asisten berhak menolak regu anda melakukan
praktikum. Untuk praktikum pertama ini, lakukan:
3. Masih dari arduino reference, lihat bahwa ada 5 kelompok operator (arithmetic, comparison,
boolean, bitwise dan compound). Pelajari lagi semuanya. Untuk tugas awal jelaskan tentang
perbedaan operator boolean dan bitwise berikut (beri contoh):
! dan ~
&& dan &
|| dan |
4. Pada praktikum nanti kita akan bekerja dengan LED yang nyalanya cukup silau. Siapkan
tutup LED dengan alas sekitar 3x3 cm2 dengan bentuk yang kreatif, atau selembar kertas
dengan gambar pemandangan (kita akan membuat program matahari terbit).
1. Kit LED
2. Kit Keypad
3. Kit Motor DC
4. Kit Logic
Pada praktikum kali ini, kita akan memakai kit utama dan kit LED seperti Gambar 6. Arduino
terpasang di bagian bawah kit utama, tidak terlihat pada Gambar. Jika pada kit utama dipakai
arduino duemilanove, uno atau nano, maka prosedur mengkoneksikan adalah:
1. Jika sistem sedang hidup, maka cabut dulu catu daya, setelah itu USB.
2. Pastikan sistem sudah mati dengan melihat apakah LED Arduino masih menyala.
3. Sambung kit pelengkap ke kit utama dengan kabel IDC-10, sesuai peruntukannya.
5. Pasang kabel catu daya 12V ke kit utama (Jangan ke jack DC Arduino !).
Jika langkah 2 dilanggar, ada kemungkinan Arduino akan rusak saat disambung ke kit
pelengkap karena hubung singkat yang menimbulkan spike listrik.
Jika langkah 3 dan 4 terbalik, biasanya komunikasi Arduino ke komputer akan error,
terutama saat memakai Arduino nano.
Sementara itu galileo perlu langkah berbeda, sebab membutuhkan arus lebih dari 500mA sehingga
tak akan kuat jika hanya dicatu oleh USB. Prosedurnya adalah:
1. Jika sistem sedang hidup, maka cabut dulu USB baru catu daya eksternal.
2. Pastikan sistem sudah mati dengan melihat apakah LED Galileo masih menyala.
Jika langkah 2 dilanggar, Galileo bisa rusak saat disambung ke kit pelengkap !!!
Jika langkah 1 terbalik (cabut catu daya dulu), atau jika langkah 4 dan 5 terbalik (pasang
USB dulu), maka USB komputer akan overload dan bisa rusak.
void setup(){
Serial.begin(9600); // mulai komunikasi USB dengan baud=9600
Serial.println("Hello computer"); // kirim via USB
}
Program ini menunjukkan contoh penggunaan setup(), yaitu subrutin yang akan dijalankan satu kali
diawal program. Program ini juga menunjukkan pemakaian pustaka Serial untuk mengirim data dari
arduino ke komputer melalui USB. Seperti dijelaskan pada Pengantar, arduino memiliki fasilitas
USB yang bisa dipakai untuk meng-upload program sekaligus untuk komunikasi ketika program
sudah berjalan. Hal ini sangat praktis dibanding dengan sistem mikroprosesor jaman sebelumnya,
Setelah selesai diketik, simpan dulu program yang sudah diketik tadi dengan menekan tombol
Save. Kemudian tekan tombol upload untuk mengkompilasi dan langsung mengupload program.
Begitu terdengar nada beep (tanda program sudah selesai di-upload), segera tekan icon Serial
Monitor pada perangkat lunak Arduino sehingga muncul jendela monitor. Atur baud Rate sehingga
sama dengan diprogram (bisa antara 1200, 2400, , 115200). Setelah itu coba tutup serial monitor,
lalu buka lagi. Arduino akan jalan lagi dari awal dan mestinya pada jendela tersebut akan
menampilkan kalimat "Hello computer". Arduino juga akan jalan ulang (reboot) jika ditekan
tombol reset. Tombol itu selalu tersedia pada setiap arduino, demikian pula pada kit utama.
Upload program tersebut, dan jalankan serial monitor. Amati keluaran program sekarang,
bandingkan dengan sebelumnya, dan pahami tiga hal baru yang ditunjukkan contoh ini:
Cobalah ubah nilai delay menjadi 1000, lalu jalankan kembali Apa yang terjadi ?
// konstanta
#define LED1 8
#define DELAY 1000
void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
}
void loop()
{
Serial.println(HIGH);
digitalWrite(LED1, HIGH);
delay(DELAY);
Serial.println(LOW);
Gambar 7. Rangkaian LED digitalWrite(LED1, LOW);
delay(DELAY);
}
Kode 3. Program keluaran digital
Tulislah programnya pada Arduino IDE, lalu jalankan. Amati nyala LED, dan coba pahami bahwa:
Pada awal program ada baris #define untuk mebuat konstanta. Hal ini demi memperjelas
penulisan program, dan akan mudah jika kelak harus mengubah koneksi perangkat keras.
Pada bagian setup, mula-mula perangkat keras disiapkan dengan perintah pinMode().
Setelah selesai diketik, upload program ke Arduino. Amati peristiwa yang terjadi pada LED0, dan
coba pahami program yang baru saja dibuat.
Tugas 1 :
Buatlah program sehingga ke-empat LED menyala bergantian dengan selang waktu 250 ms
sehingga nampak berjalan. Isi program kira-kira seperti ini, lengkapi lalu jalankan !
Serial.println("LED-2 Nyala");
digitalWrite(LED1+1,HIGH);
delay(DELAY);
digitalWrite(LED1+1,LOW);
// konstanta
#define LED1 8
#define BUTTON1 4
void setup(){
Serial.begin(9600);
pinMode(LED1,OUTPUT);
pinMode(BUTTON1,INPUT);
}
void loop(){
boolean s1 = digitalRead(BUTTON1);
digitalWrite(LED1,s1);
Serial.println(s1);
delay(1000);
Gambar 8. Rangkaian tombol }
Kode 5. Dasar masukan digital
Pada kode 5, terlihat program agar LED1 menyala jika tombol S1 ditekan. Pada setup(), seluruh pin
harus di-set dulu modenya sebagai INPUT atau OUTPUT. Lalu pada loop(), digunakan perintah
digitalRead() untuk membaca kondisi tombol, yang hasilnya disimpan ke variabel s1. Perhatikan
Selanjutnya variabel s1 ini dipakai untuk menyalakan LED melalui perintah digitalWrite().
Tugas 2.
Cobalah program 5 tersebut. Setelah sukses dan paham, coba kembangkan agar tombol S2
dapat menyala/matikan LED-2.
5.6 Operator
Pada perangkat keras, S1 terpasang secara pull-down sementara S2 secara pull-up. Karena itulah
hasil bacaan digitalnya akan selalu terbalik. Agar LED2 menyala saat S2 ditekan, maka variabel s2
harus diolah dulu, misalnya demikian:
boolean s2 = digitalRead(BUTTON2);
boolean d2 = !s2; // negasikan s2 pakai operator boolean
digitalWrite(LED2, d2);
Pengolahan lebih kompleks bisa dilakukan dengan mengkombinasikan berbagai operator yang
sudah disediakan bahasa C.
Tugas 3:
Pada tugas awal anda sudah mempelajari operator boolean not (!), and (&&) dan or (||).
Dengan memakai operator tersebut, buatlah program untuk mengatur nyala LED1 hingga
LED4 sesuai penekanan tombol S1 dan S2 seperti tabel berikut:
1. Apa variabel yang berubah (contoh pada tugas 1, variabel nomor pin).
Bila hal-hal tersebut telah ditentukan, maka kita bisa menulis program lebih ringkas sebagai berikut:
// konstanta
#define LED1 8
#define LED4 11
#define DELAY 1000
2. Bagian pemeriksaan biasanya memakai operator komparison (==, !=, <, >, <=, >=)
dikombinasikan dengan operator boolean (&&, ||, !). Kesalahan kecil yang fatal di sini
adalah salah menulis operator (==) menjadi operator (=).
3. Pengubahan memakai operator inkremen (i++). Hal ini sama saja dengan menulis i=(i+1),
namun lebih singkat dan efisien.
Tugas 4:
Modifikasilah kode 7 sehingga LED menyala dari LED4 ke LED1 (terbalik arah dari contoh
kode 7) dengan metode pengulangan for, dan operator dekremen () untuk pengubahannya.
5.8 Pencabangan
Kini kita akan membuat program LED berjalan yang bisa berbalik arah jika tombol s1 ditekan. Pada
masalah ini, program punya dua kemungkinan operasi dan harus memilih salah satu berdasar satu
kondisi tertentu. Untuk itu, bahasa pemrograman menyediakan fitur pencabangan. Ada dua bentuk
dasar pencabangan yaitu IF dan IFELSE. Berikut ini kerangka program lampu berjalan dengan
konstruksi if - else.
// konstanta
............
void setup(){ . . .}
boolean s1;
void loop(){
s1 = digitalRead(BUTTON1);
Tugas 5:
Lengkapi kerangka Kode 8 (dengan memasukkan potongan dari kode 7 dan tugas 4). Setelah
diupload dan berjalan, coba tekan tombol S1, tahan beberapa saat, lalu lepas kembali.
5.9 Pemilihan
Pemilihan adalah fitur yang mirip dengan pencabangan, namun kondisi pemilihannya bisa banyak.
Dalam bahasa arduino, perintah yang tersedia adalah switch-case yang mampu melakukan
pemilihan berdasar suatu variabel bilangan bulat (byte, int, dll). Sebagai contoh, misal kita ingin
menyalakan LED sesuai dengan Tabel pada tugas 3. Ini bagian loop-nya.
void loop () {
boolean s1 = digitalRead(BUTTON1);
boolean s2 = digitalRead(BUTTON2);
Sebagai contoh, kali ini kita akan memakai sebuah LED RGB (Red Green Blue) yang sudah
tersedia pada kit dengan rangkaian seperti pada Gambar 9. Nampak bahwa LED ini memiliki
common anode yang terhubung ke VCC, sementara masing-masing katoda-nya terhubung ke pin
arduino (D3, D5, D6) melalui resistor. Ketiga pin tersebut mampu mengeluarkan analog output
berupa PWM (pulse width modulation). Kode sumber program untuk menyalakan LED RGB
tersebut menyala mati dengan warna ungu (merah + biru) adalah sebagai berikut:
#define PIN_R 3
#define PIN_G 5
#define PIN_B 6
loop() {
analogWrite(PIN_R, 128); // nyala 1/2
analogWrite(PIN_G, 255); // padam
analogWrite(PIN_B, 128); // nyala 1/2
delay(1000);
analogWrite(PIN_R, 255); // padam
analogWrite(PIN_G, 255); // padam
analogWrite(PIN_B, 255); // padam
Gambar 9. Rangkaian LED delay(500);
RGB }
Kode 11. Blink ungu
Silahkan ketik dan jalankan program tersebut. Oh ya, jangan lupa pasang dulu tutup LED RGB
yang sudah anda siapkan pada tugas awal !
Setelah puas takjubnya, mari kita pahami programnya. Perhatikan bahwa fungsi analogWrite()
membuat suatu pin mengeluarkan sinyal PWM dengan duty-cycle tertentu. Bentuk sinyal luaran
PWM terhadap waktu nampak pada Gambar 10. Pada arduino, periode gelombang kotaknya (Tp)
sekitar 2,128 mili detik. Sementara itu duty-cycle (Td) bisa diatur dari harga 0 255 sesuai yang
diminta saat memanggil analogWrite.
Namun harus diperhatikan bahwa LED RGB pada kit ini memakai common anoda, sehingga LED
akan menyala ketika pin arduino sedang LOW, bukannnya sedang HIGH. Dengan demikian LED
akan menyala penuh ketika D=0, menyala setengah terang ketika D=128, dan padam ketika D=255.
Karena itulah pada program kita menyalakan LED dengan memanggil:
Sementara itu dari ilmu pencahayaan, warna RGB adalah warna elementer. Kita bisa membuat
warna lain dengan mengkombinasikan ketiga elemen RGB-nya, seperti beberapa contoh pada tabel
berikut (dalam hal ini 255=nyala penuh, 0 = padam).
Warna R G B
merah 255 0 0
kuning 128 128 0
hijau 0 255 0
cyan 0 128 128
biru 0 0 255
ungu 128 0 128
putih 85 85 85
Putih terang sekali 255 255 255
Perhatikan bahwa dalam hal ini jumlah dari ketiga elemen diusahakan selalu 255, agar total
intensitasnya tetap. Kalau mau terang sekali, boleh saja semua dinyalakan penuh. Namun seperti
telah anda baca pada tugas awal, harus ingat bahwa :
Dalam hal ini setiap led menarik arus sekitar 15 mA. Kalau ketiga RGB menyala bersamaan, masih
aman selama tidak ada I/O lain yang menyala.
Kembali ke kode 11, lihat bahwa setiap kali menyalakan led RGB kita harus memanggil
AnalogWrite() 3 kali. Kita bisa menyingkat hal ini dengan membuat subrutin, sehingga di-loop
tinggal dipakai berulang kali dengan lebih mudah seperti contoh berikut:
// sub rutin menulis LED RGB dengan masukan r,g,b antara 0-255
// pwm dibalik sebagai 255-r, untuk kompensasi common anoda
void rgbWrite(byte r, byte g, byte b) {
analogWrite(PIN_R, 255-r);
.........................;
.........................;
}
loop() {
rgbWrite(128,0,128); // panggil subrutin, nyalakan ungu
delay(500);
rgbWrite(0,0,0); // padamkan
...
}
Kode 12. Memakai subrutin untuk menyalakan led RGB
Tugas 7: Lengkapi program pada kode 12 agar LED bisa berkedip merah, hijau, biru.
5.11 Array
Dalam pemrograman seringkali kita memiliki banyak data sejenis (tipenya sama), dan ingin diakses
secara berurut. Untuk itu bahasa C menyediakan array, yaitu variabel banyak item yang masing-
masing item-nya bisa diakses memakai indeks. Sebagai contoh, tiga elemen RGB bisa disimpan
sebagai berikut:
// pesan dan inisialisasi variabel, tanpa array
byte r1 = 128;
byte g1 = 0;
byte b1 = 128;
Lebih jauh lagi, array bisa multi-dimensi. Program berikut memberi contoh bagaimana kita bisa
membuat tabel warna dengan array 2 dimensi. Efeknya antara lain, subrutin writeRGB maupun
loop bisa dibuat lebih singkat.
void setup() {
}
void loop(){
// banyaknya warna bisa dihitung dengan fungsi sizeof
int n = sizeof(tabel_warna) / (3 * sizeof(byte));
Alhamdulillah .. sampai di sini, selamat. Kita sudah mengulang pelajaran PTI satu semester
dalam satu kali praktikum. Boleh berhenti kalau merasa sudah cukup. Kalau masih semangat, ayo
teruskan.
Data dan Direct port manipulation. Cara hacker memrogram port arduino, rahasia kakak-
kakak anda yang jago robotik dan ikut berbagai kompetisi.
Pemrograman berorientasi obyek, akan berguna untuk membuat program arduino yang
kompleks. Konsep dasarnya juga bisa mengantar anda belajar lebih jauh memrogram
aplikasi di desktop pakai Java atau C++, maupun memrogram Android.
.......
// parameter benchmark
#define AWAL 1
#define OPERATOR +
#define DATA 2
#define ULANG 25000
void setup() {
long lama;
Serial.begin(115200);
Serial.print("Arduino benchmark ");
Serial.println(ULANG);
Serial.println("Tipe \tUkuran \tHasil \tLama");
// benchmark data2
lama=micros();
data2 = AWAL;
for (int i=0; i<ULANG; i++) {
data2=data2 OPERATOR DATA;
}
lama=micros()-lama;
print("word", sizeof(data2), data2, lama);
// benchmark data3
lama=micros();
data3 = AWAL;
for (int i=0; i<ULANG; i++) {
data3=data3 OPERATOR DATA;
}
lama=micros()-lama;
print("int", sizeof(data3), data3, lama);
// benchmark data4
lama=micros();
data4 = float(AWAL);
for (int i=0; i<ULANG; i++) {
data4=data4 OPERATOR float(DATA);
}
lama=micros()-lama;
print("float", sizeof(data4), long(data4), lama);
}
void loop() {}
Kode 14. Benchmark tipe data
Coba jalankan, simak ukuran data, hasil, dan juga lama prosesnya. Coba lagi sambil mengganti
parameter benchmark, misalnya:
#define AWAL 1
#define OPERATOR -
#define DATA 1
#define ULANG 20000
Dari pengamatan tersebut, coba simpulkan kelebihan dan kekurangan masing-masing tipe data.
Tidak portabel, karena berbeda sesuai tipe prosesor. Misalnya kode untuk Uno, akan berbeda
dengan Mega maupun Galileo.
Kita akan coba teknik ini untuk membuat lampu berjalan pada LED1 hingga LED4. Keempat LED
tersebut terkoneksi ke pin D8 hingga D11. Silahkan lihat Gambar 5, secara hardware pin tersebut
di-mapping ke PORTB, bit 0 hingga 3. Ini dia contoh program pakai DPM ...
void setup() {
// set mode pakai DDRB, tidak lagi pakai pinMode
// Jika bit 0 = input, 1 = output
DDRB = B00001111;
void loop() {
// lampu berjalan, geser ke kanan
PORTB = PORTB >> 1; // operasikan port langsung
// delay saja
delay (1000);
}
Kode 15. Direct Port Manipulation
Lihat, enak sekali menuliskannya dibanding pakai digitalWrite bukan ? Waktu eksekusi juga
sekitar 40 kali lebih cepat. Namun seperti sudah diperingatkan, kode ini tidak akan jalan di Arduino
Mega atau galileo.
5.14 Struct
Selanjutnya dalam pemrograman, seringkali kita punya kumpulan data yang seharusnya merupakan
suatu kesatuan. Misalnya saja data posisi di kordinat kartesian (x,y) atau data mahasiswa (NIM,
nama). Pada kasus kita, data warna rgb juga sebaiknya diakses sebagai suatu kesatuan seperti
contoh berikut:
void loop(){
rgbWrite(kuning); // panggil subrutin pakai struct
...
}
Kode 16. Memakai subrutin dan struct untuk menyalakan led RGB
Latihan 9:
Lengkapi program pada kode 14 agar LED bisa berkedip kuning, cyan, ungu.
6 Tugas Akhir
Gali Language Reference lebih dalam, klik salah satu Arithmetic Operator (misal +). Anda akan
masuk ke halaman reference/Arithmetic.html. Simak baik-baik bagian Programming tips.
Dalam hubungannya dengan tipe data dan operator, jelaskan apa yang dimaksud dengan tip ini:
Know that integer constants default to int, so some constant calculations may overflow
(e.g. 60 * 1000 will yield a negative result).
Know at what point your variable will "roll over"and also what happens in the other
direction e.g. (0 - 1) OR (0 - - 32768).
For math that requires fractions, use float variables, but be aware of their drawbacks:
large size, slow computation speeds.
Tuliskan pendapat anda pada selembar kertas. Kumpulkan ke asisten saat praktikum selesai.
7 Referensi
http://arduino.cc/en/Reference/HomePage
http://arduino.cc/en/Tutorial/HomePage
http://arduino.cc/en/Main/Hardware