ARD - Output Digital dan Analog

Output Digital

Output digital hanya memiliki dua keadaan yaitu 1 dan 0. 1 berarti ada tegangan dan 0 berarti tidak ada tegangan. Untuk mengatur suatu pin menjadi output syntax-nya adalah sebagai berikut:

pinMode(pin, OUTPUT);

Syntax tersebut harus diletakan pada bagian void setup. Sebagai contoh kita akan mengatur pin 13 sebagai output maka syntax-nya adalah sebagai berikut

pinMode(13, OUTPUT);

Mengatur Output Digital

Untuk mengatur pin yang kita atur mengeluarkan logika satu atau nol syntax-nya adalah sebagai berikut

//membuat output mengeluarkan logika 1
digitalWrite(13, HIGH); //cara 1
digitalWrite(13, 1); //cara 2

//membuat output mengeluarkan logika 0
digitalWrite(13, LOW); //cara 1
digitalWrite(13, 0); //cara 2

Output Analog

Output analog memiliki keluaran yang bervariasi bergantung resolusi PWM yang dimiliki mikrokontroler. Pada Arduino Uno dan ESP32, resolusi PWM yang dimiliki yaitu 8 bit yang artinya output analog mampu mengeluarkan 2 pangkat 8 variasi yaitu 256 variasi. Mulai dari 0 sampai 255.

Untuk mengatur suatu pin menjadi output analog syntax sama dengan mengatur pin menjadi output digital yaitu sebagai berikut:

pinMode(pin, OUTPUT);

Syntax tersebut harus diletakan pada bagian void setup. Tidak semua pin pada Arduino Uno support PWM. pin yang support PWM ditandai dengan tanda tilde (~) di samping nomor pin nya.

Sebagai contoh kita akan mengatur pin3 sebagai output analog maka syntax-nya adalah sebagai berikut

pinMode(3, OUTPUT);

Mengatur Output Analog

Untuk mengatur nilai output dari output analog syntax-nya adalah sebagai berikut

analogWrite(pin, nilaiAnalog);

sebagai contoh kita akan mengatur pin 3 mengeluarkan nilai analog 200 maka programnya adalah sebagai berikut:

analogWrite(3, 200);

Contoh Rangkaian: Dimming LED

Dimming LED pada Arduino.png

Program:

const int ledPin = 9;  

void setup() {
  // mengatur pin 9 sebagai output
  pinMode(ledPin, OUTPUT);
}

void loop(){
  // menaikan kecerahan LED
  for(int nilaiAnalog = 0; nilaiAnalog <= 255; nilaiAnalog++){   
    analogWrite(ledPin, nilaiAnalog);
    delay(15);
  }

  // menurunkan kecerahan LED
  for(int nilaiAnalog = 255; nilaiAnalog >= 0; nilaiAnalog--){
    // changing the LED brightness with PWM
    analogWrite(ledPin, nilaiAnalog);
    delay(15);
  }
}

Kondisi awal LED adalah padam (nilai analog = 0) dan perlahan akan mulai menyala dan semakin terang. Setalah pada kondisi paling terang LED akan perlahan mulai redup hingga pada kondisi padam dan berulang seperti itu.