100% menganggap dokumen ini bermanfaat (2 suara)
353 tayangan

Arduino

Dokumen ini memberikan panduan singkat tentang latihan pemrograman Arduino yang mencakup penggunaan LED dan tombol, LCD, keypad, ADC, PWM, serial, dan seven segment. Terdapat penjelasan fungsi pinMode(), digitalWrite(), digitalRead() dan delay() beserta contoh kode programnya.

Diunggah oleh

Anton
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (2 suara)
353 tayangan

Arduino

Dokumen ini memberikan panduan singkat tentang latihan pemrograman Arduino yang mencakup penggunaan LED dan tombol, LCD, keypad, ADC, PWM, serial, dan seven segment. Terdapat penjelasan fungsi pinMode(), digitalWrite(), digitalRead() dan delay() beserta contoh kode programnya.

Diunggah oleh

Anton
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 26

ARDUINO

TRAINING ARDUINO II
Latihan Pemrograman Arduino

Agus Supanto
085716068353
E-mail : [email protected]
Latihan
Pemrograman
Arduino

1. Led dan Button


2. LCD
3. Keypad
4. ADC
5. PWM
6. Serial
7. Seven Segment
Led dan Button
ARDUINO UNO

APK-TECH | techno-apk.blogspot.com

AREF LED
13
R1
PB5/SCK
12
PB4/MISO 470
RESET 11 LED-RED
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9 R2
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121

10k
DIGITAL (~PWM)
7
ANALOG IN

PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

ARDUINO UNO R3
Dasar Pemrograman I/O
 pinMode()
pinMode digunakan untuk mengkonfigurasi PIN secara spesifik sebagai
INPUT/OUTPUT.
Syntax : pinMode( [pin],[mode] )
[pin] = nomor PIN
[mode] = INPUT atau OUTPUT
Contoh :
pinMode(13,OUTPUT)//PIN 13 berfungsi sebagai OUTPUT
pinMode(10,INPUT) //PIN 10 berfungsi sebagai INPUT
*) Ditulis di dalam void setup().

 digitalWrite()
digitalWrite digunakan untuk memberikan nilai (logika) pada PIN.
Syntax : digitalWrite( [pin],[logika] )
[pin] = nomor PIN
[logika] = HIGH atau LOW
Contoh :
digitalWrite(13, HIGH)//Memberi logika HIGH pada PIN 13

 digitalRead()
digitalRead digunakan untuk membaca nilai ( HIGH atau LOW ) dari PIN.
Syntax : digitalRead( [pin] )
[pin] = nomor PIN
Program Nyala Led

ARDUINO UNO

APK-TECH | techno-apk.blogspot.com
AREF LED
13
R1
PB5/SCK
12
PB4/MISO 470
RESET 11 LED-RED
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9 R2
~ PB1/OC1A
8
PB0/ICP1/CLKO

ATMEGA328P-PU
1121
10k

DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

ARDUINO UNO R3
Program Button

Jika Tombol ditekan maka Led akan Nyala


Pemrograman Delay

 delay()
delay atau jeda digunakan untuk menghentikan program dalam jumlah
waktu tertentu / sesuai dengan nilai yang tertulis dalam
parameternya, dengan satuan waktu dalam milidetik.
Syntax : delay( [value] )
[value] = nilai parameter
Contoh :
delay(1000)//program akan berhenti selama 1000 milidetik

 delayMicroseconds()
delayMicroseconds sama dengan delay hanya saja satuan waktunya
dalam mikrodetik.
Syntax : delay( [value] )
[value] = nilai parameter
Contoh :
delayMicroseconds(1000)//program akan berhenti selama 1000
mikrodetik
Program Blink

Led akan Nyala Mati setiap 1 detik


LCD 16x2

ARDUINO UNO LCD 16X2


LM016L

APK-TECH | techno-apk.blogspot.com

AREF

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
13
PB5/SCK
12
PB4/MISO

