modul arduino iii

6
Pelatihan Arduino |ITSC UNIKOM 1 Divisi Hardware UNIKOM 2017 MODUL III ARDUINO IDE (SKETCH) 2.1. HASIL PEMBELAJARAN Mahasiswa dapat memahami dan membedakan dalam memfungsikan masing-masing pin dari Arduino sebagai pin digital, pin analog ataupun pin PWM. 2.2. TUJUAN Bagian ini memberikan informasi mengenai bagaimana memfungsikan masing- masing pin dari Arduino. 2.3. INTEGRATED DEVELOPMENT ENVIRONTMENT Untuk memprogram board Arduino, kita butuh aplikasi IDE (Integrated Development Environment) bawaan dari Arduino. Aplikasi ini berguna untuk membuat, membuka, dan mengedit source code Arduino (Sketches, para programmers menyebut source code Arduino dengan istilah “sketches”). Sketches merupakan source code yang berisi logika dan algoritma yang akan diupload ke dalam IC mikrokontroller (Arduino).

Upload: sutono-stn

Post on 14-Apr-2017

36 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Modul arduino iii

Pelatihan Arduino |ITSC UNIKOM 1

Divisi Hardware UNIKOM 2017

MODUL III

ARDUINO IDE (SKETCH)

2.1. HASIL PEMBELAJARAN

Mahasiswa dapat memahami dan membedakan dalam memfungsikan masing-masing

pin dari Arduino sebagai pin digital, pin analog ataupun pin PWM.

2.2. TUJUAN

Bagian ini memberikan informasi mengenai bagaimana memfungsikan masing-

masing pin dari Arduino.

2.3. INTEGRATED DEVELOPMENT ENVIRONTMENT

Untuk memprogram board Arduino, kita butuh aplikasi IDE (Integrated Development

Environment) bawaan dari Arduino. Aplikasi ini berguna untuk membuat, membuka, dan

mengedit source code Arduino (Sketches, para programmers menyebut source code Arduino

dengan istilah “sketches”). Sketches merupakan source code yang berisi logika dan algoritma

yang akan diupload ke dalam IC mikrokontroller (Arduino).

Page 2: Modul arduino iii

Pelatihan Arduino |ITSC UNIKOM 2

Divisi Hardware UNIKOM 2017

Gambar 3.1. Interface Arduino IDE

Interface Arduino IDE tampak seperti gambar 5.1. dari kiri ke kanan dan atas ke

bawah, bagian-bagian IDE Arduino terdiri dari :

1. Verify: pada versi sebelumnya dikenal dengan istilah Compile. Sebelum aplikasi

diupload ke board Arduino, biasakan untuk memverifikasi terlebih dahulu sketches

yang dibuat. Jika ada kesalahan pada sketch, nanti akan muncul error. Proses

Verify/Compile mengubah sketch ke binary code untuk diupload ke mikrokontroller.

2. Upload: tombol ini berfungsi untuk mengupload sketch ke board Arduino. Walaupun

kita tidak mengklik tombol verify, maka sketch akan dicompile, kemudian langsung

diupload ke board. Berbeda dengan tombol verify yang hanya berfungsi untuk

memverifikasi source code saja.

3. New Sketch: membuka window dan membuat sketch baru.

4. Open Sketch: membuka sketch yang sudah pernah dibuat. Sketch yang dibuat dengan

IDE Arduino akan disimpan dengan ekstensi file .ino.

5. Save Sketch: menyimpan sketch, tetapi tidak disertai mengcompile.

6. Serial Monitor: membuka interface untuk komunikasi serial.

Page 3: Modul arduino iii

Pelatihan Arduino |ITSC UNIKOM 3

Divisi Hardware UNIKOM 2017

7. Keterangan Aplikasi: pesan-pesan yang dilakukan aplikasi akan muncul di sini,

misalnya “Compiling” dan “Done Uploading” ketika kita mengcompile dan

mengupload sketch ke board Arduino.

8. Konsol: pesan-pesan yang dikerjakan aplikasi dan pesan-pesan tentang sketch akan

muncul pada bagian ini. Misalnya, ketika aplikasi mengcompile atau ketika ada

kesalahan pada sketch yang kita buat, maka informasi error dan baris akan

diinformasikan di bagian ini.

9. Baris Sketch: bagian ini akan menunjukkan posisi baris kursor yang sedang aktif pada

sketch.

10. Informasi Port: bagian ini menginformasikan port yang dipakai oleh board Arduino.

2.4. DASAR PEMROGRAMAN ARDUINO

Untuk dapat memahami perbedaan dari pada pin digital (0 – 13), analog (A0 – A5)

dan PWM (~3, ~5, ~6, ~9, ~10 dan ~11), perhatikan skema rangkaian dan sketch

pemrograman pada latihan-latihan dibawah ini:

