Lompat ke konten Lompat ke sidebar Lompat ke footer

ESP32 PART-3. STRUKTUR PEMOGRAMAN ESP32

Untuk menguasai board ESP32 maka harus juga menguasai struktur pemograman pada ESP32. Bagi anda yang sering menggunakan Arduino maka secara umum pemograman ESP32 sama saja dengan Arduino Uno. Pemograman ESP32 juga menggunakan bahasa pemograman Bahasa C++ jadi di dalamnya akan terdapat void setup dan void loop. Pada saat pemograman ESP32 harap perhatikan penomoran I/O atau GPIO ESP32 karena I/O nya berbeda dengan Arduino uno. jadi harus ada penyesuaian I/O seperti penomoran pin, dan ada juga perintah-perintah spesifik tertentu yang berbeda dengan Arduino Uno. 





Pada stuktur program ESP32 di bawah ini akan disampaikan keterangan-keteranganya sesuai struktur pemrograman untuk ESP32.

 

int value =0; //variable global

# include // library atau file yang akan digunakan

 

void setup()

{

// semua kode yang disini akan dibaca sekali oleh Arduino/ESP32

}

 

void loop()

{

//semua kode yang ada disini akan dibaca 

//berulang kali (terus menerus) oleh Arduino/ESP32

}

 

void Fungsi();

{

//fungsi /sub program yang sering dipanggil

}

 

KETERANGAN

1. void setup

Semua sketch program pada void setup hanya dibaca sekali saja saat menjalankan program di Arduino. Pada void setup bisa diisi sketch program contohnya untuk menentukan fungsi pada  pin-pin yang digunakan. Apakah pin tersebut untuk input atau bisa untuk dijadikan output.


Contoh kodenya seperti:

pinMode(2, OUTPUT);  // menentukan GPIO 2 sebagai OUTPUT   

     

pinMode(13,INPUT);    // menentukan GPIO 13 sebagai INPUT        

 

2. void loop

Semua sketch program pada void loop akan dibaca setelah void setup dilakukan dan sketch program didalamnya akan dijalankan secara looping atau dijalankan secara  terus menerus hingga catu dayanya dimatikan. Isinya berupa sketch sebagai kode perintah kepada pin INPUT dan OUTPUT pada ESP32.


Contoh kodenya seperti:

digitalWrite(13, HIGH);  //untuk memberikan 3,3 V ke pin 13.


digitalWrite(13, LOW);  //untuk memberikan 0 V ke pin 13.


analogWrite(3, 225);    //untuk memberikan nilai 225 (setara dengan 3,3 V) kepada pin 3.

 

3. Serial Monitor

Adapun untuk menampilkan nilai pada sebuah sensor di Serial Monitor, bisa menggunakan:

 

Serial.print(sensor);

Jika sketch tertulis seperti di atas maka serial monitor ini akan menampilkan nilai yang sudah tersimpan di dalam variabel sensor.


Jika ingin menampilkan teks di serial monitor maka gunakanlah tanda petik seperti contoh di bawah yang berfungsi menampilkan tulisan Hendry Kurniawan:

 

Serial.print("Hendry Kurniawan"); 


Dan untuk membuka Serial Monitor sendiri pada Arduino, bisa dengan memilih menu Tools  pada bagian atas, lalu pilihlah Serial Monitor. Atau bisa juga dengan menggunakan keyboard komputer yaitu menekan kombinasi CTRL+SHIFT+M.  Jika ingin lebih praktis lagi maka bisa klik saja tanda gambar kaca pembesar  seperti gambar dibawah ini:

 

 


Untuk komunikasi antara ESP32 dengan komputer, dapat menggunakan: 

Serial.begin(9600);  // untuk komunikasi Arduino dengan komputer dengan baudrate 9600
 

4. Membuat Catatan di sketch Program

Kadangkalanya kta membutuhkan catatan dalam penulisan sketch program, hal ini memudahkan ita saat melakukan pengecekan sketch program jika akan di modifikasi. Untuk membuatnya bisa dengan cara mengetikan tanda garis miring double seperti ini : // kemudian mengetikan catatannya, seperti:

 

void loop() {

// catatan pada baris ini tidak akan dibaca oleh program

}

 