1
2
3

4
5
6

7
8
9
10
11
12
13
14
RESET 11
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121

DIGITAL (~PWM)

7
ANALOG IN

PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

ARDUINO UNO R3
Dasar Pemrograman LCD
#include <LiquidCrystal.h>// menginputkan library LiquidCrystal.h
LiquidCrystal lcd(5,4,3,2,1,0)//Rs,En,D4,D5,D6,D7(mendeklarasikan pin lcd)
 lcd.begin()
lcd.begin digunakan untuk menginisialisasi jumlah kolom dan jumlah baris
dari lcd.
Syntax : lcd.begin( [kolom],[baris] )
Contoh : lcd.begin(16,2) //LCD dengan 16 Kolom dan 2 Baris
*) Ditulis di dalam void setup().
 lcd.setCursor()
lcd.setCursor digunakan untuk menentukan posisi awal penulisan di lcd.
Syntax : lcd.setCursor( [x],[y] )
[x] = nomor Kolom [y] = nomor Baris
Contoh : lcd.setCursor(2,1) //Penulisan dimulai dari Kolom 2 dan Baris 1
 lcd.Print()
lcd.print digunakan untuk menampilkan karakter (string) pada lcd.
Syntax : lcd.print(“[karakter/string]”)
Contoh : lcd.print(“TES LCD”) //lcd akan menampilkan TES LCD
 lcd.clear()
lcd.clear digunakan untuk membersihkan tampilan pada lcd.
Syntax : lcd.clear()
 lcd.write()
lcd.write digunakan untuk menampilkan satu karakter.
Syntax : lcd.write(„[char]‟) contoh : lcd.write(„A‟)
Program LCD

ARDUINO UNO LCD 16X2


LM016L

APK-TECH | techno-apk.blogspot.com
AREF

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
13
PB5/SCK
12
PB4/MISO

1
2
3

4
5
6

7
8
9
10
11
12
13
14
RESET 11
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121

DIGITAL (~PWM)
7
ANALOG IN

PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

ARDUINO UNO R3
Keypad
ARDUINO UNO LCD 16X2
LM016L

APK-TECH | techno-apk.blogspot.com AREF

VDD
VSS

VEE

RW
13

RS

D0
D1
D2
D3
D4
D5
D6
D7
PB5/SCK

E
12
PB4/MISO R4
RESET 11
~PB3/MOSI/OC2A R3

1
2
3

4
5
6

7
8
9
10
11
12
13
14
10
~ PB2/SS/OC1B R2
9
~ PB1/OC1A R1
8
PB0/ICP1/CLKO C3
ATMEGA328P-PU
1121

DIGITAL (~PWM)
7
ANALOG IN

PD7/AIN1 C2
6
A0 ~ PD6/AIN0 C1
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

C1

C2

C3
ARDUINO UNO R3

3
R1 A 1 2 3
R2 B 4 5 6
R3 C 7 8 9
R3 D 0 #
Pemrogramman Keypad