1. Pin Digital

Skema Rangkaian: Keterangan:

Array merupakan variabel yang

dapat menampung banyak data,

masing-masing data bisa diambil

dengan alamat indeks (posisi)

data dalam suatu array tersebut.

Alamat indeks pada array

standarnya adalah angka integer

yang diawali dari angka 0. Jadi

jika punya data sebanyak 4 buah

dalam suatu variabel array,

maka data pertama pada alamat

indeks ke 0, data ke 2 pada

alamat indeks ke 1, data ke 3

pada alamat indeks ke 2 dan

seterusnya sampai data ke 4 pada

alamat indeks ke 3.

LED[0] = pin 3 Arduino Uno,

LED[1] = pin ke 5 Arduino Uno,

LED[2] = pin ke 6 Arduino Uno

dan LED[3] = pin ke 9 Arduino

Uno.

Sketch:

const int LED[4] = {

3,5,6,9};

void setup()

{

for(int thispin = 0; thispin < 4; thispin++)

{

pinMode(LED[thispin], OUTPUT);

digitalWrite(LED[thispin], LOW);

}

}

void loop()

{

for(int thispin = 0; thispin < 4; thispin++)

{

digitalWrite(LED[thispin], HIGH);

delay(1000);

digitalWrite(LED[thispin], LOW);

5 4 3 2

2

3

4

5

GND

GND

GND

GND

DIGITAL (~PWM)

ANALOG IN

ATMEGA328P-PU1121

~~

~

~~

~

microcontrolandos.blogspot.com

TX

RX

PD

0/R

XD

0P

D1

/TX

D1

PD

2/IN

T0

2P

D3

/IN

T1

3P

D4

/T0

/XC

K4

PD

5/T

15

PD

6/A

IN0

6P

D7

/AIN

17

PB

0/IC

P1

/CL

KO

8P

B1

/OC

1A

9P

B2

/SS

/OC

1B

10

PB

3/M

OS

I/O

C2

A11

PB

4/M

ISO

12

PB

5/S

CK

13

AR

EF

PC

5/A

DC

5/S

CL

A5

PC

4/A

DC

4/S

DA

A4

PC

3/A

DC

3A

3P

C2

/AD

C2

A2

PC

1/A

DC

1A

1P

C0

/AD

C0

A0

RE

SE

T

Page 4: Modul arduino iii

Pelatihan Arduino |ITSC UNIKOM 4

Divisi Hardware UNIKOM 2017

delay(1000);

}

}

2. Pin Analog

Skema Rangkaian: Keterangan:

Kedua putaran motor memiliki

putaran yang sama, karena pin

analog memiliki kondisi LOW

dengan range 0 – 130 (0 volt)

dan kondisi HIGH dengan range

131 – 1023 (+5 volt).

Berbeda dengan pin digital yang

memili kondisi LOW dengan

nilai 0 (0 volt) dan kondisi HIGH

dengan nilai 1 (+5 volt).

Sketch:

const int pinLED1=A0;

const int pinLED2=A1;

void setup()

{

pinMode(pinLED1, OUTPUT);

pinMode(pinLED2, OUTPUT);

analogWrite(pinLED1, 0);

analogWrite(pinLED2, 0);

}

void loop()

{

analogWrite(pinLED1, 500);

analogWrite(pinLED2, 1000);

delay(5000);

analogWrite(pinLED1, 1000);

analogWrite(pinLED2, 500);

delay(5000);

}

DIGITAL (~PWM)

ANALOG IN

ATMEGA328P-PU1121

~~

~

~~

~

microcontrolandos.blogspot.com

TX

RX

PD

0/R

XD

0P

D1

/TX

D1

PD

2/IN

T0

2P

D3

/IN

T1

3P

D4

/T0

/XC

K4

PD

5/T

15

PD

6/A

IN0

6P

D7

/AIN

17

PB

0/IC

P1

/CL

KO

8P

B1

/OC

1A

9P

B2

/SS

/OC

1B

10

PB

3/M

OS

I/O

C2

A11

PB

4/M

ISO

12

PB

5/S

CK

13

AR

EF

PC

5/A

DC

5/S

CL

A5

PC

4/A

DC

4/S

DA

A4

PC

3/A

DC

3A

3P

C2

/AD

C2

A2

PC

1/A

DC

1A

1P

C0

/AD

C0

A0

RE

SE

T

A1

A0

A0

A1

GN

D

GN

D

Page 5: Modul arduino iii

Pelatihan Arduino |ITSC UNIKOM 5

Divisi Hardware UNIKOM 2017

3. Pin PWM

Skema Rangkaian: Keterangan:

Sebagian pin dari Arduino Uno

support PWM (Pulse Width

Modulation), pin yang support PWM

ditandai dengan tanda tilde (~)

didepan angka pinnya, seperti ~3, ~5,

