ARD - Input Pada Arduino IDE

Input adalah sinyal yang masuk ke perangkat mikrokontroler yang berasal dari komponen lain. Terdapat dua jenis input yaitu input digital dan input analog.

Input Digital

STOP DULU!

Sebelum bisa memahami Input Push Button pada Arduino silakan pahami dulu tentang ELC - Push Button<--click.

Input digital adalah sinyal yang hanya memiliki dua keadaan yaitu HIGH (1) atau LOW (0). Komponen yang biasa digunkaan untuk input adalah ELC - Push Button, sensor cahaya sederhana (yang menghasilkan output HIGH atau LOW), dan output dari sirkuit digital lainnya.

Mengatur Pin Sebagai Input

Untuk mengatur suatu pin sebagai input syntax-nya adalah

pinMode(pin, INPUT); //external pull_up
pinMode(pin, INPUT_PULLUP); //internal_pull_up

Contoh:

//pada void setup
pinMode(5, INPUT); //mengatur pin 5 sebagai input dengan eksternal pull up
pinMode(6, INPUT_PULLUP); //mengatur pin 6 sebagai input dengan internal pull up

Tips

Jika rangkaian yang digunakan bukan pull-down atau pull-up maka pada pengaturan pin arduino bisa menggunakan INPUT_PULLUP.

Jika rangkaian menggunakan pull-up atau pull-down maka pada pengaturan pin arduino cukup menggunakan INPUT saja.

Membaca Kondisi Input

Untuk membaca kondisi dari suatu input, syntax yang bisa digunakan adalah

digitalRead(pin);

Biasanya nilai dari digitalRead tersebut dimasukan ke dalam Variable lalu nilai tersebut digunakan pada bagian program lainnya seperti ARD - Instruksi If. Contohnya adalah

bool kondisiTombol=0;

void setup(){
pinMode(2, INPUT_PULLUP);
pinMode(4, OUTPUT);
}

void loop(){
kondisiTombol = digitalRead(2);
if (kondisiTombol==0){
	digitalWrite(4, 1);
}else{
	digitalWrite(4, 0);
}
}

Contoh Rangkaian: Menyalakan LED Dengan Menggunakan Push Button

Rangkaian

Rangkaian simple push button.png

Keterangan:

  1. Push button yang digunakan adalah jenis NO

  2. Pin pertama Push button dihubungkan ke pin 2 arduino sedangkan pin push button lainnya di hubungkan ke pin GND. Oleh karena itu jika push button ditekan maka pin 2 arduino akan terhubung ke GND sehingga mendapatkan logika 0.

Program Arduino

#define PBPin 2                   //membuat makro bernama PBPin berisi 2
#define LEDPin 13                 //membuat makro bernama LEDPin berisi 13
void setup(){
  pinMode(PBPin, INPUT_PULLUP);
  pinMode(LEDPin, OUTPUT);
}

void loop()
{
  int bacaPB = digitalRead(PBPin); // membuat variable berisi kondisi PB
  if (bacaPB == 0){                //syarat
    digitalWrite(LEDPin, HIGH);    //jika syarat True maka dikerjakan
  }else{                           //selain itu
    digitalWrite(LEDPin, LOW);     //jika syarat False maka dikerjakan
  }
  delay(10);
}

Untuk materi kelas X E4 cukup tulis sampai sini saja.

Input Analog

Input analog adalah input yang akan memberikan masukan nilai yang bervariasi tergantung kemampuan dari suatu mikrokontroler. Berbeda dengan input digital yang hanya memberikan dua variasi masukan yaitu 1 dan 0, input analog dengan kemampuan 8 bit bisa memberikan input sebanyak 2 pangkat 8 variasi yaitu 256 variasi. Mulai dari 0 sampai 255. Sedangkan input analog dengan kemampuan 10 bit bisa memberikan 2 pangkat 10 variasi yaitu 1024 mulai dari 0 hingga 1023.

Pada Arduino Uno terdapat 6 input analog yaitu A0 - A5 sedangkat pada ESP32 18 pin dengan resolusi 12 bit (0-4095) yaitu

PERHATIAN

ADC2 tidak bisa digunakan sebagai ADC jika kita menggunakan fitur Wifi. Gunakan ADC 1 jika ingin menggunakan ADC bersamaan dengan fitur Wifi.

Pada arduino IDE kita tidak perlu mengatur suatu pin sebagai input analog pada void setup.

Membaca Input Analog

Syntax yang digunakan untuk membaca input analog adalah sebagai berikut

analogRead(pin);

Biasanya nilai yang dibaca dimasukan ke dalam variable sehingga contohnya seperti berikut

//pin A0 dihubungkan ke input analog, dibaca nilainya dan dimasukan ke variable nilaiSensor
nilaiSensor = analogRead(A0); 

Contoh Rangkaian: Memunculkan Nilai Analog Pada Serial Monitor

Input Analog pada Arduino.png

int nilaiPotensio=0; //membuat variable untuk menyimpan nilai analog

void setup(){
Serial.begin(9600);
}

void loop(){
nilaiPotensio = analogRead(A0); //membaca nilai analog dan menyimpan
Serial.print("Nilai Potensio:");
Serial.println(nilaiPotensio); //memunculkan nilai analog
delay(100);
}