Chapter #3 Input & Output pada Arduino (Digital & Analog pin)

Chapter #3 Input & Output pada Arduino (Digital & Analog pin)

Table of Contents

  1. Thinkercad
  2. Hello World
  3. Digital Pin
  4. Analog Pin
  5. Serial Monitor

Simulasi-Arduino

Pada kesempatan belajar ini, saya akan menggunakan platfom thinkercad, kurang lebih hasilnya akan sama jika menggunakan board arduino. mohon untuk perhatikan pada chapter #1 tentang minimum pengetahuan untuk elektronikanya.

thinkercad.jpg

Hello-World

Hello world dalam bahasa pemrograman berarti hal awal yang dilakukan untuk memulai sebuah perjalanan. Maka, hello world dalam arduino merupakan sebuah program blik led. berikut kodenya :

void setup() {                
  pinMode(13, OUTPUT);       //setup pin 13 sebagai output
}

void loop() {
  digitalWrite(13, HIGH);    // Menyalakan LED (HIGH outputs 5V)
  delay(500);                 // delay / tunggu 500 millisecond (**1 detik adalah 1000 ms** )
  digitalWrite(13, LOW);     // Mematikan LED (LOW outputs 0V)
  delay(500);                 // tunggu delay
}

helloworld

Program struktur pada arduino ide

  • Indentasi, yaitu urutan syntax baris atas dan bawah, untuk membuat fungsi baru dapat menggunakan TAB, dan untuk menyetarakan baris dapat menggunakan SHIFT+TAB
    {
    ini indent atas;
        ini indent bawah;
    }
    
  • Nested level, atau level bracket, harus sama dengan atasnya
    void main(){
       if(){
       }
    }
    
  • Arduino menggunakan semicolon untuk mengakhiri sebuah statement (;)
    int a = 1;
    
    Data type pada arduino diperhatikan untuk membuat sebuah variabel dan besar sebuah variable. datatype

Digital-pin

Sebelumnya kita sudah membahas terkait digital pin yang memiliki nilai 1/0 atau 5V/0V. berikut adalah contoh dari penerapannya dalam membuat tombol untuk menyalakan lampu led.

int buttonPin = 2;
int ledPin = 3;

void setup() {
  pinMode(ledPin, OUTPUT);                  
  pinMode(buttonPin, INPUT_PULLUP); //pull up akan memberikan logika 1 pada keadan normal/awal
}

void loop() {
 //membuat variabel buttonState untuk mengetahui state event dari button
  int buttonState = digitalRead(buttonPin);
 //maka nilai buttonState akan dibaca sebagai nilai 1/0
  digitalWrite(ledPin, buttonState);
}

digital

Analog-pin

Sebelumnya kita sudah membahas terkait analog pin yang memiliki sebuah nilai tegangan yaitu 0-5V, barikut adalah contoh penerapan dari penggunaan analog pin menggunakan potensiometer untuk mengontrol delay dari lampu led.

//deklarasi pin yang digunakan
int ledPin = 3;
int potPin = A0;

void setup() {
  // setup pin mode
  pinMode(ledPin, OUTPUT);                  
  pinMode(potPin, INPUT);
}

void loop() {
  // membaca nilai dari analogpin (0-1024)
  int potValue = analogRead(potPin);

  // membuat delay sesuai nilai potensiometer
  digitalWrite(ledPin, HIGH);
  delay(potValue);

  // membaca ulang untuk mengatur delay mati
  potValue = analogRead(potPin);

  digitalWrite(ledPin, LOW);
  delay(potValue);
}

analog dengan mengganti isi dari fungsi loop() menjadi berikut, akan mengubah fungsi potensiometer sebagai dimmer lampu (terang-redup led)

void loop() {
  // membaca potensiometer dan mengecilkan resolusinya
  int potValue = analogRead(potPin) / 4; 

  // menyalakan led dengan nilai potensiometer
  analogWrite(ledPin, potValue);
}

analog

Serial-Monitor

Serial monitor digunakan untuk melihat nilai dari sebuah program yang berjalan, komputer yang memiliki fungsi serial didalamnya dapat berkomunikasi dengan arduino ide, kalau begitu mari kita printout hasil dari program yang telah kita buat sebelumnya. (oh iya saya pakai serial monitor thinkercad yaa)

  • untuk memulainya harus memasukan fungsi Serial.begin(baudrate); pada void setup(){} //baudrate biasanya bernilai 9600 /115200 tergantung dari boardnya
  • untuk print out nilai harus menggunakan fungsi Serial.print(variabel);
  • untuk print pada baris baru harus menggunakan Serial.println(variabel); berikut adalah programnya
//deklarasikan pin
int ledPin = 3;
int buttonPin = 2;
int potPin = A0;

void setup() {
  // setup pin mode
  pinMode(ledPin, OUTPUT); //led pin sebagai output
  pinMode(buttonPin, INPUT_PULLUP);             
  pinMode(potPin, INPUT); //potensiometer sebagai inputan

  // inisial baud rate 
  Serial.begin(9600);
}

void loop() {
   //membuat variabel buttonState untuk mengetahui state event dari button
  int buttonState = digitalRead(buttonPin);

   // membaca potensiometer dan mengecilkan resolusinya dengan membagi 4
  int potValue = analogRead(potPin);
  int filteredPotValue = potValue / 4;

  // menyalakan led pin dengan potensiometer
  analogWrite(ledPin,filteredPotValue);

  // print nilai state dari button 1/0
  Serial.print("Button: ");
  Serial.print(buttonState);
  Serial.print("   ");

  // print nilai potensiometer 0-1024
  Serial.print("Pot: ");
  Serial.print(potValue);
  Serial.print("   ");

  // print nilai potensiometer 0-255
  Serial.print("Pot/4: ");
  Serial.println(filteredPotValue);
}

serial

Hasil serial monitor

sermon