~6, ~9, ~10 dan ~11. Frekuensi yang

digunakan dalam Arduino Uno untuk

PWM adalah 500Hz (500 siklus

dalam 1 detik). Jadi Arduino Uno bisa

menghidupkan dan mematikan motor

sebanyak 500 kali dalam waktu 1

detik.

Untuk menggunakan PWM, kita bisa

menggunakan fungsi analogWrite().

Nilai yang dimasukan pada fungsi

tersebut yaitu antara 0 – 254. Nilai 0

berarti pulsa yang diberikan untuk

setiap siklus selalu 0 volt, sedangkan

nilai 254 berarti pulsa yang diberikan

selalu bernilai +5 volt.

Sketch:

const int pinLED1=9;

const int pinLED2=10;

void setup()

{

pinMode(pinLED1, OUTPUT);

pinMode(pinLED2, OUTPUT);

analogWrite(pinLED1, 0);

analogWrite(pinLED2, 0);

}

void loop()

{

analogWrite(pinLED1, 100);

analogWrite(pinLED2, 250);

delay(5000);

analogWrite(pinLED1, 250);

analogWrite(pinLED2, 100);

delay(5000);

}

DIGITAL (~PWM)

ANALOG IN

ATMEGA328P-PU1121

~~

~

~~

~

microcontrolandos.blogspot.com

TX

RX

PD

0/R

XD

0P

D1

/TX

D1

PD

2/IN

T0

2P

D3

/IN

T1

3P

D4

/T0

/XC

K4

PD

5/T

15

PD

6/A

IN0

6P

D7

/AIN

17

PB

0/IC

P1

/CL

KO

8P

B1

/OC

1A

9P

B2

/SS

/OC

1B

10

PB

3/M

OS

I/O

C2

A11

PB

4/M

ISO

12

PB

5/S

CK

13

AR

EF

PC

5/A

DC

5/S

CL

A5

PC

4/A

DC

4/S

DA

A4

PC

3/A

DC

3A

3P

C2

/AD

C2

A2

PC

1/A

DC

1A

1P

C0

/AD

C0

A0

RE

SE

T

10

9

9 10

GN

D

GN

D

Page 6: Modul arduino iii

Pelatihan Arduino |ITSC UNIKOM 6

Divisi Hardware UNIKOM 2017

Skema rangkaian: Keterangan:

Agar dapat memahami fungsi dari

PWM maka pada pin A0 yang

difungsikan sebagai pin input

digunakan untuk membaca sensor dari

nilai potensiometer yang dapat

dirubah-ubah dengan range 0 – 1023.

Agar dapat menggerakan aktuator

dalam hal ini motor DC dengan nilai

PWM (0 – 254) maka perlu dilakukan

konversi dari nilai analog (0 – 1023)

menjadi nilai PWM (0 – 254) dengan

menggunakan fungsi map().

Untuk dapat memahami hal tersebut

maka kita dapat menambahkan fungsi

Serial.begin(), Serial.print() dan

Serial.println().

Sketch:

const int pinLED=9;

const int pinPot=A0;

void setup()

{

pinMode(pinLED, OUTPUT);

pinMode(pinPot, INPUT);

analogWrite(pinLED, 0);

}

void loop()

{

int Sensor=analogRead(pinPot);

int temp=map(Sensor,0,1023,0,254);

analogWrite(pinLED, temp);

}

const int pinLED=9;

const int pinPot=A0;

void setup()

{

Serial.begin(9600);

pinMode(pinLED, OUTPUT);

pinMode(pinPot, INPUT);

analogWrite(pinLED, 0);

}

void loop()

{

int Sensor=analogRead(pinPot);

Serial.print("Nilai pinPot = ");

Serial.println(Sensor);

int temp=map(Sensor,0,1023,0,254);

analogWrite(pinLED, temp);

}

DIGITAL (~PWM)

ANALOG IN

ATMEGA328P-PU1121

~~

~

~~

~

microcontrolandos.blogspot.com

TX

RX

PD

0/R

XD

0P

D1

/TX

D1

PD

2/IN

T0

2P

D3

/IN

T1

3P

D4

/T0

/XC

K4

PD

5/T

15

PD

6/A

IN0

6P

D7

/AIN

17

PB

0/IC

P1

/CL

KO

8P

B1

/OC

1A

9P

B2

/SS

/OC

1B

10

PB

3/M

OS

I/O

C2

A11

PB

4/M

ISO

12

PB

5/S

CK

13

AR

EF

PC

5/A

DC

5/S

CL

A5

PC

4/A

DC

4/S

DA

A4

PC

3/A

DC

3A

3P

C2

/AD

C2

A2

PC

1/A

DC

1A

1P

C0

/AD

C0

A0

RE

SE

T

9

A0

9 VC

C

GN

D

GN

D87%

RV1

10k

A0