Dasar Pemrograman IO Arduino
Dasar Pemrograman IO Arduino
A. Tujuan:
Setelah belajar siswa dapat:
1. Melakukan instalasi software Arduino IDE.
2. Mengetahui fungsi port pada arduino.
3. Melakukan pemrograman led.
4. Melakukan pemrograman push button.
5. Melakukan pemrograman lcd.
6. Melakukan pemrograman ADC.
7. Melakukan pemrograman motor DC.
8. Melakukan pemrograman sensor ultrasonik.
B. Materi
Fitur Arduino:
Microcontroller : ATmega328
Tegangan Operasi : 5 V
Tegangan Input : 7 – 12V
Digital I/O : 14 pin
PWM : 6 channel
Analog Input : 6 channel
16 MHz Clock
Stucture pada pemrograman arduino sangat sederhana hanya terdiri dari dua
bagian:
void setup
{
//statement Setup dijalankan sekali
} dalam program, sedangkan
loop dilakukan berulang -
ulang
void loop
{
//statement
}
void setup(){
pinMode(13, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, INPUT);
void loop()
{
digitalWrite(2,HIGH);
digitalWrite(3 HIGH);
digitalWrire(4, HIGH);
digitalWrite(13,LOW); //menyalakan lampu
delay(1000);
digitalWrite(2,LOW);
digitalWrite(3 LOW
digitalWrire(4, LOW);
digitalWrite(13,LOW); //mematikan lampu
delay(1000);
}
Curly Brace Mendefinisikan awal dan akhir dari blok sebuah fungsi.
//statement
/*
statement
statement
*/
Dalam melakukan pemrograman arduino yang kita lakukan pertama kali adalah
menentukan objek yang akan kita program berupa Input atau Output. Lampu led
adalah katagori output.
void setup(){
pinMode(3, OUTPUT); //setting pin +LED
pinMode(4, OUTPUT); //setting pin - LED
void loop(){
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
void setup(){
void loop(){
void setup(){
pinMode(A1, INPUT);
pinMode(3, OUTPUT); //setting pin +LED
pinMode(4, OUTPUT); //setting pin - LED
digitalWrite(button, HIGH);
}
void loop(){
else{
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
4. Display LCD
#include <LiquidCrystal.h>
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
5. Program ADC
include <LiquidCrystal.h>
int data;
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
pinMode(A0, INPUT);
}
void(loop){
data=analogRead(A0);
lcd.Setcursor(0,0);
lcd.print(data);
delay(100);
lcd.clear();
}
int pin1=3;
int pin2=4;
void setup(){
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
}
void loop(){
int pin1=9;
int pin2=10;
void setup(){
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
}
void loop(){
void setup() {
Serial.begin (9600); //inisialiasasi komunikasi serial
//deklarasi pin
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT);
}
void loop() {
/* Berikut siklus trigPin atau echo pin yang digunakan
untuk menentukan jarak objek terdekat dengan memantulkan
gelombang suara dari itu. */
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//perhitungan untuk dijadikan jarak
distance = duration/58.2;
Serial.println(distance);
AREF
Lampiran Skematik
13
PB5/SCK
12
PB4/MISO
RESET 11
AREF ~PB3/MOSI/OC2A
10
1121
~PB3/MOSI/OC2A 7
10 PD7/AIN1
APK-TECH | techno-apk.blogspot.com
D1
~ PB2/SS/OC1B 6
9 A0 ~ PD6/AIN0
~ PB1/OC1A PC0/ADC0 5
8 A1 ~ PD5/T1
ATMEGA328P-PU
PB0/ICP1/CLKO PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
1121
A3 ~ PD3/INT1
ANALOG IN
7 PC3/ADC3 2
PD7/AIN1
APK-TECH | techno-apk.blogspot.com
A4 PD2/INT0
D1
6 PC4/ADC4/SDA 1
390
DIGITAL (~PWM)
A0 A5 TX PD1/TXD
R1
~ PD6/AIN0 PC5/ADC5/SCL
PC0/ADC0 5 0
A1 ~ PD5/T1 RX PD0/RXD
ATMEGA328P-PU
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
ANALOG IN
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
390
R1
DIGITAL (~PWM)
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
www.fastrobotic.com
DUINO1
ARDUINO UNO R3
DUINO1
ARDUINO UNO R3
Page 9
3. Display LCD dan ADC
2
LCD1
VDD
3
VEE
R1 2.2k
4
RS
5
RW
6
E
AREF 7
D0
13 8
PB5/SCK D1
12 9
PB4/MISO D2
RESET 11 10
~PB3/MOSI/OC2A D3
10 11
~ PB2/SS/OC1B D4
50% 12
www.fastrobotic.com
9 D5
~ PB1/OC1A 13
8 D6
50k
PB0/ICP1/CLKO 14
D7
1121
RV1
7
PD7/AIN1
APK-TECH | techno-apk.blogspot.com
6
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ATMEGA328P-PU ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
ANALOG IN
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
DIGITAL (~PWM)
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
DUINO1
Page 10
ARDUINO UNO R3
4. Program Motor DC
9 4 U1
5
IN1 VCC VS
7 2
IN2 OUT1
10
IN3
12 3
13
12
11
10
IN4 OUT2
9
8
7
6
5
4
3
2
1
0
6
ENA
11 13
DUINO1 ENB OUT3
PB5/SCK
PD4/T0/XCK
PB0/ICP1/CLKO
AREF
TX PD1/TXD
RX PD0/RXD
PD7/AIN1
~ PD6/AIN0
PD5/T1
~ PD3/INT1
PD2/INT0
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB4/MISO
ARDUINO UNO
1 R3 14
SENSA OUT4
15
~ SENSB GND
8 L298
DIGITAL (~PWM)
ATMEGA328P-PU
1121
APK-TECH | techno-apk.blogspot.com
PC4/ADC4/SDA
PC5/ADC5/SCL
ANALOG IN
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
RESET
A0
A1
A2
A3
A4
A5
***Salam Robotika***