Yang perlu diperhatikan penggunaaan tanda miring double ini // hanya  untuk catatan satu baris saja.

 

Pada saat kita ingin membuat catatan yang cukup panjang, maka kita tidak lagi menggunakan tanda // tetapi diganti dengan tanda /* lalu ketikan catatan kamu, dan jika sudah selesai maka diakhiri dengan tanda */.

 

Penggunaan tanda */ dapat dilihat seperti ini:

 

void loop() {

/* Jadi semua catatan dalam tanda ini, tidak akan dieksekusi atau dibaca oleh program, jadi silahkan ketik teks yang panjang untuk memberikan keterangan terhadap sketch yang kita buat. Keterangan ini harus ditutup dengan tanda  */

}

 

5. Kurung Kurawal {}

Kurung kurawal harus dibuat sepasang karena kurung kurawal ini digunakan untuk menentukan awal dan akhir dari suatu sketch program. Jadi program tersebut diawali buka kurung kurawal dan diakhiri tutup kurung kurawal. Pada saat jumlah buka kurung kurawal dan tutup kurung kurawal tidak sama, maka akan menyebabkan program akan error.

 

void loop()

{

….program

….program

….program

}

 

6. Titik Koma ;

Setiap baris kode pada sketch program Arduino harus diakhiri dengan tanda ; Jika tidak ada tanda titik koma maka saat nanti di verify akan terjadi kesalahan. Contoh :

 

void setup(){

pinMode(13, OUTPUT);

}

 

void loop(){

digitalWrite(13, HIGH);

}

 

 

7. Variabel


Variabel merupakan sketch program yang difungsikan  untuk menyimpan suatu nilai pada sebuah nama variabel yang sidah dibuat. Jenis-jenis variable yang bisa digunakan diantaranya adalah Integer, Long, Boolean, Float, Character.

 

7a. int (integer)

Variabel int merupakan variabel yang sering digunakan. variabel int ini mampu  menyimpan data sebesar 2 bytes (16 bits).

 

7b. long (long)

Variabel long merupakan variabel yang panjang dan biasanya  nilai datanya lebih besar dari integer. Menggunakan 4 bytes (32 bits).

 

7c. boolean (boolean)

Variabel boolean merupakan variable yang hanya bisa menyimpan nila TRUE dan FALSE saja, dan cuma menggunakan 1 bit saja.        

 

7d. float(float)

Variabel float ini digunakan untuk floating point pada nilai decimal. Memory yang digunakan 4 bytes (32 bits).

 

7e. char(character)

Variabel char menyimpan character berdasarkan ASCII kode (contoh: ‘B’=66). Menggunakan 1 byte (8 bits). 

 

8. Operator Matematika 

 

Operator matematika bisa diterapkan pada pemograman arduino. Memang tidak semua operator matematika ada , akan tetapi operator matematika ini sudah mencukupi dalam proses pembuatan program. Operator yang digunakan merupakan operator perhitungan matematika sederhana seperti: penjumlahan, pengurangan, sama dengan, dan sebagainya.

 

=      (sama dengan) (contoh  x=10*2 (x sekarang jadi 20))

%    (persentase) (contoh 12%10 (hasil sisanya = 2))

+      (penambahan)

       (pengurangan)

*       (perkalian)

/        (pembagian)

 

9. Operator Perbandingan 

Digunakan untuk melakukan perbandingan secara logika.

== (sama dengan) contoh: 13 == 10 FALSE atau 13 == 13 TRUE

!=  (tidak sama dengan) contoh: 13 != 10 TRUE atau 13 != 13 FALSE

<   (lebih kecil dari) contoh: 13 < 10 FALSE  atau 12 < 13 TRUE

>   (lebih besar dari) contoh: 19 > 13 TRUE atau 13 > 19 FALSE

 

 

10. Struktur Pengendali (IF)

 

Program yang digunakan untuk menentukan sebuah kondisi, dan jika kondisinya sudah terpenuhi maka akan melaksanakan perintah yang sudah ditentukan. Jika kondisi yang terjadi tidak memenuhi syarat maka akan ada perintah lainnya yang akan dijalankan. 

 

