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
AETC Page 1
MATERI ARDUINO
Rangkaian :
Sketch Program :
void setup() {
pinMode(pinLed, OUTPUT);
void loop() {
digitalWrite(pinLed, HIGH);
delay(1000);
digitalWrite(pinLed, LOW);
delay(1000);
AETC Page 2
MATERI ARDUINO
Rangkaian :
Sketch Program :
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
Rangkaian :
Sketch Program :
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);
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);
Rangkaian :
AETC Page 6
MATERI ARDUINO
Sketch Program :
void setup() {
pinMode(pinBuzz, OUTPUT);
void loop() {
beeb(5,100);
delay(5000);
digitalWrite(pinBuzz, HIGH);
delay(dly);
digitalWrite(pinBuzz, LOW);
delay(dly);
AETC Page 7
MATERI ARDUINO
Rangkaian :
Sketch Program :
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);
Rangkaian :
Sketch Program :
#include <Keypad.h>
char Keys[ROWS][COLS] = {
AETC Page 9
MATERI ARDUINO
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
void setup(){
Serial.begin(9600);
void loop(){
if (customKey){
Serial.println(customKey);
AETC Page 10
MATERI ARDUINO
Membuat fungsi kendali hidup dan mati lampu led dengan tombol
Rangkaian :
Sketch Program :
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
Rangkaian :
Sketch Program :
#include <Keypad.h>
char Keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
AETC Page 13
MATERI ARDUINO
{'*','0','#','D'}
};
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() {
if (customKey){
Serial.println(customKey);
switch(customKey){
switch(mode){
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 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;
void animasi2(){
anim++;
switch(anim){
AETC Page 16
MATERI ARDUINO
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;
void animasi3(){
anim++;
switch(anim){
AETC Page 17
MATERI ARDUINO
void animasi4(){
anim++;
switch(anim){
case 10:LED(0,1,1,1,0,0,0,0,spd);break;
AETC Page 18