Download - 31901_tutorial Dasar Arduino

Transcript
Page 1: 31901_tutorial Dasar Arduino

1

BAB 1

TUTORIAL BAHASA PEMROGRAMAN ARDUINO

Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit penjelasan yang ditujukan kepada anda yang hanya mempunyai sedikit pengalaman pemrograman dan membutuhkan penjelasan singkat mengenai karakter bahasa C dan software Arduino. Untuk penjelasan yang lebih mendalam, web Arduino.cc adalah sumber yang lengkap.

Struktur Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.

void setup( ) { } Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program

Arduino dijalankan untuk pertama kalinya. void loop( ) { } Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan

satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan. Syntax Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan.

//(komentar satu baris) Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode

yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.

/* */(komentar banyak baris) Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada beberapa baris

sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.

{ }(kurung kurawal)

Page 2: 31901_tutorial Dasar Arduino

2

Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).

;(titk koma) Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang

hilang maka program tidak akan bisa dijalankan). Variabel Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya.

int (integer) Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka

desimal dan menyimpan nilai dari -32,768 dan 32,767. long (long) Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori

(RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647. boolean (boolean) Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar)

atauFALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM. float (float) Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM

dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38. char (character) Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya

memakai 1 byte (8 bit) dari RAM. Operator Matematika Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana).

= Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x

sekarang sama dengan 20). % Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya:

12 % 10, ini akan menghasilkan angka 2). + Penjumlahan - Pengurangan * Perkalian / Pembagian

Operator Pembanding Digunakan untuk membandingkan nilai logika.

Page 3: 31901_tutorial Dasar Arduino

3

== Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE

(benar)) != Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah

FALSE (salah)) < Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE

(salah) atau 12 < 14 adalah TRUE (benar)) > Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE

(salah) atau 12 > 14 adalah FALSE (salah)) Struktur Pengaturan Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan (banyak lagi yang lain dan bisa dicari di internet).

1. if..else, dengan format seperti berikut ini: if (kondisi) { } else if (kondisi) { } else { } Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan. 2. for, dengan format seperti berikut ini: for (int i = 0; i < #pengulangan; i++) { } Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–. Digital 1. pinMode(pin, mode) Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalahINPUT atau OUTPUT. 2. digitalWrite(pin, value) Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH(ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground). 3. digitalRead(pin) Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts) atau LOW(diturunkan menjadi ground). Analog Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital.

Page 4: 31901_tutorial Dasar Arduino

4

1. analogWrite(pin, value) Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V). 2. analogRead(pin) Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts).

Unknown Device Pada Arduino

Beberapa hari yang lalu setelah install ulang notebook dan mencoba belajar arduino kembali ternyata ada kendala pada arduino. Arduino Uno yang saya miliki tidak bisa terdetect dengan baik, com / port arduino tidak bisa terbaca dan muncul tulisan "unknown device" pada device manager

setelah update sana update sini ternyata juga tidak bisa menyelesaikan masalah tersebut. tetapi berkat bantuan dari si empu google akhirnya masalah ini bisa terselesaikan. adapun caranya adalah sebagai berikut : Klik kanan pada unknown device, pilih update driver software Setelah itu pilih browse my computer for driver software

pilih let me pick from a list from a list ....

Page 5: 31901_tutorial Dasar Arduino

5

Pilih ports (COM & LPT)

Klik next dan klik arduino LLC jika ada

Jika belum ada klik have disk dan arah kan ke driver arduino yang sudah ada, pilih sesuai dengan boar arduino. setelah itu baru muncul arduino yang di maksud. Pilih arduino LLC kemuduan arduino Uno dan klik yes

Page 6: 31901_tutorial Dasar Arduino

6

arduino akan succesfully dan terinstal / muncul pada com Arduino siap digunakan kembali

Page 7: 31901_tutorial Dasar Arduino

7

BAB 2

PERCOBAAN

1. BLINKING LED

Komponen yang diperlukan:

1 buah LED 1 buah resistor 330 ohm Kabel jumper

Skema rangkaian dapat dilihat pada gambar berikut:

Untuk memulai, segera siapkan komponen yang dibutuhkan seperti tertera di bawah ini dan pasang pada breadboard. Setelah semua komponen terpasang maka kita akan meng-upload programnya. Hubungkan Arduino anda ke komputer dengan kabel USB. Kemudian pilih port yang sesuai pada software Arduino di menu Tools > Serial Port > COMXX (sesuai dengan comm port Arduino anda). Lalu upload program tersebut dengan menggunakan menu File > Upload I/O Board (ctrl+U).

Page 8: 31901_tutorial Dasar Arduino

8

Kode Program

void setup() {

// initialize the digital pin as an output.

// Pin 13 has an LED connected on most Arduino boards:

pinMode(13, OUTPUT);

}

void loop() {

digitalWrite(13, HIGH); // set the LED on

delay(1000); // wait for a second

digitalWrite(13, LOW); // set the LED off

delay(1000); // wait for a second

}

Experimen

1. Menambah jumlah led 2. Merubah durasi blink 3. Mengatur kecerahan

Page 9: 31901_tutorial Dasar Arduino

9

Petunjuk

void loop() { analogWrite(9,angka baru); }

angka baru = angka antara 0 – 255. 0 = mati, 255 = hidup, angka diantaranya = perbedaan tingkat kecerahan

2. MENGATUR KECERAHAN (FADING)

Tingkat kecerahan dari led dapat diatur dengan mengatur jumlah arus yang didapatkannya. Dengan arduino tita dapat mengatur tingkat kecerahan dari led saat menyala dengan mengatur besarnya arus yang dikehasilkan oleh pin output arduino. Pengaturan besarnya arus ini dapat dilakukan dengan metode digital. Arduino memiliki output digital dengan level 0-255 atau 8 bit. Dengan mengatur nilai ini, maka output pada led dapat pula diatur

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

