CAPAIAN PEMBELAJARAN
KEBUTUHAN ALAT/BAHAN/SOFTWARE
DASAR TEORI
Pin input/output digital pada Arduino sebanyak 14 pin yang diberi nomor 0 s/d
13 , yang masing-masingnya harus dikonfigurasi apakah menjadi input atau
output. Input/Output 0 dan 1 juga digunakan untuk komunikasi serial pin 0=RX
dan pin 1=TX. input/output 13 juga dihubungkan dengan LED pada board
Arduino. Pengkonfigurasian dilakukan pada saat awal program dijalankan dan
umumnya tidak berubah selama dijalankan. Letak pin input dan output
diperlihatkan pada Gambar 1.
Gambar 1. Nomor Pin Digital
1. pinMode(noPin, mode)
noPin = nomor Pin Digital (0 s/d 13) yang akan diatur modenya.
2. digitalWrite(noPin, logika)
noPin= nomor Pin Digital (0 s/d 13) yang akan ditulis (output).
3. digitalRead(noPin)
noPin= nomor Pin Digital (0 s/d 13) yang akan dibaca.
Langkah 2,
Contoh:
Nomor Pin juga dapat dideklarasikan sebagai variabel atau konstanta. Deklarasi
konstanta lebih disarankan karena tidak membutuhkan memori RAM.
Contoh:
void setup()
{
pinMode(LED0,OUTPUT); //pengaturan pin menjadi keluaran
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
}
void loop()
{
digitalWrite(LED0,HIGH);//mengeluarkan data 1 ke keluaran
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
delay(1000);
digitalWrite(LED0,LOW);
digitalWrite(LED1,LOW);//mengeluarkan data 1 ke keluaran
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
delay(1000);
}
Teknik Kedua:
int LED[4]={2,3,4,5}; //deklarasi pin dengan larik
void setup()
{
int i;
for(i=0;i<4;i++)
{
pinMode(LED[i],OUTPUT); //pengaturan pin menjadi keluaran
}
void loop()
{
int i;
for(i=0;i<4;i++)
{
digitalWrite(LED[i],HIGH);//mengeluarkan data 1 ke
keluaran
}
delay(1000);
for(i=0;i<4;i++)
{
digitalWrite(LED[i],LOW);//mengeluarkan data 1 ke keluaran
}
delay(1000);
}
void loop() {
if(digitalRead(S1)==LOW) {
Serial.println("setelah ditekan");//untuk debugging
while(digitalRead(S1)==LOW);
counter++;
if(counter==4){
counter=0;
}
}
Serial.println(counter); //untuk debugging
tampil(counter);
}
void tampil(unsigned char data)
{
for (int bitke=0;bitke<4; bitke++)
{
if(bitRead(data,bitke)==0)
{
digitalWrite(pinOut[bitke],LOW);
}
else
{
digitalWrite(pinOut[bitke],HIGH);
}
}
}
LATIHAN
TUGAS
REFERENSI