Tutorial Arduino #2 0

Agung Dwi Prasetyo | 11.18.00 |



Pengenalan Python 0

Agung Dwi Prasetyo | 07.10.00 | ,


Bahasa pemrograman Python merupakan salah satu bahasa pemrograman yang cukup populer. Namun hanya sedikit orang yang memiliki kemauan untuk mempelajari dan mendalami bahasa Python ini. Kemungkinan di masa mendatang kebutuhan akan programmer-programmer dengan bahasa Python akan semakin dibutuhkan.  Python ini juga dapat menjadi bahasa pemrograman berorientasi objek. Bahkan Python juga mendukung bahasa pemrograman utama dari mini computer Raspberry Pi.

Bagi yang sudah familiar dengan bahasa pemrograman C akan dibandingkan sintaks-sintaksnya dengan bahasa pemrograman Python. Python lebih mudah digunakan (dibandingkan dengan C) dan dukungan library kriptografi yang sudah tersedia.

Untuk dapat menjalankan dan meng-compile program Python saya menggunakan tools PyCharm dan sudah harus tersedia Python Interpreter. Silahkan download dengan klik link di bawah ini:


Berikut ini beberapa perbedaan singkat antara Python dengan bahasa C (atau Java atau yang sejenis). Kode di bawah ini untuk Python versi 2, bukan versi 3.

Tidak ada kurung kurawal

Di Python, untuk menyatakan suatu blok kode tidak dengan kurung kurawal seperti di C, tapi dengan indentasi. Jika di C kita menuliskan seperti ini:
if (a > 0) {
    printf("Positif");
    return 1;
} else {
    printf("Negatif");
    return 0;
}
Maka di Python kita tuliskan seperti ini (jangan lupa indentasi):
if a > 0:
    print "Positif"
    return 1
else:
    print "Negatif"
    return 0
Kode dibawah ini tidak valid di Python karena tidak ada indentasinya atau indentasi tidak rapi:
if a > 0:
print "Positif"
return 1
else:
  print "Negatif"
 return 0

Tidak ada deklarasi variabel

Jika Anda sudah familiar dengan PHP, maka di Python sama, yaitu tidak ada deklarasi variabel. Anda bisa langsung mengisi nilai ke variabel tanpa deklarasi maupun tipe data.
nilai = 100
message = "Hello"

Deklarasi fungsi

Jika di C Anda menuliskan misalnya seperti ini:
int namafungsi(int parameter) {
    statemen1;
    statemen2;
}
Maka di Python Anda tuliskan seperti ini:
def namafungsi(parameter):
    statemen1
    statemen2

Pernyataan kondisional

Jika di C Anda menuliskan misalnya seperti ini:
if(kondisi) {
    statemen1;
} else {
    statemen2;
}
Maka di Python Anda tuliskan seperti ini:
if kondisi:
    statemen1
else:
    statemen2

Perulangan

Jika di C Anda menuliskan misalnya seperti ini:
for(i = 0; i < n; i++) {
    statemen;
}
Maka di Python Anda tuliskan seperti ini:
for i in range(n):
    statemen
Untuk loop while:
while i > 0:
    statemen

Mencetak output

Jika di C Anda menuliskan misalnya seperti ini:
int x = 10;
printf("Nilai x = %d", x);
Anda juga bisa menuliskannya di Python seperti ini:
x = 10
print "Nilai x = %d" % (x)

Array

Array di Python disebut sebagai list
data = [10, 20, 30, 40]
data.append(50)
print data[0]
 
 
 
 
Sumber: code.cs.ipb.ac.id 

 

Contoh lanjutan dari source code Python made in agung dp :D

Source Code

==========================================================================

__author__ = 'agungdwiprasetyo'
print "Hello World"
#tidak ada deklarasi variabel
a = 5
b = 10
print "Nilai a = %d, b = %d" % (a,b) #sintaks untuk mencetak nilai dari variabel
 
# pernyataan if 
if a<10 and a>-10:
    a = a*-1
    print "a negatif" 