/* Fade This example shows how to fade an LED on pin 9 using the analogWrite() function. This example code is in the public domain. */ int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by void setup() { // declare pin 9 to be an output: pinMode(9, OUTPUT); } void loop() { // set the brightness of pin 9: analogWrite(9, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness == 0 || brightness == 255) {

Page 10: 31901_tutorial Dasar Arduino

10

27 28 29 30 31

fadeAmount = -fadeAmount ; } // wait for 30 milliseconds to see the dimming effect delay(30); }

3. MENGGUNAKAN PUSH BUTTON

Komponen yang diperlukan:

2 buah push button 2 buah resistor 10K ohm 1 buah resistor 330 ohm 1 buah LED Kabel jumper

Page 11: 31901_tutorial Dasar Arduino

11

Page 12: 31901_tutorial Dasar Arduino

12

const int buttonPin = 2; // the number of the pushbutton pin

const int ledPin = 13; // the number of the LED pin

// variables will change:

int buttonState = 0; // variable for reading the pushbutton status

void setup() {

// initialize the LED pin as an output:

pinMode(ledPin, OUTPUT);

// initialize the pushbutton pin as an input:

pinMode(buttonPin, INPUT);

}

void loop(){

// read the state of the pushbutton value:

buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed.

// if it is, the buttonState is HIGH:

if (buttonState == HIGH) {

// turn LED on:

digitalWrite(ledPin, HIGH);

}

else {

// turn LED off:

digitalWrite(ledPin, LOW);

}

}

Experimen

a. Dengan dua push button buatlah satu push button sebagai tombol ON dan selain itu OFF

Page 13: 31901_tutorial Dasar Arduino

13

4. MENGGUNAKAN POTENSIOMETER

Pada Tutorial Arduino – Push Buttons, kita belajar menggunakan Arduino untuk membaca input. Tutorial kali ini akan menjelaskan cara membaca input dari pin analog Arduino. Arduino mempunya 6 pin analog yang dapat membaca input berupa voltase (dari 0 sampai

Page 14: 31901_tutorial Dasar Arduino

14

5 volts) dan mengkonversikannya ke angka digital antara 0 (0 volts) dan 1024 (5 volts), yaitu pembacaaan dengan resolusi 10 bit. Salah satu komponen yang dapat mengeksploitasi tegangan input ini adalah potentiometer atau biasa disebut juga variable resistor. Potentiometer yang terhubung dengan tegangan 5 volts akan memberikan keluaran tegangan antara 0 dan 5 volts pada pin bagian tengahnya, tergantung pada sudut diputarnya potentiometer tersebut. Kita kemudian dapat menggunakan tegangan keluaran ini sebagai sebuah variabel di dalam program kita.

Komponen yang diperlukan:

1 buah potentiometer 10K ohm 1 buah resistor 330 ohm 1 buah LED Kabel jumper

Kode Program

Page 15: 31901_tutorial Dasar Arduino

15

int sensorPin = A0; // select the input pin for the potentiometer int ledPin = 13; // select the pin for the LED int sensorValue = 0; // variable to store the value coming from the sensor void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); } void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds: delay(sensorValue); // turn the ledPin off: digitalWrite(ledPin, LOW); // stop the program for for <sensorValue> milliseconds: delay(sensorValue); } Experiment

a. Fading dikendalikan potensiometer

b. Membaca tegangan analog ReadAnalogVoltage

Petunjuk

Melihat pembacaan tegangan dengan software arduino

Hasil pengukuran tegangan yang dibaca oleh analog input dari arduino dapat dilihat dengan menggunakan serial monitor yang telah disediakan oleh aplikasi IDE ARDUINO. Membaca input analog pada pin 0 kemudian mengonversi menjadi data digital, dan ditampilkan pada serial monitor atau hyperterminal. Pin tengah potensiometer terhubung dengan pin A0, pin yang lainnya terhubung dengan +5 dan ground.

void setup() {

// komunikasi serial 9600 bit per sekon:

Serial.begin(9600);

Page 16: 31901_tutorial Dasar Arduino

16

}

void loop() {

// baca input analog pada pin A0:

int NilaiSensor = analogRead(A0);

// Konversi NilaiSensor (dari 0 – 1023) menjadi tegangan (0 – 5V):

float Tegangan = NilaiSensor * (5.0 / 1023.0);

// Menampilkan hasil:

Serial.println(Tegangan);

}

5. SENSOR LDR

Adalah sensor cahaya yang memiliki nilai hambatan yang berubah terhadap intensitas cahaya yang diterimanya.

Experiment

a. Membaca tegangan yang dihasilkan dari rangkaian di atas b. Membuat project sederhana 1 = Lampu Otomatis Terkendali Cahaya

Petunjuk

Page 17: 31901_tutorial Dasar Arduino

17

Kode program

int hasilSensorLDR; // Variable untuk sensor LDR

void setup() {

Serial.begin(9600); // Serial Monitor

pinMode(6,OUTPUT); // Set pin 6 sebagai Output

}

void loop() {

hasilSensorLDR=analogRead(0); // Hasil LDR = Hasil input pada pin A0

if (hasilSensorLDR<10) // Jika hasil LDR kurang dari 10 (Kurang Cahaya)

{

digitalWrite(6,HIGH); // Aktifkan Relay atau LED

}

else digitalWrite(6,LOW); // Jika tidak, Matikan Relay/LED

Serial.println(hasilSensorLDR); // Print hasil LDR ke Serial Monitor

delay(500); // Delay setengah detik

}