Pengetahuan Dasar yang Dibutuhkan


 Pembuatan Variable
 Pemrograman Input / Output
 Pemrograman Delay
 Pemrograman LCD
 Alias (#define)
 Function

Langkah-langkah Pembuatan Program Keypad


1. Membuat alias (#dafine) dari Pin-pin yang akan
digunakan
2. Membuat Function Penekanan Keypad
3. Menginisialisasi LCD dan Pin-pin yang digunakan
4. Membuat Program Utama
ADC

ARDUINO UNO LCD 16X2


LM016L

APK-TECH | techno-apk.blogspot.com
AREF

VDD
VSS

VEE

RW
13

RS

D0
D1
D2
D3
D4
D5
D6
D7
PB5/SCK

E
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A

1
2
3

4
5
6

7
8
9
10
11
12
13
14
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
RVARIABLE PB0/ICP1/CLKO
ATMEGA328P-PU
1121

DIGITAL (~PWM)
7
ANALOG IN

PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
53%

A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
1k PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

ARDUINO UNO R3
Dasar Pemrograman ADC

 analogRead()
analogRead digunakan untuk membaca nilai dari PIN analog.
Syntax : analogRead( [pin] )
[pin] = nomor PIN Analog
Contoh :
analogRead(A1) //Membaca nilai Analog pada PIN A1
Program ADC

ARDUINO UNO LCD 16X2


LM016L

APK-TECH | techno-apk.blogspot.com
AREF

VDD
VSS

VEE

RW
13

RS

D0
D1
D2
D3
D4
D5
D6
D7
PB5/SCK

E
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A

1
2
3

4
5
6

7
8
9
10
11
12
13
14
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
RVARIABLE PB0/ICP1/CLKO
ATMEGA328P-PU
1121

DIGITAL (~PWM) 7
ANALOG IN

PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
52%

A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
1k PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

ARDUINO UNO R3
PWM

ARDUINO UNO

APK-TECH | techno-apk.blogspot.com
AREF

PB5/SCK
13 R1
12 470
PB4/MISO
RESET 11
~PB3/MOSI/OC2A
10 D?
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
RVARIABLE PB0/ICP1/CLKO

ATMEGA328P-PU
1121
LED-RED

DIGITAL (~PWM)
7
ANALOG IN

PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
40%

A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
1k PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

ARDUINO UNO R3
Dasar Pemrograman PWM

 analogWrite()
analogWrite digunakan untuk mengeluarkan sinyal analog PWM (Pada
Arduino UNO nilai sinyal PWM dari 0-255).
Syntax : analogWrite( [pin],[nilai PWM] )
[pin] = nomor PIN
[nilai PWM] = besarnya PWM
Contoh :
analogWrite(3,255)//menghasilkan PWM 255 di PIN D3
Program PWM

ARDUINO UNO

APK-TECH | techno-apk.blogspot.com
AREF

PB5/SCK
13 R1
12 470
PB4/MISO
RESET 11

Nyala Led
~PB3/MOSI/OC2A
10 D?
~ PB2/SS/OC1B
9
~ PB1/OC1A

Berdasarkan
8
RVARIABLE PB0/ICP1/CLKO

ATMEGA328P-PU
1121
LED-RED

DIGITAL (~PWM)
ANALOG IN 7
PD7/AIN1

Nilai dari
6
A0 ~ PD6/AIN0
PC0/ADC0 5
35%

A1 ~ PD5/T1
PC1/ADC1 4

Variable Resistor
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
1k PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

ARDUINO UNO R3
Serial

ARDUINO UNO

APK-TECH | techno-apk.blogspot.com

AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121

DIGITAL (~PWM)

7
ANALOG IN

PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK RXD
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0 TXD
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD RTS

CTS
ARDUINO UNO R3

Perangkat Lain (PC, ARduino, Shield, dll)


Dasar Pemrogramman Serial

 Serial.begin()
Serial.begin digunakan untuk menentukan nilai BaudRate.
Syntax : Serial.begin( [nilai baudrate] )
Contoh :
Serial.begin(9600) //Komunikasi Serial dengan baudrate
9600
*) Ditulis di dalam void setup().

 Serial.print()
Serial.print digunakan untuk mengirimkan data string dari Arduino
ke PC atau perangkat lain dengan menggunakan jalur TX (PIN 1).
Syntax : Serial.print(“[data]”)
Contoh :
Serial.print(“Latihan Serial”)

 Serial.println()
Serial.println hampir sama dengan Serial.print, tetapi dalam
pengiriman datanya Serial.println menambahkan karakter ½ Enter pada
setiap akhir data.
Syntax : Serial.println(“[data]”)
Contoh :
Serial.println(“Latihan Serial”)
Dasar Pemrogramman Serial

 Serial.write()
Serial.write digunakan untuk mengirimkan data dalam bentuk biner,
satu byte data dalam setiap pengiriman.

 Serial.available
Serial.available digunakan untuk mendapatkan jumlah karakter atau
byte yang telah diterima oleh serial port.

 Serial.read()
Serial.read digunakan untuk membaca data yang masuk ke Arduino
melalui jalur Rx (PIN 0).
Syntax : [tipe data][variable] = Serial.read()
Contoh :
char Data = Serial.read();
Program Serial
7 SEGMENT

ARDUINO UNO

OUTA2 OUTA1
APK-TECH | techno-apk.blogspot.com

OUTB2 OUTB1
OUTC2 OUTC1
OUTD2 OUTD1
AREF OUTE2 OUTE1
OUTF2 OUTF1
13
PB5/SCK OUTG2 OUTG1
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A U2
10
~ PB2/SS/OC1B
9 7 13
~ PB1/OC1A INA2 A QA OUTA2
8 1 12
PB0/ICP1/CLKO INB2 B QB OUTB2
2 11
ATMEGA328P-PU
1121

DIGITAL (~PWM)

INC2 C QC OUTC2
7 6 10
ANALOG IN

PD7/AIN1 IND2 IND2 D QD OUTD2


6 4 9
A0 ~ PD6/AIN0 INC2 BI/RBO QE OUTE2
PC0/ADC0 5 5 15
A1 ~ PD5/T1 INB2 RBI QF OUTF2
PC1/ADC1 4 3 14
A2 PD4/T0/XCK INA2 LT
U1 QG OUTG2
PC2/ADC2 3
A3 ~ PD3/INT1 IND1
PC3/ADC3 2 7 74LS47 13
A4 PD2/INT0 INC1 INA1 A QA OUTA1
PC4/ADC4/SDA 1 1 12
A5 TX PD1/TXD INB1 INB1 B QB OUTB1
PC5/ADC5/SCL 0 2 11
RX PD0/RXD INA1 INC1 C QC OUTC1
6 10
IND1 D QD OUTD1
4 9
BI/RBO QE OUTE1
ARDUINO UNO R3 5 15
RBI QF OUTF1
3 14
LT QG OUTG1
74LS47
Program 7Segment I

ARDUINO UNO

OUTA2 OUTA1

APK-TECH | techno-apk.blogspot.com
OUTB2 OUTB1
OUTC2 OUTC1
OUTD2 OUTD1
AREF OUTE2 OUTE1
OUTF2 OUTF1
13
PB5/SCK OUTG2 OUTG1
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A U2
10
~ PB2/SS/OC1B
9 7 13
~ PB1/OC1A INA2 A QA OUTA2
8 1 12
PB0/ICP1/CLKO INB2 B QB OUTB2
2 11
ATMEGA328P-PU
1121

DIGITAL (~PWM)
INC2 C QC OUTC2
7 6 10
ANALOG IN

PD7/AIN1 IND2 IND2 D QD OUTD2


6 4 9
A0 ~ PD6/AIN0 INC2 BI/RBO QE OUTE2
PC0/ADC0 5 5 15
A1 ~ PD5/T1 INB2 RBI QF OUTF2
PC1/ADC1 4 3 14
A2 PD4/T0/XCK INA2 LT
U1 QG OUTG2
PC2/ADC2 3
A3 ~ PD3/INT1 IND1
PC3/ADC3 2 7 74LS47 13
A4 PD2/INT0 INC1 INA1 A QA OUTA1
PC4/ADC4/SDA 1 1 12
A5 TX PD1/TXD INB1 INB1 B QB OUTB1
PC5/ADC5/SCL 0 2 11
RX PD0/RXD INA1 INC1 C QC OUTC1
6 10
IND1 D QD OUTD1
4 9
BI/RBO QE OUTE1
ARDUINO UNO R3 5 15
RBI QF OUTF1
3 14
LT QG OUTG1
74LS47
Program 7Segment II

Anda mungkin juga menyukai