Dokumen tersebut memberikan penjelasan tentang Arduino IDE (Integrated Development Environment) yang digunakan untuk memprogram board Arduino, serta cara kerja pin-pin digital, analog dan PWM pada board Arduino Uno. Termasuk skema rangkaian dan contoh kode program untuk memahami fungsi setiap pin.
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
Modul arduino iii
1. 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).
2. 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.
3. 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-PU
1121
~
~
~
~
~
~
microcontrolandos.blogspot.com
TX
RXPD0/RXD
0
PD1/TXD
1
PD2/INT0
2
PD3/INT1
3
PD4/T0/XCK
4
PD5/T1
5
PD6/AIN0
6
PD7/AIN1
7
PB0/ICP1/CLKO
8
PB1/OC1A
9
PB2/SS/OC1B
10
PB3/MOSI/OC2A
11
PB4/MISO
12
PB5/SCK
13
AREF
PC5/ADC5/SCL
A5
PC4/ADC4/SDA
A4
PC3/ADC3
A3
PC2/ADC2
A2
PC1/ADC1
A1
PC0/ADC0
A0
RESET
4. 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-PU
1121
~
~
~
~
~
~
microcontrolandos.blogspot.com
TX
RXPD0/RXD
0
PD1/TXD
1
PD2/INT0
2
PD3/INT1
3
PD4/T0/XCK
4
PD5/T1
5
PD6/AIN0
6
PD7/AIN1
7
PB0/ICP1/CLKO
8
PB1/OC1A
9
PB2/SS/OC1B
10
PB3/MOSI/OC2A
11
PB4/MISO
12
PB5/SCK
13
AREF
PC5/ADC5/SCL
A5
PC4/ADC4/SDA
A4
PC3/ADC3
A3
PC2/ADC2
A2
PC1/ADC1
A1
PC0/ADC0
A0
RESET
A1
A0
A0
A1
GND
GND
5. 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-PU
1121
~
~
~
~
~
~
microcontrolandos.blogspot.com
TX
RXPD0/RXD
0
PD1/TXD
1
PD2/INT0
2
PD3/INT1
3
PD4/T0/XCK
4
PD5/T1
5
PD6/AIN0
6
PD7/AIN1
7
PB0/ICP1/CLKO
8
PB1/OC1A
9
PB2/SS/OC1B
10
PB3/MOSI/OC2A
11
PB4/MISO
12
PB5/SCK
13
AREF
PC5/ADC5/SCL
A5
PC4/ADC4/SDA
A4
PC3/ADC3
A3
PC2/ADC2
A2
PC1/ADC1
A1
PC0/ADC0
A0
RESET
10
9
9
10
GND
GND
6. 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-PU
1121
~
~
~
~
~
~
microcontrolandos.blogspot.com
TX
RXPD0/RXD
0
PD1/TXD
1
PD2/INT0
2
PD3/INT1
3
PD4/T0/XCK
4
PD5/T1
5
PD6/AIN0
6
PD7/AIN1
7
PB0/ICP1/CLKO
8
PB1/OC1A
9
PB2/SS/OC1B
10
PB3/MOSI/OC2A
11
PB4/MISO
12
PB5/SCK
13
AREF
PC5/ADC5/SCL
A5
PC4/ADC4/SDA
A4
PC3/ADC3
A3
PC2/ADC2
A2
PC1/ADC1
A1
PC0/ADC0
A0
RESET
9
A0
9
VCC
GND
GND87%
RV1
10k
A0