#hati-hati indentasi, harus diperhatikan untuk satu perintah if statemen-statemennya harus lurus rata kiri dengan statemen yang pertama dalam if
 
c = False 
if not c:
    print "C is False"
else:
    print "C is True"
 
#looping 
while a>0:
    print a
    a = a-1
for i in range(0,5,2): 
    print i, 
#5 itu inklusif sebagai batas dari looping, 0 untuk mulai 5 untuk batas dan 2 sebagai increment/decrement
print "\n"
 
#array 
l=[10,20,30,40,50
for i in l:
    print i,
print"\n"
 
#list comprehension 
m=[]
for i in l:
    m.append(i*i)
print m

n = [x*x for x in l]
print n
# m sama dengan n
 
o = [x*x for x in l if x>20]
print o
# o berisi elemen2 list dimana nilai x lebih dari 20
 
#operator pangkat 
a = 2 ** 5  #pangkat 
b = 10 % 2  #modulo

#string 
a = 'asdf' 
b = "asdf" 
c = '''nama saya agung 
saya tinggal di lampung'''
print a
print b
print c

s = 'wk' * 10 + 'ha' * 5   # string juga bisa dimanipulasi seperti angka secara matematika 
print 
 
#slicing, bisa buat list bisa juga buat string 
s = "INSTITUT PERTANIAN BOGOR" 
print s[:5] # INSTI 
print s[9:18]   #PERTANIAN 
print s[9:18:2]   #PRAIN 
print s[18:9:-1]   # NAINATRE
print s[10:]   #ERTANIAN BOGOR 
print s[::-1]   #EROGOB NAINATREP TUTITSNI
for c in s:
    print c,
print "\n"
 
 
#contoh untuk DNA
dna = "ACTCGAGTCGAGCGATCAGATCAGTACGATGGGACGAGTTTACAGTGCAGTACGATGCGGCTAGAACTGAGCT"
print dna.lower()
print dna.count('A')    #menghitung jumlah karakter A pada string dna 
print dna.count('G')    #menghitung jumlah karakter G pada string dna 
print dna.count('C')    #menghitung jumlah karakter C pada string dna 
print dna.count('T')    #menghitung jumlah karakter T pada string dna
 
#mengubah char dalam string
mrna = '' 
for c in dna:              #cara naive
     if c == 'T': c = 'U'
     mrna += c
print mrna

mrna = dna.replace('T','U') #cara ringkas
print mrna


#fungsi 
def transkripsi(dna):
    trans = dna.replace('T','U')
    return trans

def main():
    dna = "ACTCGAGTCCAGATCAGTACGATGGGACGAGTTTACAGTGCAGTACGATGCGGCTAGAACTGAGCT"
    print transkripsi(dna)

main()  #pemanggilan fungsi main

def komplemen(dna):
    d = {    #struktur data dictionary         
        'A':'T', 'T':'A',
        'C':'G', 'G':'C'    }
    komp = "" 
    for c in dna:
        komp += d[c]
    return komp     # atau bisa juga return ''.join( [d[c] for c in dna] )
print komplemen(dna)

 

==========================================================================


Instalasi Arduino 0

Agung Dwi Prasetyo | 10.41.00 |


Cara Instalasi Arduino pada Komputer:
1. Download software Arduino IDE di https://www.arduino.cc/en/Main/Software  download sesuai OS komputer anda, dalam hal ini saya menggunakan OS Windows 7 64bit.
Ekstrak file hasil download dan setelah itu double click icon arduino.

2. Lakukan instalasi sampai tahap finish (jika tahap finish telah dilewati software  Arduino IDE siap untuk digunakan).  
3. Setelah itu buka software Arduino IDE. 

Saat pertama kali membuka software terlihat layout software seperti gambar dibawah ini.




Dibawah ini merupakan tampilan sofware Arduino IDE.



Keterangan GUI
1. Menu Bar: berisi menu-menu utama

2. VerifyDigunakan untuk meng-compile program sekaligus menyimpan kode program, agar programmer mampu mengetahui program telah sesuai dengan syntax atau 
tidak seperti kurangnya tanda buka/kurung tutup, kurangnya tanda titik koma di akhir perintah, kesalahan deklarasi variabel, dll.

3. Upload: Mengirimkan program ke board arduino. Ketika ini di klik LED 
pada arduino akan berkedip sangat cepat tanda program sedang di-burn ke arduino

4. New: Tombol ini digunakan untuk membuka halaman window yang baru.

5. Open: Tombol ini digunakan untuk membuka kodingan program yang telah 
disimpan di drive.

6.Save: Menyimpan kodingan program yang telah diketik.

7. Serial Monitor: Tombol ini akan membuka window yang digunakan untuk  melihat data serial yang dikirimkan mikrokontroler, serta bisa juga untuk berkomunikasi dengan mikrokontroler

8. Sketch Name: Menunjukan nama sketch yang sedang aktif atau digunakan.

9. Code Area: adalah tempat programmer untuk menuliskan program. 

10. Message Area: Menunjukan proses burning serta kesuksesan kode yang di-burn ke arduino, dan akan muncul pesan jika ada bagian yang error dalam program.

11. Tipe dan Port Area: Menunjukkan tipe arduino dan port yang sedang terhubung ke komputer, dalam hal ini tipenya yaitu Arduino Uno yang tehubung pada port COM3

Instalasi Driver Arduino

Instalasi ini berguna agar 'Board Arduino' dapat dikenali komputer anda. karena pada saat proses instalasi selesai driver arduino tidak otomatis terinstal. Terlebih dahulu pastika papan arduino anda terpasang pada laptop anda dengan bantuan kabel USB.

1. Terlebih dahulu buka device manager. start > computer > klik kanan, manage > device manager 



2. Setelah device manager terbuka  perhatikan pada bagian 'Ports (COM & LPT)', disana terdeteksi ada 'device' namun belum terinstal.





3. FT232R USB UART merupakan chip yang digunakan untuk memasukan sketch Arduino pada ATmega328p untuk Arduino Uno.     


4. setelah itu klik kanan  dan pilih 'browse my computer for driver software'



5. cari dimana anda menyimpan driver arduino anda, secara default driver arduino tersimpan pada folder C/program files/ arduino/ driver. jika anda tidak bisa menemukanya download terlebih dahulu drivernya sesuai dengan seri chip downloader yang anda gunakan pada papan arduino. setelah itu arahkan pada folder dimana anda menyimpan driver tersebut. 


6. jika terdapat notifikasi sukses ter update, maka driver sudah terinstal dengan benar.


7. jika device arduino masih memiliki tanda seru, lakukan kembali dengan cara klik kanan pada USB Serial Device pada Port Com Device Manager. pilih update driver.


8. setelah itu anda akan mendapatkan notifikasi seperti dibawah. perhatikan pada Device Port Com terlihat sekarang tanda serunya hilang dan memiliki keterangan Arduini Uno ( jika anda menggunakan Arduino Uno)







Mengkoneksikan Arduino pada Windows


1. Pilih Arduino UNO

Hubungkan Arduino Dengan Laptop gunakan kabel USB A to USB B
Klik Tools/ Board/ Arduino UNO pada Arduino IDE.




//Pilih Arduino UNO, karena board microcontroler yang kita gunakan adalah
 Arduino UNO


2. Pilih Serial  Port

Klik Tools/ Serial Port/ Com ## , langkah ini digunakan untuk mengkoneksilan 
Board Arduino dengan Arduino IDE.




3. Setelah ini Arduino IDE siap untuk di gunakan. tersedia library standar dan contoh program yang dapat dipergunakan untuk mempermudah proses pembelajaran (tersedia pada menubar 'file' ).


Sumber:
https://learn.sparkfun.com/tutorials/how-to-install-ftdi-drivers/windows---in-depth
SFE-SIK-RedBoard-Guide-Version3.0-Online.PDF 





Tambahan jika OS yang anda gunakan yaitu Linux Ubuntu
Instal Arduino pada Ubuntu
1. instal kelengkapan arduino di ubuntu

Buka terminal

Ketikkan kode dibawah ini pada terminal
-$ sudo apt-get install minicom
-$ sudo minicom -b 9600 -D /dev/ttyACM0
or
-$ sudo apt-get install screen
-$ sudo apt-get install avrdude binutils-avr gcc-avr avr-libc gdb-avr
(sumber: https://github.com/tttor/trui-bot-prj/tree/master/robot)
2. instal sublime
-$ sudo add-apt-repository ppa:webupd8team/sublime-text-2
-$ sudo apt-get update
-$ sudo apt-get install sublime-text
(sumber: 
http://askubuntu.com/…/17…/how-do-i-install-sublime-text-2-3)
3. buat makefile
- download ws.tar.gz
- extract folder tersebut
- letakan di home
- buka terminal 
- $ cd ws (masuk ke folder ws)
- $ make master_arduino (membuat folder library dll)
- $ make (make hex file)
- $ make master_upload (upload hex file to arduino kit)

Pengenalan Arduino 1

Agung Dwi Prasetyo | 07.18.00 | ,

Arduino merupakan sebuah piranti elektronik dengan mikrokontroller yang dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri.
Mikrokontroler arduino diprogram menggunakan bahasa pemrograman arduino yang memiliki kemiripan syntax dengan bahasa pemrograman C dan java. Karena sifatnya yang terbuka maka siapa saja dapat mengunduh skema hardware arduino dan membangunnya.
Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis oleh Atmel sebagai basis, namun ada individu/perusahaan yang membuat clone arduino dengan menggunakan mikrokontroler lain dan tetap kompatibel dengan arduino pada level hardware. Untuk fleksibilitas, program dimasukkan melalui bootloader meskipun ada opsi untuk membypass bootloader dan menggunakan downloader untuk memprogram mikrokontroler secara langsung melalui port ISP.

Dan seperti mikrocontroler yang banyak jenisnya, Arduino lahir dan berkembang, kemudian muncul dengan berbagai jenis. Diantaranya adalah:

a. Arduino Uno

Jenis yang ini adalah yang paling banyak digunakan. Terutama untuk pemula sangat disarankan untuk menggunakan Arduino Uno. Dan banyak sekali referensi yang membahas Arduino Uno. Versi yang terakhir adalah Arduino Uno R3 (Revisi 3), menggunakan ATMEGA328 sebagai Microcontrollernya, memiliki 14 pin I/O digital dan 6 pin input analog. Untuk pemograman cukup menggunakan koneksi USB type A to To type B. Sama seperti yang digunakan pada USB printer. Harga Arduino Uno ini sekitar 100.000 sampai 150.000 rupiah.

b. Arduino Due


Berbeda dengan saudaranya, Arduino Due tidak menggunakan ATMEGA, melainkan dengan chip yang lebih tinggi ARM Cortex CPU. Memiliki 54 I/O pin digital dan 12 pin input analog. Untuk pemogramannya menggunakan Micro USB, terdapat pada beberapa handphone.

c. Arduino Mega

Mirip dengan Arduino Uno, sama-sama menggunakan USB type A to B untuk pemogramannya. Tetapi Arduino Mega, menggunakan Chip yang lebih tinggi ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya lebih banyak dari Uno. Harga Arduino Mega ini sekitar 150.000 sampai 200.000 rupiah.

d. Arduino Leonardo

Bisa dibilang Leonardo adalah saudara kembar dari Uno. Dari mulai jumlah pin I/O digital dan pin input Analognya sama. Hanya pada Leonardo menggunakan Micro USB untuk pemogramannya.

e. Arduino Fio

Bentuknya lebih unik, terutama untuk socketnya. Walau jumlah pin I/O digital dan input analognya sama dengan uno dan leonardo, tapi Fio memiliki Socket XBee. XBee membuat Fio dapat dipakai untuk keperluan projek yang berhubungan dengan wireless.

f. Arduino Lilypad

Bentuknya yang melingkar membuat Lilypad dapat dipakai untuk membuat projek unik. Seperti membuat amor iron man misalkan. Hanya versi lamanya menggunakan ATMEGA168, tapi masih cukup untuk membuat satu projek keren. Dengan 14 pin I/O digital, dan 6 pin input analognya.

g. Arduino Nano

Sepertinya namanya, Nano yang berukulan kecil dan sangat sederhana ini, menyimpan banyak fasilitas. Sudah dilengkapi dengan FTDI untuk pemograman lewat Micro USB. 14 Pin I/O Digital, dan 8 Pin input Analog (lebih banyak dari Uno). Dan ada yang menggunakan ATMEGA168, atau ATMEGA328. Harga Arduino Nano ini sekitar 50.000 sampai 70.000 rupiah.

h. Arduino Mini

Fasilitasnya sama dengan yang dimiliki Nano. Hanya tidak dilengkapi dengan Micro USB untuk pemograman. Dan ukurannya hanya 30 mm x 18 mm saja.

i. Arduino Micro

Ukurannya lebih panjang dari Nano dan Mini. Karena memang fasilitasnya lebih banyak yaitu; memiliki 20 pin I/O digital dan 12 pin input analog.

j. Arduino Ethernet

Arduino ini yang sudah dilengkapi dengan fasilitas ethernet. Membuat Arduino kamu dapat berhubungan melalui jaringan LAN pada komputer. Untuk fasilitas pada Pin I/O Digital dan Input Analognya sama dengan Uno.

k. Arduino Esplora

Rekomendasi bagi kamu yang mau membuat gadget sepeti Smartphone, karena sudah dilengkapi dengan Joystick, button, dan sebagainya. Kamu hanya perlu tambahkan LCD, untuk lebih mempercantik Esplora.

l. Arduino Robot 

­­­­­­
Ini adalah paket komplit dari Arduino yang sudah berbentuk robot. Sudah dilengkapi dengan LCD, Speaker, Roda, Sensor Infrared, dan semua yang kamu butuhkan untuk robot sudah ada pada Arduino ini.


Sumber:
https://id.wikipedia.org/wiki/Arduino

Tutorial Arduino #1: Dasar Pemrograman C pada Arduino 0

Agung Dwi Prasetyo | 11.03.00 |

Pada tutorial yang pertama ini saya akan membahas pengetahuan dasar pemrograman bahasa C pada Arduino. Seperti yang kita tahu bahwa Arduino merupakan sebuah modul mikrokontroler dengan port input dan output yang diprogram menggunakan bahasa C khusus Arduino dan bisa juga dengan bahasa lainnya (seperti Java). Modul Arduino terdiri dari beberapa tipe, yang membedakan hanya fitur-fiturnya saja sedangkan dari segi pemrograman sama saja. beberapa tipe modul tersebut antara lain Arduino Uno, Arduino Leonardo, Arduino Due, dll. 


Kelebihan Modul Arduino antara lain:
1. Mudah digunakan, cocok sekali untuk pemula
2. Fungsi Library (code program tinggal pakai) untuk mengakses hardware sangat banyak.

Untuk instalasi modul Arduino pada PC dapat dilihat pada postingan sebelumnya disini

Berikut akan dibahas tentang pengenalan bahasa C untuk Arduino. Bagi yang sudah terbiasa dengan bahasa C pada umumnya (ANSI-C) tidak akan kesulitan untuk mempelajari bahasa C Arduino karena pada umumnya sintaks-sintaksnya hampir sama.

Pengenalan bahasa C sebagai bahasa pemrograman
Semua bahasa pemrograman terdiri dari:
  • Ekspresi
  • Statemen
  • Blok statemen
  • Blok fungsi
Ekspresi adalah kombinasi operand dan operator, contoh 4+7, x>y, x!=z, dll. 4, 7, x, y, z adalah operand sedangkan +, >, dan != adalah operator.
Statemen adalah instruksi lengkap dalam bahasa C yang harus diakhiri dengan tanda titik koma (;). Contoh x=y+4;
Blok statemen adalah kumpulan-kumpulan statemen yang berada dalam satu kurung kurawal. Biasanya blok statemen ini berada dalam perintah logika IF atau dalam perulangan (looping). Contoh IF(x>0){x=x+5; print("x adalah positif"); }
Blok fungsi  adalah satu blok kode yang melakukan tugas tertentu atau satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program.

Statemen dan ekspresi C arduino identik dengan ANSI-C. Struktur program C Arduino minimal terdiri dari dua fungsi yaitu setup() dan loop().
Fungsi setup() dijalankan pertama  kali  setiap board  arduino dihidupkan sedangkan fungsi loop() dijalankan terus menerus selama board arduino hidup. Pada program standar ANSI-C  fungsi yg pertama dijalankan adalah fungsi main() sedangkan pada C Arduino  adalah fungsi setup().
Berikut ini struktur minimal C Arduino:
//setup digunakan untuk inisialisasi variable, mode pin (Input atau Output), dll
void setup() 
{
   statement1;
   statement2;
...
} 

void loop()
{ 
   statement1;
   statement2;
...
}


Contoh program untuk membuat lampu led nyala-mati secara periodik:
//inisialisasi variabel yang akan digunakan
int led = 13;   //dalam hal ini led menjadi variabel dengan nilai 13
                //13 ini akan digunakan sebagai pin input/output dari arduino
                //yang dihubungkan ke lampu led
//setup dijalankan sekali saat arduino direset
void setup(){
   pinMode(led,OUTPUT);  //variabel led dengan pin nomor 13 merupakan output 
}

//loop melakukan eksekusi berulang
void loop(){
   digitalWrite(led,HIGH);  //HIGH berarti led menyala
   delay(100);              //selang waktu nyala-mati (dalam mikrosekon)
   digitalWrite(led,LOW);   //LOW berarti led mati
   delay(100);              //selang waktu mati-nyala (dalam mikrosekon)
}
*ket: tanda "//" merupakan baris komentar. Satu baris komentar tidak akan ikut dieksekusi dalam program


Variabel dan Konstanta
Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah. Variabel disimpan di dalam RAM.
Konstanta adalah memori penyimpanan data yang nilainya tidak dapat dirubah setelah program di-compile. Konstanta disimpan di memory program.

Variabel Scope
Variabel dan konstanta global dapat diakses di seluruh bagian program.
Variabel dan konstanta lokal hanya dapat diakses di dalam fungsi tempat dideklarasikannya.

Tipe Data 
Arduino C mendukung sebagian besar tipe data ANSI C dengan beberapa pengecualian. Variabel adalah sebuah atau beberapa lokasi memori yang diberi nama. Ketika anda mendefinisikan variabel Anda juga harus memberitahu compiler jenis data variable tersebut. Tipe data dari variabel penting karena untuk menentukan berapa banyak byte memori yg disediakan untuk variabel itu, dan jenis data yang dapat disimpan dalam variabel. Tipe data ini untuk mendeklarasikan variabel.



OPERATOR DAN EKSPRESI
  • Operator Penugasan ( “=” )
Setelah variabel telah dideklarasikan, operasi dapat dilakukan pada variable menggunakan operator penugasan (=). Sebuah nilai yang diberikan untuk variabel dapat berupa sebuah konstanta, variabel, atau ekspresi. Sebuah ekspresi dalam bahasa C adalah kombinasi dari operand (pengidentifikasi) dan operator. Operator penugasan antara lain sebagai berikut:
int nilai;
int x;
nilai = 13;
x=nilai;
  • Operator Aritmetika
Terdiri dari:
Penjumlahan (+)
Pengurangan atau Negasi (-) 
Perkalian (*)
Pembagian (/)
Modulo (%) 
  • Operator Logika
AND  ( && )
OR    ( || )
sama dengan   ( == )
tidak sama dengan   ( != )
lebih kecil    ( < )
lebih kecil atau sama dengan    ( <= )
lebih besar   ( > )
lebih besar atau sama dengan    ( >= ) 
  • Increment dan Decrement
++x atau x++ disebut increment, artinya nilai x=x+1 (nilai x bertambah satu dari nilai x sebelumnya).
Perbedaan antara ++x dengan x++ yaitu untuk ++x tambahkan dulu nilai x dengan 1 setelah itu di proses baris kode tersebut, sedangkan x++ proses dulu baris kode setelah itu tambahkan nilai x dengan 1.
 --y atau y-- disebut decrement, artinya nilai y=y+1 (nilai y berkurang satu dari nilai y sebelumnya).
Perbedaan antara --y dengan y-- yaitu untuk --y kurangkan dulu nilai y dengan 1 setelah itu di proses baris kode tersebut, sedangkan y-- proses dulu baris kode setelah itu kurangkan nilai y dengan 1. 
  • Compound
Compound digunakan hanya untuk menyingkat baris expresi saja.Contohnya: 
X+= 3; artinya X = X + 3
X-= 3; artinya X = X – 3
X*= 3; artinya X = X * 3
X/= a; artinya X = X / a
X |= 3; artinya X = X OR 3
X &= 3; artinya X = X AND 3
X ^= 3; artinya X = X ^ 3
X &= 3; artinya X = X & 3


Fungsi
Fungsi adalah sebuah blok statement yang melaksanakan tugas tertentu dan bisa dipakai lebih dari 1 kali di dalam program. Program bahasa C terdiri dari fungsi-fungsi dan sebuah program C minimal terdiri dari 1 fungsi .Pada C Arduino fungsi setup() dijalankan pertama kali saat program dijalankan. Fungsi terdiri dari dua bagian utama yaitu kepala fungsi dan blok fungsi. Berikut ini bentuk umum sebuah fungsi:
(type) nama_fungsi( (type) parameter)
{
   statement;
...
   return (value);
}
Kepala fungsi terdiri dari type return value, nama fungsi, serta type dan nama parameter. Type pada kepala fungsi merupakan tipe data (dalam hal ini int, float, atau double). Statement di blok fungsi menyatakan apa yang fungsi harus lakukan. Jika return value atau parameter tidak ada maka type-nya ditulis void seperti dibawah ini:

void nama_fungsi()
{
   statement;
...
}


Library
Library adalah kumpulan fungsi-fungsi khusus yang sudah disediakan oleh bahasa pemrograman C. Library ini biasanya berekstensi *.h dan dalam pemanggilannya digunakan sintaks #include <*.h>. Library ini juga diletakkan pada header dari source code. Sebagai contoh:

#include <NewPing.h>    //mengimport library NewPing.h

void setup() {... }

void loop() {... }
Biasanya ada beberapa library yang tidak disediakan secara default oleh modul Arduino dan harus mendownloadnya sendiri melalui situs web Arduino atau mencari di Google. Untuk mendownload library lainnya dapat dilakukan di https://www.arduino.cc/en/Reference/Libraries
 

Control Statement
Semua control statement pada bahasa C Arduino sama dengan bahasa C pada umumnya.
  • WHILE Loop
while(expression)  //selama expresi bernilai true laksanakan perulangan blok 
{                  //statemen dibawahnya (dalam kurung kurawal)
   statement1;
   statement2;
...
}
atau jika statemen hanya 1 baris, statemen tidak perlu diberi tanda kurung kurawal { }

while(expression)
   statement;
  • DO/WHILE Loop
do                  //jalankan statement dibawah (dalam kurung kurawal)
{                   //minimal 1 kali perulangan dilaksanakan
   statement1;
   statement2;
...
}
while(expression);   //jika expresi true, jalankan kembali perulangan
atau jika statemen hanya 1 baris

do
   statement;
while(expression);
  • FOR Loop
for(expr1; expr2; expr3)
{
   statement1;
   statement2;
...
}
//* expr1 dievaluasi hanya satu kali sebelum mulai looping
//* expr2 merupakan ekspresi boolean. Jika tidak dituliskan diasumsikan bernilai 
//     true
//* jika expr2 bernilai false maka proses looping dihentikan
//* jika expr2 bernilai true maka statement1, statement2, dan yang berada dalam
//     kurung kurawal dieksekusi
//* setelah eksekusi statement-statement yang berada dalam kurung kurawal maka 
//     expr 3 dieksekusi
Contoh program

for(int i=0; i<5; i++)
{
   Serial.print("Hello World! \t");
   Serial.println(i);
}
Maka output dari potongan program diatas yaitu:

Hello World!    0
Hello World!    1
Hello World!    2
Hello World!    3
Hello World!    4
Dapat dilihat dari potongan program diatas terjadi 5 kali pengulangan. Dalam hal ini variabel i bertindak sebagai iterator. Mula-mula i bernilai 0 kemudian diincrement sampai nilainya kurang dari 5. Ketika i bernilai 5 maka ekspresi boolean pada looping bernilai false sehingga proses looping berhenti.
  •  IF/ELSE
if(expression) //jika ekspresi bernilai true laksanakan blok statemen setelah if
{              
   statement1;
   statement2;
...
}
else         //jika ekspresi pada if diatas bernilai false maka laksanakan blok  
{            //statemen pada bagian else disini
   statement3;
   statement4;
...
}
  • BREAK, CONTINUE, dan GOTO
Break, Continue, dan GoTo statement digunakan untk merubah alur eksekusi untuk statement pengulangan FOR, WHILE, DO/While, dan IF/ELSE.

BREAK
Break statement digunakan untuk keluar dari pengulangan FOR, WHILE, DO/WHILE, atau switch. BREAK keluar daru blok pengulangan dimana dia beada saja.

CONTINUE
Continue akan menyebabkan program memulai iterasi berikutnya dari statemen pegulangan WHILE. DO/WHILE, atau FOR loop. CONTINUE sama seperti BREAK pengulangan akan berhenti pada point yang dituju (di skip), bedanya CONTINUE akan memulai loop lagi dari atas, sedangkan BREAK memaksa keluar dari loop/pengulangan.

Contoh program

void setup(){
Serial.begin(9600);
pinMode(led,OUTPUT);
}
void loop()
{
int i=0;
for(i; i<10; i++)
   {
      if(i<=1)
         continue;
      if(i==8)
         break;
      Serial.println(i);
   }
}
Maka output dari program diatas yaitu

2
3
4
5
6
7


Structures, Union, dan Data Storage

void setup()
{
   pinMode(int pin, int mode);
}
Potongan program diatas memerintahkan apakah pin akan diset sebagai digital input atau output. Mode berupa Input atau Output.
  • Digital Input/Output
int digitalRead (int pin);
Program diatas untuk membaca nilai dari pin digital. Nilai yang diperoleh dapat berupa 1 atau 0 (1 untuk HIGH dan 0 untuk LOW).

digitalWrite (int pin, int value);
Program diatas untuk menulis nilai ke pin digital. Nilai dari value yang ditulis yaitu berupa 1 atau 0 (1 untuk HIGH dan 0 untuk LOW).
  • Analog Input/Output

int analogRead (int pin);
Program diatas untuk membaca nilai dari pin analog. Nilai yang diperoleh yaitu antara 0 sampai 1023.

analogWrite (int pin, int value);
Program diatas untuk menulis nilai analog ke pin. Nilai dari value yang ditulis yaitu antara 0 sampai 255.







Penulis: Agung Dwi Prasetyo, Computer Science IPB
Referensi : 
https://www.arduino.cc/en/Reference/HomePage
C Programming for Arduino


 
HardCode Copyright © 2012 Prozine Theme is Designed by Agoenk Home | RSS Feed | Comment RSS