if(kondisi A)

  {

    Kode Perintah A

   }

   else if(kondisi B)

     {

      Kode Perintah B

     }   

     else

       {

        Kode Perintah C

       } 

 

Pada saat awal Arduino akan melihat Kondisi A. Jika memenuhi persyaratan, maka  Kode Perintah A akan dijalankan.

Tapi jika tidak memenuhi persyaratan di Kondisi A maka arduino akan mendeteksi persyaratan berikutnya yaitu  Kondisi B. Jika memenuhi persyaratan sesuai Kondisi B, maka  Kode Perintah B akan dijalankan.

Akan tetapi jika tidak juga memenuhi persyaratan Kondisi B maka arduino langsung akan melaksanakan Kode Perintah C.

 

11.  Perulangan

 

for(int i = 0; i < #repeats; i++)

   {

     Kode Perintah

    }


Kode diatas digunakan saat kita ingin mengulangi kode atau nilai dalam beberapa kali.Penjelasan detailnya nanti akan dibahas ketika mencoba membuat projek, biar lebih mudah dipahami          

 

12. Kode Digital

Kode digital ini banyak diterapkan untuk pengaturan pin input dan pin ouput digital pada arduino. 

 

pinMode( pin, mode);

Kode diatas digunakan untuk seting mode pin. Pin adalah nomer pin yang akan digunakan, pada  Board ESP32, pinnya menyesuaikan GPIO dan mode sendiri bisa berupa INPUT atau OUTPUT.

 

pinMode(2, OUTPUT);    // artinya pin GPIO 2 digunakan sebagai OUTPUT

pinMode(4, INPUT);        // artinya pin GPIO 4 digunakan sebagai INPUT

 

Dan seperti yang sudah saya bahas sebelumnya untuk kode pinMode itu ada didalam void setup.

 

digitalRead(pin);

Perintah digitalRead(pin) adalah untuk membaca nilai input yang bisa saj terhubung ke sensor. jadi bisa untuk membaca nilai logic sensor dan nilainya hanya terbatas pada high "1" (TRUE), atau low "0" (FALSE).


Contoh:

digitalRead(5);     // artinya kode akan membaca nilai sensor pada GPIO 5

 

Kode digitalRead kita masukan dalam void loop.

 

digitalWrite(pin, nilai);

perintah digitalWrite adalah suatu perintah untuk menuliskan logika  1 atau O ke output. Untuk logika output  HIGH akan mengeluarkan tegangan sekitar +3,3 V (ESP32) atau +5 Volt (Arduino uno). Sedangkan output logika LOW maka akan mengeluarkan tegangan = 0 Volt (Ground).


Contoh:

digitalWrite(2, HIGH);    // artinya GPIO 2 mengeluarkan tegangan High (3,3 Volt)

digitalWrite(2, LOW);    // artinya GPIO 2 mengeluarkan tegangan 0 volt / Ground

 

Untuk kode digitalWrite tentu saja kita masukan dalam void loop. analogWrite(pin, nilai);

 

 

analogRead(pin);

Kode diatas digunakan pin INPUT ANALOG, untuk membaca nilai tegangan input dari 0 volt hingga 3,3 Volt.

 

 

analogWrite(pin, nilai PWM);   

Pada Arduino Uno kita bisa langsung menggunakan perintah analogWrite sebagai output gelombang Pulse Width Modulation (PWM), tetapi untuk ESP32 tidak bisa langsung digunakan karena dibutuhkan Library tambahan khusus yang harus dimasukkan agar perintah  analogWrite bisa dijalankan. Jika tidak ditambah library khusus analogwrite maka perintah analogwrite akan error.


Contoh:

analogWrite(3, 150);    // artinya pin 3 diberikan nilai sebesar 150

ledcWrite(ledChannel, i);

Untuk ESP32 ada perintah khusus untuk Output PWM yaitu menggunakan ledcWrite. Perintah ini akan dibahas secara khusus pada tulisan berikutnya.

Untuk materi selanjutnya akan dibahas program sederhana ESP32 yaitu ESP32 Part 4 "Program LED berkedip / Blink.

Posting Komentar untuk "ESP32 PART-3. STRUKTUR PEMOGRAMAN ESP32"