Anda di halaman 1dari 18

MATERI ARDUINO

1. MATERI 1 - INPUT DAN OUTPUT DIGITAL

Semua pin pada Arduino, baik pin digital maupun pin analog, dapat digunakan sebagai
pin digital. Digital berarti sinyal yang dikirimkan/diterima bernilai 1 atau 0, on atau off, HIGH
atau LOW, ada atau tidak ada sinyal. Pin digital berarti pin dapat menerima/mengirim sinyal
digital.

Secara umum pin pada Arduino dapat dikonfigurasi ke dalam dua mode, yaitu mode input
dan output. Mode input berarti mengeset pin agar dapat digunakan untuk menerima
masukan sinyal. Mode output berarti mengeset pin agar dapat mengirimkan sinyal.

Untuk mengeset mode pin, kita gunakan fungsi pinMode(). Fungsi ini biasanya dipanggil di
dalam fungsi setup(). fungsi ini memerlukan dua parameter, pinMode([nomorPin], [mode]).
Parameter pertama diisi oleh nomor pin, dan parameter kedua diisi oleh konstanta INPUT
atau OUTPUT, sesuai dengan mode yang ingin kita gunakan

 Digital Input

Pada dasarnya semua pin yang ada pada Arduino berada pada mode input secara
default. Jadi ketika kita ingin menggunakan suatu pin sebagai input, maka kita tidak
mesti menuliskan pinMode(nomorPin, INPUT);.

Untuk menerima input digital yang masuk ke pin, kita gunakan fungsi
digitalRead(nomorPin). Fungsi ini menerima satu parameter, yaitu nomor pin mana yang
akan dibaca nilai inputnya. Fungsi ini akan mengembalikan nilai 1 dan 0, atau HIGH dan
LOW (HIGH adalah konstanta dengan nilai 1 dan LOW adalah konstanta dengan nilai 0).

 Digital Output

Sebenarnya pada bagian pembahasan Digital Input di atas, kita sudah


mempraktekkan digital output. Untuk mengirimkan sinyal digital, kita gunakan fungsi
digitalWrite(nomorPin, nilaiDigital). Fungsi ini dapat digunakan pada pin yang
sebelumnya sudah diset ke mode OUTPUT. Parameter kedua adalah set nilai HIGH atau
LOW. Apabila pin diset dengan nilai HIGH, maka voltase pin tersebut akan diset ke 5V
dan bila pin diset ke LOW, maka voltase pin tersebut akan diset ke 0V.

AETC Page 1
MATERI ARDUINO

1.1 Percobaan 1 - Kendali 1 Led

Menghidupkan dan mematikan sebuah led dengan jeda 1 detik

Rangkaian :

Sketch Program :

const int pinLed = 8;

