Latihan Pemrograman Arduino
Latihan Pemrograman Arduino
TRAINING ARDUINO II
Latihan Pemrograman Arduino
Agus Supanto
085716068353
E-mail : [email protected]
Latihan
Pemrograman
Arduino
1.
2.
3.
4.
5.
6.
7.
ARDUINO UNO R3
1121
ATMEGA328P-PU
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
DIGITAL (~PWM)
ANALOG IN
A0
A1
A2
A3
A4
A5
APK-TECH | techno-apk.blogspot.com
RESET
LED
AREF
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
13
12
11
10
9
8
7
6
5
4
3
2
1
0
R1
470
LED-RED
R2
10k
pinMode()
pinMode digunakan untuk mengkonfigurasi
INPUT/OUTPUT.
Syntax :
pinMode( [pin],[mode] )
[pin]
[mode]
PIN
secara
spesifik
sebagai
= nomor PIN
= INPUT atau OUTPUT
Contoh :
digitalWrite()
digitalWrite digunakan untuk memberikan nilai (logika) pada PIN.
Syntax :
digitalWrite( [pin],[logika] )
[pin]
[logika]
= nomor PIN
= 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
ARDUINO UNO
ARDUINO UNO R3
1121
ATMEGA328P-PU
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
DIGITAL (~PWM)
ANALOG IN
A0
A1
A2
A3
A4
A5
APK-TECH | techno-apk.blogspot.com
RESET
LED
AREF
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
13
12
11
10
9
8
7
6
5
4
3
2
1
0
R1
470
LED-RED
R2
10k
Program Button
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
LCD 16x2
LCD 16X2
ARDUINO UNO
ARDUINO UNO R3
1121
ATMEGA328P-PU
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
7
6
5
4
3
2
1
0
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
RS
RW
E
VSS
VDD
VEE
13
12
11
10
9
8
4
5
6
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
1
2
3
AREF
DIGITAL (~PWM)
ANALOG IN
A0
A1
A2
A3
A4
A5
APK-TECH | techno-apk.blogspot.com
RESET
LM016L
Program LCD
LCD 16X2
ARDUINO UNO
ARDUINO UNO R3
1121
ATMEGA328P-PU
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
7
6
5
4
3
2
1
0
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
RS
RW
E
VSS
VDD
VEE
13
12
11
10
9
8
4
5
6
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
1
2
3
AREF
DIGITAL (~PWM)
ANALOG IN
A0
A1
A2
A3
A4
A5
APK-TECH | techno-apk.blogspot.com
RESET
LM016L
Keypad
ARDUINO UNO
LCD 16X2
LM016L
ARDUINO UNO R3
R1
R2
R3
R3
RS
RW
E
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
1
2
3
C2
C1
4
5
6
VSS
VDD
VEE
7
6
5
4
3
2
1
0
C3
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
R4
R3
R2
R1
C3
C2
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
13
12
11
10
9
8
C1
1121
ATMEGA328P-PU
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
DIGITAL (~PWM)
ANALOG IN
A0
A1
A2
A3
A4
A5
APK-TECH | techno-apk.blogspot.com
RESET
AREF
Pemrogramman Keypad
ADC
ARDUINO UNO
LCD 16X2
LM016L
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
ARDUINO UNO R3
1121
ATMEGA328P-PU
53%
ANALOG IN
1k
A0
A1
A2
A3
A4
A5
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
7
6
5
4
3
2
1
0
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
RS
RW
E
4
5
6
VSS
VDD
VEE
13
12
11
10
9
8
1
2
3
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
DIGITAL (~PWM)
RVARIABLE
APK-TECH | techno-apk.blogspot.com
RESET
AREF
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
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
ARDUINO UNO R3
1121
ATMEGA328P-PU
52%
ANALOG IN
1k
A0
A1
A2
A3
A4
A5
DIGITAL (~PWM)
RVARIABLE
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
7
6
5
4
3
2
1
0
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
RS
RW
E
4
5
6
VSS
VDD
VEE
13
12
11
10
9
8
1
2
3
APK-TECH | techno-apk.blogspot.com
RESET
AREF
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
PWM
ARDUINO UNO
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
ARDUINO UNO R3
1121
ATMEGA328P-PU
40%
ANALOG IN
1k
A0
A1
A2
A3
A4
A5
PB5/SCK
PB4/MISO
PB3/MOSI/OC2A
~
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
DIGITAL (~PWM)
RVARIABLE
APK-TECH | techno-apk.blogspot.com
RESET
AREF
PD7/AIN1
~ PD6/AIN0
~ PD5/T1
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
13
12
11
10
9
8
R1
470
D?
LED-RED
7
6
5
4
3
2
1
0
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
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
ARDUINO UNO R3
1121
ATMEGA328P-PU
35%
ANALOG IN
1k
A0
A1
A2
A3
A4
A5
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
DIGITAL (~PWM)
RVARIABLE
APK-TECH | techno-apk.blogspot.com
Nyala Led
Berdasarkan
Nilai dari
Variable Resistor
RESET
AREF
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
13
12
11
10
9
8
R1
470
D?
LED-RED
7
6
5
4
3
2
1
0
Serial
ARDUINO UNO
ARDUINO UNO R3
1121
ATMEGA328P-PU
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
DIGITAL (~PWM)
ANALOG IN
A0
A1
A2
A3
A4
A5
APK-TECH | techno-apk.blogspot.com
RESET
AREF
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
13
12
11
10
9
8
7
6
5
4
3
2
1
0
RXD
TXD
RTS
CTS
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)
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
melalui jalur Rx (PIN 0).
Syntax : [tipe data][variable] = Serial.read()
Contoh :
char Data = Serial.read();
masuk
ke
Arduino
Program Serial
7 SEGMENT
ARDUINO UNO
ARDUINO UNO R3
1121
ATMEGA328P-PU
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
DIGITAL (~PWM)
ANALOG IN
A0
A1
A2
A3
A4
A5
APK-TECH | techno-apk.blogspot.com
RESET
AREF
PD7/AIN1
~ PD6/AIN0
~ PD5/T1
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
OUTA2
OUTB2
OUTC2
OUTD2
OUTE2
OUTF2
13
OUTG2
12
11
10
9
8
7
6
5
4
3
2
1
0
OUTA1
OUTB1
OUTC1
OUTD1
OUTE1
OUTF1
OUTG1
U2
IND2
INC2
INB2
INA2
IND1
INC1
INB1
INA1
INA2
INB2
INC2
IND2
INA1
INB1
INC1
IND1
7
1
2
6
4
5
3
A
B
C
D
BI/RBO
RBI
LT
U1
QA
QB
QC
QD
QE
QF
QG
7 74LS47
A
1
B
2
C
6
D
4
BI/RBO
5
RBI
3
LT
QA
QB
QC
QD
QE
QF
QG
74LS47
13
12
11
10
9
15
14
13
12
11
10
9
15
14
OUTA2
OUTB2
OUTC2
OUTD2
OUTE2
OUTF2
OUTG2
OUTA1
OUTB1
OUTC1
OUTD1
OUTE1
OUTF1
OUTG1
Program 7Segment I
ARDUINO UNO
ARDUINO UNO R3
1121
ATMEGA328P-PU
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
DIGITAL (~PWM)
ANALOG IN
A0
A1
A2
A3
A4
A5
APK-TECH | techno-apk.blogspot.com
RESET
AREF
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
PD7/AIN1
~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
OUTA2
OUTB2
OUTC2
OUTD2
OUTE2
OUTF2
13
OUTG2
12
11
10
9
8
7
6
5
4
3
2
1
0
OUTA1
OUTB1
OUTC1
OUTD1
OUTE1
OUTF1
OUTG1
U2
IND2
INC2
INB2
INA2
IND1
INC1
INB1
INA1
INA2
INB2
INC2
IND2
INA1
INB1
INC1
IND1
7
1
2
6
4
5
3
7
1
2
6
4
5
3
A
B
C
D
BI/RBO
RBI
LT
U1
QA
QB
QC
QD
QE
QF
QG
74LS47
A
B
C
D
BI/RBO
RBI
LT
QA
QB
QC
QD
QE
QF
QG
74LS47
13
12
11
10
9
15
14
13
12
11
10
9
15
14
OUTA2
OUTB2
OUTC2
OUTD2
OUTE2
OUTF2
OUTG2
OUTA1
OUTB1
OUTC1
OUTD1
OUTE1
OUTF1
OUTG1
Program 7Segment II