Postingan Terbaru

  • 10 SMA : Bab IV Dinamika Partikel - Part 1
  • Belajar Dasar Tata Bahasa Jepang
  • Artikel 1 : Sejarah Perkembangan Simbol Angka
  • Huruf Hiragana Dakuon Handakuon dan Yuon
  • Huruf Kanji, Hiragana dan Katakana
  • Daftar isi Menu Belajar Arduino - BAB 3. Simulasi Animasi LED

      


    Simulasi Animasi LED

            Sebelumnya kita sudah belajar tentang membuat rangkaian dan source code untuk rangkaian LED berkedip dengan Arduino UNO, saat ini setidaknya Anda lebih memahami lebih dekat tentang bahasa pemrogramman C dan fungsi-fungsi logika yang umum di pakai dalam pembuatan source code Arduino (Lihat tutorial sebelumnya di link ini). Implementasi dari pembelajaran fungsi logika tersebut akan diterapkan pada beberapa model Simulasi Animasi LED yang mana kita membuatnya dengan bantuan website Simulator TinkerCAD. 

    ♔ 3.1 - Dengan Koding Perintah IF() - ElseIF()

        Didalam pembuatan source code suatu program, perintah IF memiliki beberapa kombinasi yang masing-masing fungsinya adalah sebagai baris source code untuk memilah bagian-bagian algoritma mana yang akan dijalankan berdasarkan logika atau persyaratan didalam fungsi IF tersebut. Logika yang dimaksud bisa berupa "Operator Pembandingan Variabel-Variabel" dalam dunia matematika kita lebih mengenalnya sebagai "Persamaan dan Pertidaksamaan 2 atau 3 Variabel" atau bahkan lebih. Oleh sebab itu jika Anda ingin mahir dalam dunia pemrogramman, maka setidaknya Anda harus memunyai dasar logika matematika berpikir yang kuat. 

         Ada beberapa operator matematika yang dibutuhkan dalam bahasa pemrogramman sesuai pada Gambar 3.1 dibawah ini:

    Gambar 3.1 Tanda Operator Matematika di source code.

    Selain itu, dalam penggunaan source code if() , Anda juga membutuhkan beberapa "Operator Pembanding Matematika di source code" untuk menentukan kondisi didalam if(kondisi). Apakah bernilai True ,sehingga serangkaian source code yang ada didalamnya akan dijalankan atau bernilai False, sehingga serangkaian source code yang ada didalamnya tidak akan dijalankan. Tanda "Operator Pembanding Matematika di source code" dapat Anda lihat sesuai Gambar 3.2 dibawah ini.

    Gambar 3.2 Operator Pembanding Matematika di source code.

            Kita dapat membagi perintah IF dalam 3 kombinasi yang akan disimulasikan langsung pada Simulator TinkerCAD di tutorial kali ini, sebagai berikut:

    • 3.1.1 Perintah if()

            Perintah if() dalam penulisan source code-nya secara harfiah dapat kalian cermati dibawah ini:

    if(kondisi)
    {
        // source code baris 1;
        // source code baris 2;
        // ... dan seterusnya;
    }

    Perlu Anda cermati bahwasan-nya didalam fungsi if(), hanya terdapat pengalamatan ketika kondisi yang di kehendaki hanya bernilai True atau artinya bernilai benar. Sehingga, program akan menjalankan 1 algoritma saja , tanpa ada pembanding kondisi lainnya. Hal ini tentunya bisa membuat program masuk dalam suatu kondisi yang bisa kita sebut sebagai kondisi "mengambang dalam pemrograman". Dimana, ketika suatu mesin menjalankan perintah diluar fungsi logika if(), maka mesin tersebut hanya akan melewati baris source code yang lain. 

    Untuk lebih jelasnya silahkan Anda perhatikan Simulasi Animasi LED di TinkerCAD ini.

    Gambar 3.3 Animasi LED dengan if() di TinkerCAD.

        Seperti biasa sebelum memulai simulasi. Anda harus merangkai terlebih dahulu rangkaian seperti Gambar 3.3 diatas. Jika bagi Anda yang tidak tau dalam proses merangkainya, kunjungi link ini: Tutorial Merangkai Circuits di TinkerCAD. Dalam merangkai rangkaian pada Gambar 3.3, komponen yang dibutuhkan dapat di cari di menu search pada interface simulator TinkerCAD sebagai berikut  :

    1. LED warna merah (dengan pin Anode terhubung ke pin digital 11 di board Arduino UNO, sedangkan pin Cathode terhubung ke Resistor)
    2. board Arduino UNO sebagai pengendali animasi LED dan tempat penyimpanan source code
    3. Resistor yang sudah Anda set bernilai 0.1 kOhm atau 100 Ohm dan Anda hubungkan pin yang tersisa ke pin digital GND di board Arduino UNO.

    Jika sudah selesai merangkainya, Anda bisa menuliskan source code -nya di menu "</ Code" sesuai dengan Gambar 3.4 dibawah ini:

    Gambar 3.4 Source Code Animasi LED dengan if().

           Bagi Anda yang malas untuk mengetik source code-nya karena terlalu banyak 😊. Jangan khawatir Anda bisa kunjungi website kelas TinkerCAD saya : Simulasi LED dengan fungsi if(). Didalam source code-nya sudah saya berikan komentar penjelasan mengenai fungsi baris per baris source code-nya. Secara garis besar LED pada Gambar 3.3 Simulasi Animasi LED dengan if() hanya akan berkedip sesuai dengan durasi tunda yang di atur melalui kode delay(timeDelay). Akan tetapi, yang perlu Anda garis bawahi adalah seberapa cepat atau tidaknya durasi penundaan nyalah dan matinya LED didalam simulasi tersebut yang di atur pada kode baris source code ke-19 dan 23 s/d 26. 

    Gambar 3.5 Source Code Decrement.

        Operator decrement adalah sebuah operator hitung didalam pemrograman yang fungsinya untuk menurunkan nilai suatu variabel secara bertahap di fungsi perulangan atau loop(). Adapun lawan dari operator decrement ini adalah operator increment yang fungsinya berkebalikan dengan decrement untuk menaikan nilai suatu variabel secara bertahap di fungsi perulangan atau loop(). Ketika awal dinyalakan, maka timeDelay adalah 1000 (unit millisecond). Nilai tersebut diinisialisasi pada baris ke-13. Baris ini tidak dijadikan konstanta(const) sebagaimana pin LED_Red karena nilai timeDelay akan diubah-ubah.

    int timeDelay = 1000;

    Setelah masuk ke  bagian utama aplikasi, pada baris ke-19 nilai timeDelay dikurangi 100 secara bertahap tergantung berapa banyak perulangannya.

    timeDelay = timeDelay - 100;

         Bagian source code diatas merupakan 'operator decrement' yang artinya adalah kurangi nilai awal pada timeDelay sebesar 1000 -100 dan simpan di variabel yang sama timeDelay. Sehingga untuk pertama kalinya LED menyalah dan mati selama 900 ms. untuk kedua kalinya LED menyalah dan mati selama 800 ms dan seterunya sampai kondisi nilai variabel timeDelay = 0. Maka, kondisi pada fungsi if(timeDelay<=0) akan terbaca dan menyebabkan mereset kembali nilai variabel timeDelay = 1000.

    if(timeDelay<=10)
    {
        timeDelay = 1000;
    }

          Dan perulangan di fungsi loop() akan kembali terjadi untuk dilakukannya perintah menyalahkan dan mematikan LED dengan waktu tunda berbeda-beda sampai Anda memberentihkan simulasi tersebut dengan menekan tombol Stop Simulation di TinkerCAD.

    • 3.1.2 Perintah if() - else()

          Pada dasarnya perintah if() - else() merupakan pengembangan dari perintah if(). Perintah else() berarti kondisi yang tidak sesuai dengan kondisi dalam if() atau dengan kata lain melakukan hal kebalikan dari serangkaian source code didalam fungsi if() bisa Anda sebut "jika tidak". Coba perhatikan source code dari Gambar 3.6. 

    Gambar 3.6 Source Code Animasi LED if() - else().

            Untuk menjalankan source code pada Gambar 3.6 , Anda perlu merangkai rangkaian animasi LED-nya yang sama sesuai pada Gambar 3.3 sebelumnya di bagian animasi LED dengan fungsi if(). Begitu juga dengan source code-nya pada dasarnya sama dengan simulasi sebelumnya (Gambar 3.4). Hanya saja Anda harus merubah dan menambahkan beberapa baris source code yakni fungsi else(). Jika bagi Anda yang malas merubah dan menambahkan beberapa kode programnya 😊, Anda dapat mengunjungi website kelas TinkerCAD saya : Simulasi Animasi LED dengan if()-else(). 

            Untuk kinerja simulasinya sendiri sama dengan simulasi pertama saat menggunakan fungsi if(). LED menyalah dan mati sesuai dengan pengaturan tunda waktunya di variabel timeDelay, akan tetapi yang membedakan adalah struktur penulisan source code-nya yang lebih terstruktur dan terhindar dari kondisi "mengambang dalam pemrograman". Jika Anda memilih menuliskan fungsi if() yang dipasangkan dengan fungsi else(), waktu mereset nilai timeDelay adalah saat nilainya 'kurang dan sama dengan 100'. Perhatikan source code dari baris ke-19 s/d 33.

    Gambar 3.7 Source Code Decrement Versi 2.

    • 3.1.3 Perintah if() - else if()

            Pada dasarnya perintah if() - else if() merupakan pengembangan dari perintah if() - else(). Perintah else if() berarti kondisi yang tidak sesuai dengan kondisi dalam if() atau dengan kata lain melakukan hal kebalikan dari serangkaian source code didalam fungsi if() namun lebih spesifik dibandingkan dengan perintah else(). Untuk perintah else() bisa Anda sebut "jika tidak", sedangkan perintah else if() bisa Anda sebut "jika tidak, maka seperti apa"Coba perhatikan source code dari Gambar 3.8.

    Gambar 3.8 Source Code Animasi LED dengan if() - else if().

            Untuk menjalankan source code pada Gambar 3.8 , Anda perlu merangkai rangkaian animasi LED-nya yang sama sesuai pada Gambar 3.3 sebelumnya di bagian animasi LED dengan fungsi if(). Begitu juga dengan source code-nya pada dasarnya sama dengan simulasi sebelumnya (Gambar 3.4). Hanya saja Anda harus merubah dan menambahkan beberapa baris source code yakni fungsi else if() dan untuk rangkaiannya Anda perlu merubahnya sedikit dengan penambahan komponen LED berwarna hijau atau Anda bisa merangkainya sendiri sesuai pada Gambar 3.9.

    Gambar 3.9 Animasi LED dengan if() - else if().

    Penjelasan konektivitas dari gambar diatas sebagai berikut :

    1. LED warna merah (dengan pin Anode terhubung ke pin digital 11 di board Arduino UNO, sedangkan pin Cathode terhubung ke Resistor 1)
    2. LED warna hijau (dengan pin Anode terhubung ke pin digital 4 di board Arduino UNO, sedangkan pin Cathode terhubung ke Resistor 2)
    3. board Arduino UNO sebagai pengendali animasi LED dan tempat penyimpanan source code
    4. Resistor 1 dan Resistor 2 yang sudah Anda set bernilai 0.1 kOhm atau 100 Ohm dan Anda hubungkan pin yang tersisa ke pin digital GND di board Arduino UNO.

    Jika bagi Anda yang malas merubah dan menambahkan beberapa kode programnya 😊. Jangan khawatir, Anda dapat mengunjungi website kelas TinkerCAD saya : Simulasi Animasi LED dengan if()-else if(). 

        Penjelasan dari kinerja simulasinya sendiri sama dengan simulasi pertama saat menggunakan fungsi if() - else(). LED menyalah dan mati sesuai dengan pengaturan tunda waktunya di variabel timeDelay, akan tetapi yang membedakan adalah terdapat penambahan source code untuk baris ke-32 s/d 41. LED berwarna hijau akan menyalah selama 3 detik saat nilai timeDelay = 500, lalu akan mati ketika nilai timeDelay lebih dari 500. Saat timeDelay kurang dan sama dengan 100, maka nilainya akan di reset menjadi 1000. Yang perlu di garis bawahi adalah waktu nyala dari kedua LED yang berbeda.

           LED warna merah menyalah dan mati dengan kondisi waktu tunda berbeda-beda terus-menerus, sedangkan LED warna hijau akan menyalah ketika waktu tunda sebesar 500 secara terus-menerus selama 3 detik. Anda bisa menyebutnya sebagai pilihan source code ketiga, karena inilah yang saya maksudkan sebagai else if() yang bekerja secara spesifik, namun kinerjanya hampir sama dengan else(). Sehingga, bagi Anda yang ingin membuat pilihan banyak opsi di source code Anda  untuk memetakkan berbagai kinerja algoritma secara terstruktur (kapan opsi pertama dijalankan, kapan opsi kedua dijalankan dst). Maka, perintah if() - else if() adalah pilihan yang tepat bagi Anda untuk memungkinkan melakukan hal tersebut.

    ♔ 3.2 - Dengan Perulangan - While()

       Perintah while() merupakan perintah untuk melakukan perulangan layaknya loop() berdasarkan suatu kondisi, jadi banyaknya perulangan tidak bisa ditentukan dengan pasti. Dalam perintah while() seakan ada pengecekan kondisi seperti perintah if() untuk melakukan perulangan. Bentuk umum dari perintah while() yakni:

    while (kondisi)
    {
         // source code baris 1
        // .... dan seterusnya
    }

        Kondisi disini berisikan variabel dengan operator pembanding (persamaan atau pertidaksamaan) didalam pemrogramman. Jika kondisi sesuai, maka serangkaian source code yang ada didalam kurung kurawal "{}" tersebut akan dijalankan. Simulasi rangkaian animasi LED yang melibatkan fungsi while() dapat Anda rangkai persis seperti pada Gambar 3.9 sebelumnya. Hanya saja perlu modifikasi pada bagian source code-nya, untuk lebih memahai tentang perintah while(), tetapi Anda malas untuk melakukan modifikasi pada source code-nya 😊. Kunjungi website kelas TinkerCAD saya:  Simulasi Animasi LED dengan while().

    Gambar 3.10 Source Code Animasi LED dengan while().

            Program pada Gambar 3.10 akan mengedipkan LED berwarna merah saat nilai timeDelay mendekati 1000 dan berulang terus-menerus sebanyak 10 kali sampai nilai timeDelay kurang dari 0. Dimana, LED berwarna merah akan berkedip semakin lama - semakin cepat akibat dari operator decrement yang menyebabkan nilai timeDelay berkurang terus-menerus. Lain halnya dengan LED berwarna hijau akan berkedip saat nilai timeDelay mendekati 0 dan berulang terus-menerus sebanyak 10 kali sampai nilai timeDelay lebih dari 1000. Dimana, LED berwarna hijau akan berkedip semakin lama - semakin lambat akibat dari operator increment yang menyebabkan nilai timeDelay bertambah terus-menerus.

    Kesimpulan singkat yang bisa Anda dapat dari penjelasan perintah while() diatas adalah bekerja layaknya perintah if() yang dimodifikasi dengan intruksi tambahan perulangan atau loop() untuk menyebabkan mikrokontroller tidak lagi menjalankan algoritmua yang ada didalam fungsi while() tersebut.

    Sebenarnya masih ada lagi jenis perulangan yang dapat Anda aplikasikan untuk source code di pemrogramman bahasa C, yaitu perintah for() yang dibahas pada sub-Bab 3.4. Untuk itu tetap semangat ya... 😊membaca artikelnya 😊.

    ♔ 3.3 - Dengan Pemrogramman True dan False

            Terkadang kondisi True atau False bisa terdiri dari beberapa kondisi. Misal, Anda ingin menentukan bilangan timeDelay sebagai angka positif tidak lebih dari 10. Maka Anda tidak bisa hanya menggunakan satu kondisi, tetapi harus menggunakan 2 kondisi atau lebih, yaitu timeDelay harus lebih besar dari 0 DAN timeDelay lebih kecil dari 10. Didalam logika operator matematika dikenal sebagai operator pembanding (irisan, gabungan). Sedangkan logika di pemrogrammannya bisa dituliskan sebagai berikut:

    if (timeDelay > 0) && (timeDelay < 10)
    {
        // source code pertama
        // source code kedua
        // ..... dan seterusnya

              Perhatikan tanda && yang bermakna AND. Penambahan tanda kurung memperjelas bahwa ada dua kondisi yang berbeda dan dihubungkan oleh operator &&. Silahkan diingat bahwa operator logika AND akan menghasilkan nilai True, jika semua kondisi bernilai True. Tentunya Anda pernah mempelajarinya saat di bangku SMA X yaitu tentang "Logika Matematika" dalam penulisan kesimpulan Premis. Tanda Logika Matematikanya terbagi atas 5 secara dasar sebagai berikut:

    1. Konjungsi "^" atau bisa bermakna "AND".
    2. Disjungsi "v" atau bisa bermakna "OR"
    3. Implikasi "-->" atau bisa bermakna "IF THEN"
    4. Biimplikasi "<-->" atau bisa bermakna "IF AND ONLY IF"
    5. Negasi "~" atau bisa bermakna "NOT"

    Untuk Tabel Kebenaran dari ke-5 tanda logika matematika diatas sebagai berikut:

    Gambar 3.11 Tabel Kebenaran Konjungsi.
     
    Gambar 3.12 Tabel Kebenaran Disjungsi.

    Gambar 3.13 Tabel Kebenaran Implikasi.

    Gambar 3.14 Tabel Kebenaran Bi-Implikasi.

    Gambar 3.15 Tabel Kebenaran Negasi.

    Keterangan :
    1. B = Premis yang bernilai Benar atau True 
    2. S = Premis yang bernilai Salah atau False

          Pada tutorial kali ini, Saya akan mencontohkan bagaimana memakai 3 tanda logika matematika di ranah source code atau pemrogramman bahasa C yaitu tanda AND, OR dan NOT yang bisa Anda lihat pada Gambar 3.16 dibawah ini:

    Gambar 3.16 Konversi Penulisan Tanda AND, OR dan NOT.

                Oleh sebab itu, didalam dasar pembelajaran matematika sangat penting dan erat kaitannya dengan dunia pemrogramman dan jika Anda masih bingung bagaimana penerapannya didalam penulisan source code , maka coba perhatikan contoh simulasi dengan operator pembanding logika matematika di TinkerCAD dibawah ini yang menggunakan sketch 1.
    //Don't forget to visit me at
    //www.kenapabelajarilmu.blogspot.com

    // C++ code 
    sketch 1

    const int LED_Red = 11;   //Pin 11 untuk Konektor LED
    const int LED_Green = 4;   //Pin 11 untuk Konektor LED

    void setup()
    {
      pinMode(LED_Red, OUTPUT);  //setting pin LED sebagai Output
      pinMode(LED_Green, OUTPUT);  //setting pin LED sebagai Output
    }

    //awal time delay 1000 ms
    int timeDelay = 0;
    void loop()
    {
     // selama nilai timeDelay > 0
     // eksekusi blok program ini
     while((timeDelay >= 0) && (timeDelay < 500))
     {
       // LED merah hidup-mati dengan durasi 500 milisekon
       digitalWrite(LED_Red, HIGH);
       delay(500);
       digitalWrite(LED_Red, LOW);
       delay(500);

       // kurangi timeDelay dengan 100
       timeDelay = timeDelay + 100; 
     }
     
     // setelah timeDelay ditambah terus-menerus
     // maka pada akhirnya akan bernilai 500
     // maka while di atas akan berhenti
     
     // selama nilai timeDelay < 1000
     // eksekusi blok program ini
     while((timeDelay >= 500) && (timeDelay < 1000))
     {
       // LED hijau hidup-mati dengan durasi 500 milisekon
       digitalWrite(LED_Green, HIGH);
       delay(500);
       digitalWrite(LED_Green, LOW);
       delay(500);

       // tambahkan timeDelay dengan 100
       timeDelay = timeDelay + 100;
     }
      
      //Setelah kedua program diatas dijalankan,
      //maka timeDelay direset nilainya.
      timeDelay = 0;
    }
             Sebelum melakukan simulasi seperti biasa Anda harus merangkai rangkaiannya di interface circuits TinkerCAD. Gambar rangkaiannya sama seperti Gambar 3.9 Animasi LED dengan if() - else if(). Sedangkan, untuk penjelasan kinerja dari source code diatas bisa kalian pahami dengan melihat dan membaca setiap 'komentar yang saya berikan disetiap baris source code-nya' 😊Atau untuk lebih jelasnya, silahkan kunjungi website kelas TinkerCAD saya : Simulasi Animasi LED dengan Operator Pembanding.

    ♔ 3.4 - Dengan Perulangan - For()

         Berbeda dengan fungsi while(), didalam fungsi for() Anda bisa menentukan jumlah perulangan dengan pasti dan presisi. Pada Gambar 3.10 Source Code Animasi LED dengan while(), perulangan bisa ditentukan sebanyak 10 kali dengan cara mengurangi angka 1000 dengan 100 secara bertahap (dengan operator decrement) atau sebaliknya menambahkan angka 100 dengan 100 secara bertahap (dengan operator increment). Tentu bagi programmer profesional hal ini akan dinilai tidak efisien, karena terlalu banyak membutuhkan 'space source code' dan jika source code ini disimpan ukuran file-nya akan besar. Otomatis dengan kata lain, kecepatan scanning programnya saat di simulasikan akan semakin lambat yang berdampak juga pada output yang dihasilkan pada hardware yang terhubung di board Arduino tidak akan begitu responsive. Lain halnya jika Anda menggunakan format dasar dari fungsi for() sebagai berikut :
    for(statemen; kondisi ; statemen)
    {
        // source code 1
        // .. dan seterusnya
    }
    Keterangannya sebagai berikut :
    1. Statemen pertama : berisi tentang kondisi awal atau bisa disebut dengan inisialisasi suatu variabel atau data (misal; data=0).
    2. Statemen terahkir : berisi tentang perubahan yang akan terjadi pada variabel di statemen pertama yang biasanya disebut dengan operator increment (penjumlahan) atau decrement (pengurangan). Misal; data=data+1.
    3. Kondisi : merupakan syarat untuk mengecek apakah didalam variabel baik yang belum terolah (di statemen pertama) atau variabel yang sudah terolah (di statemen terahkir) untuk dilakukan atau tidaknya perulangan didalam fungsi for(). Anda sudah mempelajarinya dengan menggunakan 'Logika Matematika' di Pemrograman yaitu AND, OR dan sebagainya.
             Sebelum melakukan simulasi seperti biasa Anda harus merangkai rangkaiannya di interface circuits TinkerCAD. Gambar rangkaiannya sama seperti Gambar 3.9 Animasi LED dengan if() - else if(). Untuk source code-nya Anda bisa melihatnya dibawah ini yang menggunakan sketch 2:

    //Don't forget to visit me at
    //www.kenapabelajarilmu.blogspot.com
    // C++ code sketch 2
    const int LED_Red = 11;   //Pin 11 untuk Konektor LED
    const int LED_Green = 4;   //Pin 11 untuk Konektor LED
    void setup()
    {
      pinMode(LED_Red, OUTPUT);  //setting pin LED sebagai Output
      pinMode(LED_Green, OUTPUT);  //setting pin LED sebagai Output
    }
    //awal time delay 3000 ms
    int timeDelay = 3000;
    int i = 1;
    void loop()
    {
     //perulangan sebanyak 10 kali dari 1 hingga 10
     for(i=1;i<=10;i++)
     {
       //Arti dari i++ merupakan singkatan dari
       //i = i + 1 atau bisa dibaca kode singkat fungsi increment
       // LED merah hidup-mati dengan durasi 500 milisekon
       digitalWrite(LED_Red, HIGH);
       delay(500);
       digitalWrite(LED_Red, LOW);
       delay(500);
     }
     //diam dan menyalakan LED Hijau selama 3 detik
      digitalWrite(LED_Green, HIGH);
      delay(timeDelay);
      digitalWrite(LED_Green, LOW);
    } 
            Sedangkan, untuk penjelasan kinerja dari source code diatas bisa kalian pahami dengan melihat dan membaca setiap 'komentar yang saya berikan disetiap baris source code-nya 😊'Atau untuk lebih jelasnya, silahkan kunjungi website kelas TinkerCAD saya : Simulasi Animasi LED dengan Perintah for().

    ♔ 3.5 - Update Dengan Pengenalan Array

            Sebelum mohon maaf untuk penjelasan dan cara perangkaian di sesi pengenalan array ini , admin belum bisa berikan secara tertulis untuk melakukan simulasi seperti biasa Anda harus merangkai rangkaiannya di interface circuits TinkerCAD. Gambar rangkaiannya sama seperti Gambar 3.9 Animasi LED dengan if() - else if() hanya saja perlu diberikan tambahan LED lagi. Sedangkan, untuk penjelasan kinerja dari source code diatas bisa kalian pahami dengan melihat dan membaca setiap komentar yang saya berikan disetiap baris source code-nya 😊. Jangan risau..., Admin beri contoh simulasinya menjadi 2 versi yang bisa Anda bisa lihat dengan mengunjungi website kelas TinkerCAD saya :  

    ✌ Selamat membaca & semoga bermanfaat ilmunya ✌

        Bagi kalian yang ingin belajar lebih tentang Arduino atau ingin konsultasi mengenai projek-projek yang menggunakan Arduino atau Membeli Modul-Modul Pembelajaran Arduino lengkap dari dasar sampai mahir. Silahkan, hubungi saya lewat Email atau WhatsApp di menu "Contact Me". Sebelum memesan, bisa pastikan dulu lihat profile Curriculum Vitae (CV) saya, ~klik link ini!~.

    0 komentar:

    Posting Komentar