void setup() {

pinMode(pinLed, OUTPUT);

void loop() {

digitalWrite(pinLed, HIGH);

delay(1000);

digitalWrite(pinLed, LOW);

delay(1000);

AETC Page 2
MATERI ARDUINO

1.2 Percobaan 2 - Kendali 2 Led

Menghidupkan dan mematikan 2 buah led bergantian dengan jeda 1 detik

Rangkaian :

Sketch Program :

const int pinLed1 = 8;

const int pinLed2 = 9;

void setup() {

pinMode(pinLed1, OUTPUT);

pinMode(pinLed2, OUTPUT);

void loop() {

digitalWrite(pinLed1, HIGH);

digitalWrite(pinLed2, LOW);

delay(1000);

digitalWrite(pinLed1, HIGH);

digitalWrite(pinLed2, LOW);

delay(1000);

AETC Page 3
MATERI ARDUINO

1.3 Percobaan 3 - Kendali 8 Led

Membuat pola animasi 8 buah led

Rangkaian :

Sketch Program :

const int pinLed1 = 6;

const int pinLed2 = 7;

const int pinLed3 = 8;

const int pinLed4 = 9;

const int pinLed5 = 10;

const int pinLed6 = 11;

const int pinLed7 = 12;

const int pinLed8 = 13;

int spd = 200;

void setup() {

AETC Page 4
MATERI ARDUINO

pinMode(pinLed1, OUTPUT);

pinMode(pinLed2, OUTPUT);

pinMode(pinLed3, OUTPUT);

pinMode(pinLed4, OUTPUT);

pinMode(pinLed5, OUTPUT);

pinMode(pinLed6, OUTPUT);

pinMode(pinLed7, OUTPUT);

pinMode(pinLed8, OUTPUT);

void loop() {

LED(1,0,0,0,0,0,0,0,spd);

LED(1,1,0,0,0,0,0,0,spd);

LED(1,1,1,0,0,0,0,0,spd);

LED(1,1,1,1,0,0,0,0,spd);

LED(1,1,1,1,1,0,0,0,spd);

LED(1,1,1,1,1,1,0,0,spd);

LED(1,1,1,1,1,1,1,0,spd);

LED(1,1,1,1,1,1,1,1,spd);

LED(0,1,1,1,1,1,1,1,spd);

LED(0,0,1,1,1,1,1,1,spd);

LED(0,0,0,1,1,1,1,1,spd);

LED(0,0,0,0,1,1,1,1,spd);

LED(0,0,0,0,0,1,1,1,spd);

LED(0,0,0,0,0,0,1,1,spd);

LED(0,0,0,0,0,0,0,1,spd);

LED(0,0,0,0,0,0,0,0,spd);

void LED(byte L1,byte L2,byte L3,byte L4,byte L5,byte L6,byte


L7,byte L8,int spd){

digitalWrite(pinLed1, L1);

AETC Page 5
MATERI ARDUINO

digitalWrite(pinLed2, L2);

digitalWrite(pinLed3, L3);

digitalWrite(pinLed4, L4);

digitalWrite(pinLed5, L5);

digitalWrite(pinLed6, L6);

digitalWrite(pinLed7, L7);

digitalWrite(pinLed8, L8);

delay(spd);

1.4 Percobaan 4 - Kendali Buzzer

Membuat fungsi alarm dengan buzzer

Rangkaian :

AETC Page 6
MATERI ARDUINO

Sketch Program :

const int pinBuzz = 13;

void setup() {

pinMode(pinBuzz, OUTPUT);

void loop() {

beeb(5,100);

delay(5000);

void beeb(int jlhBeeb,int dly){

for (int i=0;i<jlhBeeb;i++){

digitalWrite(pinBuzz, HIGH);

delay(dly);

digitalWrite(pinBuzz, LOW);

delay(dly);

AETC Page 7
MATERI ARDUINO

1.5 Percobaan 5 – Baca status tombol

Mendeteksi kondisi tombol di tekan

Rangkaian :

Sketch Program :

const int pinTombol1 = 2;

const int pinTombol2 = 3;

void setup() {

Serial.begin(9600);

pinMode(pinTombol1, INPUT_PULLUP);

pinMode(pinTombol2, INPUT_PULLUP);

void loop() {

if(digitalRead(pinTombol1) == 0){

Serial.println("Tombol 1 di tekan");

if(digitalRead(pinTombol2) == 0){

Serial.println("Tombol 2 di tekan");

AETC Page 8
MATERI ARDUINO

delay(200);

1.6 Percobaan 6 - Baca keypad 4x4

Mendeteksi tombol di tekan pada keypad

Rangkaian :

Sketch Program :

#include <Keypad.h>

const byte ROWS = 4;

const byte COLS = 4;

char Keys[ROWS][COLS] = {

AETC Page 9
MATERI ARDUINO

{'1','2','3','A'},

{'4','5','6','B'},

{'7','8','9','C'},

{'*','0','#','D'}

};

byte rowPins[ROWS] = {9, 8, 7, 6};

byte colPins[COLS] = {5, 4, 3, 2};

Keypad customKeypad = Keypad( makeKeymap(Keys), rowPins,


colPins, ROWS, COLS);

void setup(){

Serial.begin(9600);

void loop(){

char customKey = customKeypad.getKey();

if (customKey){

Serial.println(customKey);

AETC Page 10
MATERI ARDUINO

1.7 Mini Project 1 - Kendali On-Off Led dengan tombol

Membuat fungsi kendali hidup dan mati lampu led dengan tombol

Rangkaian :

Sketch Program :

const int pinTombol1 = 2;

const int pinTombol2 = 3;

const int pinLed1 = 10;

const int pinLed2 = 11;

void setup() {

Serial.begin(9600);

pinMode(pinTombol1, INPUT_PULLUP);

pinMode(pinTombol2, INPUT_PULLUP);

pinMode(pinLed1, OUTPUT);

pinMode(pinLed2, OUTPUT);

AETC Page 11
MATERI ARDUINO

void loop() {

if(digitalRead(pinTombol1) == 0){

Serial.println("Tombol 1 di tekan");

digitalWrite(pinLed1,!digitalRead(pinLed1));

while(digitalRead(pinTombol1) == 0);

if(digitalRead(pinTombol2) == 0){

Serial.println("Tombol 2 di tekan");

digitalWrite(pinLed2,!digitalRead(pinLed2));

while(digitalRead(pinTombol2) == 0);

delay(200);

AETC Page 12
MATERI ARDUINO

1.8 Mini Project 2 - Pilihan animasi led dengan keypad

Membuat system pemilihan animasi led menggunakan keypad

Rangkaian :

Sketch Program :

#include <Keypad.h>

const byte ROWS = 4;

const byte COLS = 4;

char Keys[ROWS][COLS] = {

{'1','2','3','A'},

{'4','5','6','B'},

{'7','8','9','C'},

AETC Page 13
MATERI ARDUINO

{'*','0','#','D'}

};

byte rowPins[ROWS] = {3, 2, A5, A4};

byte colPins[COLS] = {A3, A2, A1, A0};

Keypad customKeypad = Keypad( makeKeymap(Keys), rowPins,


colPins, ROWS, COLS);

const int pinLed1 = 6;

const int pinLed2 = 7;

const int pinLed3 = 8;

const int pinLed4 = 9;

const int pinLed5 = 10;

const int pinLed6 = 11;

const int pinLed7 = 12;

const int pinLed8 = 13;

int spd = 100;

int anim;

int mode;

void setup() {

Serial.begin(9600);

pinMode(pinLed1, OUTPUT);

pinMode(pinLed2, OUTPUT);

pinMode(pinLed3, OUTPUT);

pinMode(pinLed4, OUTPUT);

pinMode(pinLed5, OUTPUT);

pinMode(pinLed6, OUTPUT);

pinMode(pinLed7, OUTPUT);

pinMode(pinLed8, OUTPUT);

AETC Page 14
MATERI ARDUINO

void loop() {

char customKey = customKeypad.getKey();

if (customKey){

Serial.println(customKey);

switch(customKey){

case 'A': mode=0; break;

case 'B': mode=1; break;

case 'C': mode=2; break;

case 'D': mode=3; break;

case '*': spd=100; break;

case '#': spd=200; break;

switch(mode){

case 0: animasi1(); break;

case 1: animasi2(); break;

case 2: animasi3(); break;

case 3: animasi4(); break;

void LED(byte L1,byte L2,byte L3,byte L4,byte L5,byte L6,byte


L7,byte L8,int spd){

digitalWrite(pinLed1, L1);

digitalWrite(pinLed2, L2);

digitalWrite(pinLed3, L3);

digitalWrite(pinLed4, L4);

digitalWrite(pinLed5, L5);

digitalWrite(pinLed6, L6);

AETC Page 15
MATERI ARDUINO

digitalWrite(pinLed7, L7);

digitalWrite(pinLed8, L8);

delay(spd);

void animasi1(){

anim++;

switch(anim){

case 1:LED(1,0,0,0,0,0,0,0,spd); break;

case 2:LED(1,1,0,0,0,0,0,0,spd); break;

case 3:LED(1,1,1,0,0,0,0,0,spd); break;

case 4:LED(1,1,1,1,0,0,0,0,spd); break;

case 5:LED(1,1,1,1,1,0,0,0,spd); break;

case 6:LED(1,1,1,1,1,1,0,0,spd); break;

case 7:LED(1,1,1,1,1,1,1,0,spd); break;

case 8:LED(1,1,1,1,1,1,1,1,spd); break;

case 9:LED(0,1,1,1,1,1,1,1,spd); break;

case 10:LED(0,0,1,1,1,1,1,1,spd);break;

case 11:LED(0,0,0,1,1,1,1,1,spd);break;

case 12:LED(0,0,0,0,1,1,1,1,spd);break;

case 13:LED(0,0,0,0,0,1,1,1,spd);break;

case 14:LED(0,0,0,0,0,0,1,1,spd);break;

case 15:LED(0,0,0,0,0,0,0,1,spd);break;

case 16:LED(0,0,0,0,0,0,0,0,spd);break;

default: anim=0; break;

void animasi2(){

anim++;

switch(anim){

AETC Page 16
MATERI ARDUINO

case 1:LED(1,0,0,0,0,0,0,0,spd); break;

case 2:LED(0,1,0,0,0,0,0,0,spd); break;

case 3:LED(0,0,1,0,0,0,0,0,spd); break;

case 4:LED(0,0,0,1,0,0,0,0,spd); break;

case 5:LED(0,0,0,0,1,0,0,0,spd); break;

case 6:LED(0,0,0,0,0,1,0,0,spd); break;

case 7:LED(0,0,0,0,0,0,1,0,spd); break;

case 8:LED(0,0,0,0,0,0,0,1,spd); break;

case 9:LED(0,0,0,0,0,0,1,0,spd); break;

case 10:LED(0,0,0,0,0,1,0,0,spd);break;

case 11:LED(0,0,0,0,1,0,0,0,spd);break;

case 12:LED(0,0,0,1,0,0,0,0,spd);break;

case 13:LED(0,0,1,0,0,0,0,0,spd);break;

case 14:LED(0,1,0,0,0,0,0,0,spd);break;

default: anim=0; break;

void animasi3(){

anim++;

switch(anim){

case 1:LED(1,0,0,0,0,0,0,1,spd); break;

case 2:LED(0,1,0,0,0,0,1,0,spd); break;

case 3:LED(0,0,1,0,0,1,0,0,spd); break;

case 4:LED(0,0,0,1,1,0,0,0,spd); break;

case 5:LED(0,0,1,0,0,1,0,0,spd); break;

case 6:LED(0,1,0,0,0,0,1,0,spd); break;

default: anim=0; break;

AETC Page 17
MATERI ARDUINO

void animasi4(){

anim++;

switch(anim){

case 1:LED(1,1,1,0,0,0,0,0,spd); break;

case 2:LED(0,1,1,1,0,0,0,0,spd); break;

case 3:LED(0,0,1,1,1,0,0,0,spd); break;

case 4:LED(0,0,0,1,1,1,0,0,spd); break;

case 5:LED(0,0,0,0,1,1,1,0,spd); break;

case 6:LED(0,0,0,0,0,1,1,1,spd); break;

case 7:LED(0,0,0,0,1,1,1,0,spd); break;

case 8:LED(0,0,0,1,1,1,0,0,spd); break;

case 9:LED(0,0,1,1,1,0,0,0,spd); break;

case 10:LED(0,1,1,1,0,0,0,0,spd);break;

default: anim=0; break;

AETC Page 18

Anda mungkin juga menyukai