Cara Instal Library Arduino: Library Manager, ZIP, dan Manual
Cara instal library Arduino langkah demi langkah: Library Manager, instal .ZIP dan manual, berganti versi, serta mengatasi error No such file or directory.
Menginstal library Arduino berarti menambahkan paket kode siap pakai ke Arduino IDE agar kamu bisa memakai sensor, layar, atau modul di sketch-mu, dan ada tiga cara melakukannya: Library Manager (cara termudah dan yang dianjurkan), menambahkan file .ZIP yang sudah diunduh ke IDE, atau menyalin folder library secara manual ke folder libraries di sketchbook-mu. Setelah terinstal, kamu menulis #include <LibraryName.h> di bagian atas sketch dan semua fungsi library siap dipakai. Library yang tepat butuh satu menit untuk diinstal; library atau versi yang salah bisa berubah menjadi berjam-jam mencari bug.
Di panduan ini kita membahas ketiga cara langkah demi langkah di Arduino IDE 2. Setelah itu kamu akan melihat cara memilih yang tepat di antara puluhan library bernama mirip, kembali ke versi lama, membuka contoh-contoh library, dan mengatasi dua pesan yang paling umum: error No such file or directory dan peringatan Multiple libraries were found. Bagian terakhir membahas library mana yang bekerja di ESP32 dan Raspberry Pi Pico, mana yang perlu diganti, dan cara menambahkan library di MicroPython. Jika IDE belum terinstal, mulailah dari Cara Instal Arduino IDE 2.
Apa itu library Arduino dan untuk apa?
Library adalah kumpulan file kode yang melakukan satu tugas tertentu, dikemas agar orang lain bisa memakainya lagi: minimal satu file header (.h), biasanya satu atau lebih file sumber (.cpp), dan hampir selalu beberapa contoh sketch. Misalnya, sensor DHT11 mengirim pembacaannya lewat satu kabel sebagai paket 40 bit dengan waktu yang diatur sampai mikrodetik. Alih-alih menulis pengaturan waktu itu sendiri, kamu menginstal library DHT dan cukup menulis dht.readTemperature(); library menangani bagian yang sulit. Jangan samakan library dengan paket board: paket board yang diinstal dari Boards Manager mengajari IDE keluarga prosesor baru seperti ESP32 atau Pico, sedangkan library memudahkan pemakaian hardware atau tugas tertentu. Library Arduino datang dari tiga tempat berbeda:
| Jenis library | Datang dari mana? | Disimpan di mana? | Contoh |
|---|---|---|---|
| Library bawaan | IDE menginstalnya sendiri ketika pertama kali dijalankan | Folder libraries di dalam Arduino15 | Servo, Stepper, LiquidCrystal, SD, Ethernet, Keyboard, Mouse |
| Library paket board | Ikut bersama paket yang kamu instal dari Boards Manager | Folder libraries milik paket itu di bawah Arduino15/packages | Wire, SPI, EEPROM, SoftwareSerial untuk Uno; WiFi, WebServer, HTTPClient, Preferences untuk ESP32 |
| Library yang kamu instal | Library Manager, .ZIP, atau salin manual | Folder libraries di sketchbook-mu | DHT sensor library, LiquidCrystal I2C, Adafruit SSD1306, ESP32Servo |
Kamu tidak perlu menginstal library yang ikut bersama paket board, seperti Wire, SPI, atau library WiFi ESP32; cukup menulis baris #include. Library yang kamu instal sendiri masuk ke folder libraries di dalam sketchbook-mu. Berikut lokasi bawaan untuk setiap sistem operasi:
| Sistem operasi | Library yang kamu instal | Arduino15 (library bawaan dan paket board) |
|---|---|---|
| Windows | C:\Users\<user>\Documents\Arduino\libraries | C:\Users\<user>\AppData\Local\Arduino15 |
| macOS | /Users/<user>/Documents/Arduino/libraries | /Users/<user>/Library/Arduino15 |
| Linux | /home/<user>/Arduino/libraries (folder sketchbook) | /home/<user>/.arduino15 |
Cara 1: Instal library dengan Library Manager
Library Manager memungkinkanmu mencari ribuan library di indeks library resmi Arduino dan menginstalnya dengan satu klik. Library di indeks ini dikemas menurut spesifikasi tetap, jadi struktur foldernya tidak pernah rusak, library lain yang dibutuhkan (dependensi) ditawarkan otomatis, dan IDE memberi tahu ketika ada versi baru. Jadi jika library yang kamu butuhkan ada di daftar, selalu pakai cara ini. Sebagai contoh, mari instal library Adafruit untuk sensor DHT11 dan DHT22:
- Buka Arduino IDE 2 dan klik ikon buku di bilah samping kiri. Kamu juga bisa membuka panel yang sama dari Sketch > Include Library > Manage Libraries atau dengan pintasan Ctrl+Shift+I (Cmd+Shift+I di macOS).
- Ketik DHT sensor library di kotak pencarian. Dalam beberapa detik, setiap library yang nama atau deskripsinya mengandung kata-kata itu muncul sebagai daftar kartu.
- Setiap kartu menampilkan nama dan pembuat library di atas, deskripsi singkat di bawahnya, dan tautan More info. Kamu akan melihat beberapa library DHT dengan nama mirip; pilih kartu DHT sensor library yang pembuatnya Adafruit.
- Daftar versi di bagian bawah kartu menunjukkan versi terbaru. Kecuali kamu punya alasan khusus, biarkan di versi terbaru lalu klik Install.
- IDE membuka jendela berjudul Install library dependencies dan memberi tahu bahwa library ini butuh library lain bernama Adafruit Unified Sensor. Klik Install All.
- Baris-baris unduhan bergulir di panel output dan notifikasi seperti Successfully installed library DHT sensor library:1.4.7 muncul di kanan bawah. Kartu sekarang menampilkan versi yang terinstal.
Pilihan yang kamu buat di jendela dependensi itu penting. Install without dependencies hanya menginstal library utama; ketika kamu mengompilasi, kamu mendapat Adafruit_Sensor.h: No such file or directory, karena salah satu file library DHT menyertakan header itu. Kadang rantai dependensinya punya beberapa mata rantai: library OLED Adafruit SSD1306 butuh Adafruit GFX Library, yang pada gilirannya butuh Adafruit BusIO. Ketika kamu mengklik Install All, IDE menginstal seluruh rantai sekaligus; kecuali kamu sengaja melewati sebuah dependensi, selalu pakai opsi ini.

Ketika daftarnya ramai, dua filter di atas kotak pencarian memudahkan pekerjaan:
| Filter | Opsi | Kegunaannya |
|---|---|---|
| Type | All, Updatable, Installed, Arduino, Partner, Recommended, Contributed, Retired | Installed menampilkan library mana yang terinstal dan versinya, Updatable menampilkan yang punya rilis lebih baru. Arduino mencantumkan library resmi, Contributed library komunitas, dan Retired library yang sudah tidak dikembangkan. |
| Topic | Display, Sensors, Communication, Device Control, Timing, Data Storage, Data Processing, Signal Input/Output, Other, Uncategorized | Mempersempit hasil ketika kamu tidak tahu nama persis sebuah library; misalnya, di Display hanya library LCD, OLED, dan TFT yang tersisa. |
Memilih yang tepat di antara library bernama sama
Ketik DHT saja di Library Manager dan kamu mendapat puluhan hasil; mencari LiquidCrystal I2C juga menampilkan beberapa library dengan nama yang hampir sama. Walaupun mengendalikan hardware yang sama, nama fungsi, parameter constructor, dan contoh-contohnya berbeda. Kode yang ditulis untuk satu library sering tidak bisa dikompilasi dengan library lain yang namanya mirip. Untuk memilih yang tepat, ikuti urutan ini:
- Lihat baris #include di kodemu: jika contoh yang kamu ikuti menulis #include <LiquidCrystal_I2C.h>, kamu butuh library yang berisi file itu. Contoh yang ditulis dengan baik juga menyebut nama library dan pembuatnya.
- Cek pembuatnya: nama terkenal seperti Adafruit, SparkFun, Arduino, dan Espressif, atau produsen komponennya, biasanya menerbitkan library yang dokumentasinya paling baik dan paling lama dirawat.
- Buka tautan More info: di halaman library, cek tanggal pembaruan terakhir, issue yang masih terbuka, dan board apa saja yang didukung. Library yang bertahun-tahun tidak diperbarui bisa bermasalah di ESP32 atau Pico.
- Lihat riwayat versinya: daftar versi yang panjang menunjukkan library itu dikembangkan secara teratur. Jauhi library yang hanya punya satu versi dan deskripsi kosong.
- Coba dulu contoh bawaan library: setelah menginstal, kompilasi salah satu contohnya. Jika contohnya berhasil dikompilasi tapi kodemu tidak, kemungkinan besar kodemu ditulis untuk library yang berbeda.
| Komponen | Cari di Library Manager | Library yang dianjurkan (pembuat) dan dependensinya | Baris #include |
|---|---|---|---|
| DHT11 / DHT22 | DHT sensor library | DHT sensor library (Adafruit) + Adafruit Unified Sensor | #include <DHT.h> |
| LCD I2C 16x2 | LiquidCrystal I2C | LiquidCrystal I2C (Frank de Brabander) | #include <LiquidCrystal_I2C.h> |
| OLED SSD1306 | Adafruit SSD1306 | Adafruit SSD1306 + Adafruit GFX Library + Adafruit BusIO | #include <Adafruit_SSD1306.h> |
| DS18B20 | DallasTemperature | DallasTemperature (Miles Burton) + OneWire | #include <DallasTemperature.h> |
| RFID RC522 | MFRC522 | MFRC522 (GithubCommunity) | #include <MFRC522.h> |
| Penerima IR dan remote | IRremote | IRremote (shirriff, z3t0, ArminJo) | #include <IRremote.hpp> |
| WS2812B NeoPixel | Adafruit NeoPixel | Adafruit NeoPixel (Adafruit) | #include <Adafruit_NeoPixel.h> |
| RTC DS1307 / DS3231 | RTClib | RTClib (Adafruit) + Adafruit BusIO | #include <RTClib.h> |
| Servo (di ESP32) | ESP32Servo | ESP32Servo (Kevin Harrington, John K. Bennett) | #include <ESP32Servo.h> |

Contoh paling terkenal dari kebingungan ini adalah LCD I2C. LiquidCrystal I2C (Frank de Brabander) di Library Manager memulai layar dengan lcd.init(). Versi lain dari library yang sama yang beredar di GitHub memakai lcd.begin() tanpa parameter sebagai gantinya. Jika kamu mengompilasi kode yang ditulis untuk versi itu dengan library dari Library Manager, kamu mendapat no matching function for call to 'LiquidCrystal_I2C::begin()'. Solusinya sederhana: ubah lcd.begin() menjadi lcd.init() atau mulai dari contoh library yang kamu instal. Kami membahas pengkabelan dan cara menemukan alamat I2C secara rinci di Cara Memakai Layar LCD I2C.
Uji instalasinya: tampilan suhu dengan dua library
Cara tercepat untuk mengecek apakah library-mu terinstal dengan benar adalah mengompilasi sketch kecil yang memakainya. Kode di bawah menampilkan suhu dan kelembapan yang dibaca dari DHT11 di LCD I2C 16x2. Instal DHT sensor library (beserta dependensinya) dan LiquidCrystal I2C dari Library Manager; sambungkan pin data DHT11 ke pin 2 Arduino Uno dan pin SDA serta SCL LCD ke A4 dan A5. Kamu bisa melihat letak pin-pin itu di board dengan alat Pinout.
1// Gereken kütüphaneler / Required libraries (Kütüphane Yöneticisi / Library Manager):
2// DHT sensor library (Adafruit) + Adafruit Unified Sensor
3// LiquidCrystal I2C (Frank de Brabander)
4#include <Wire.h> // kart paketiyle gelir / bundled with the board package
5#include <DHT.h> // DHT sensor library
6#include <LiquidCrystal_I2C.h> // LiquidCrystal I2C
7
8#define DHT_PIN 2 // DHT11 veri pini / DHT11 data pin
9#define DHT_TYPE DHT11 // DHT22 için DHT22 yaz / write DHT22 for a DHT22
10
11DHT dht(DHT_PIN, DHT_TYPE);
12LiquidCrystal_I2C lcd(0x27, 16, 2); // adres, sütun, satır / address, columns, rows
13
14void setup() {
15 Serial.begin(9600);
16 dht.begin();
17 lcd.init(); // bu kütüphanede begin() değil init() / init(), not begin(), in this library
18 lcd.backlight(); // arka ışığı aç / backlight on
19 lcd.print(F("Kutuphaneler OK"));
20 delay(1500);
21}
22
23void loop() {
24 float t = dht.readTemperature(); // santigrat / Celsius
25 float h = dht.readHumidity(); // bağıl nem % / relative humidity %
26
27 if (isnan(t) || isnan(h)) { // sensör cevap vermedi / sensor did not respond
28 Serial.println(F("DHT okunamadi / DHT read failed"));
29 delay(2000);
30 return;
31 }
32
33 lcd.clear();
34 lcd.setCursor(0, 0); // sütun 0, satır 0 / column 0, row 0
35 lcd.print(F("Sicaklik: "));
36 lcd.print(t, 1);
37 lcd.print(F(" C"));
38 lcd.setCursor(0, 1); // ikinci satır / second row
39 lcd.print(F("Nem: %"));
40 lcd.print(h, 0);
41
42 Serial.print(t);
43 Serial.print(F(" C "));
44 Serial.print(h);
45 Serial.println(F(" %"));
46 delay(2000); // DHT11 en fazla saniyede bir ölçer / DHT11 measures at most once per second
47}Baris-baris #include di atas memberi tahu compiler file library mana yang perlu ditambahkan. Wire.h ikut bersama paket board, jadi tidak perlu diinstal terpisah; DHT.h dan LiquidCrystal_I2C.h berasal dari library yang baru saja kamu instal. Jika kamu mengklik Verify dan melihat baris Sketch uses ... bytes di panel output, semua library sudah ditemukan. Jika kamu melihat pesan merah No such file or directory, lompat ke bagian error di bawah. Cara kerja sensor dan perbedaannya dengan DHT22 dibahas di Sensor Suhu dan Kelembapan DHT11.
Cara 2: Tambahkan library dari file .ZIP
Sebagian library tidak ada di Library Manager: mungkin library baru yang belum ditambahkan ke indeks, driver yang dibagikan produsen sensor di situsnya sendiri, atau library khusus dari buku, kursus, atau gurumu. Library seperti ini biasanya dibagikan lewat GitHub atau sebagai file .zip biasa. Arduino IDE bisa membongkar arsipnya dan menaruhnya di folder yang tepat sendiri:
- Di halaman GitHub library, klik tombol hijau Code dan pilih Download ZIP. Jika halamannya punya bagian Releases, mengunduh zip rilis stabil dari sana lebih aman.
- Biarkan file yang sudah diunduh apa adanya, tanpa diekstrak. IDE mengekstrak zip-nya sendiri; menu ini tidak menerima folder.
- Di Arduino IDE, buka Sketch > Include Library > Add .ZIP Library....
- Di jendela yang terbuka, pilih file .zip yang kamu unduh lalu klik Open.
- Jika instalasi berhasil, notifikasi Successfully installed library from ... archive muncul di kanan bawah. Jika library dengan nama yang sama sudah ada, IDE bertanya apakah kamu ingin menimpanya; konfirmasi jika kamu ingin mengganti versi yang terinstal dengan yang baru.
- Pastikan library sudah masuk dengan mencari namanya di File > Examples > Examples from Custom Libraries.
Cara 3: Salin library ke folder libraries secara manual
Instalasi manual berguna di laboratorium sekolah tanpa koneksi internet, untuk folder library yang diberikan temanmu lewat flashdisk, atau untuk file zip yang ditolak IDE. Yang perlu kamu lakukan hanyalah menaruh folder library di tempat yang tepat, dengan struktur yang tepat:
- Tutup Arduino IDE. IDE memindai daftar library ketika dimulai, jadi mungkin tidak melihat folder yang disalin selama ia berjalan.
- Ekstrak file-nya dan cari folder yang berisi file library.properties atau file .h library. Itulah folder akar library.
- Salin folder ini ke folder libraries di sketchbook-mu (biasanya Documents\Arduino\libraries di Windows). Jika tidak ada folder libraries, buat sendiri; namanya harus persis libraries, dengan huruf kecil.
- Hapus akhiran -master atau -main dari nama folder; misalnya, ganti nama IRremote-master menjadi IRremote. Nama folder library harus dimulai dengan huruf atau angka, hanya berisi huruf Latin dasar, angka, garis bawah, titik, dan tanda hubung, dan panjangnya paling banyak 63 karakter; jangan pakai spasi atau karakter beraksen.
- Buka IDE lagi dan pastikan library muncul di menu File > Examples.
| Struktur folder | Hasil |
|---|---|
| libraries/DHT_sensor_library/DHT.h | Benar: tata letak lama (datar), IDE menemukannya |
| libraries/DHT_sensor_library/library.properties + src/DHT.h (tata letak baru) | Benar: tata letak sekarang, IDE menemukannya |
| libraries/DHT-master/DHT-sensor-library-master/DHT.h (folder bersarang) | Salah: kelebihan satu tingkat folder, IDE tidak bisa menemukan library-nya |
| libraries/DHT.h (file tanpa folder) | Salah: setiap library harus berada di foldernya sendiri |
| libraries/My Library/ | Berisiko: spasi dan karakter beraksen melanggar aturan penamaan dan bisa menimbulkan masalah build |
| Folder instalasi IDE (mis. Program Files) | Salah: Arduino IDE 2 tidak pernah mencari library di sana; di IDE 1.8 lama library di sana bisa terhapus ketika IDE diperbarui atau dihapus |
Mengganti versi library: memperbarui dan kembali ke versi lama
Library berkembang seiring waktu, dan pada perubahan versi besar sebagian fungsi bisa berganti nama atau bekerja berbeda. Jika contoh yang kamu temukan di internet ditulis untuk versi beberapa tahun lalu, contoh itu mungkin tidak bisa dikompilasi dengan versi terbaru, atau bisa dikompilasi tapi berperilaku salah. Dalam kasus itu kamu kembali ke versi tempat kode itu ditulis atau menyesuaikan kodenya dengan versi baru. Library Manager berganti versi dalam beberapa klik:
- Cari nama library di Library Manager atau atur filter Type ke Installed. Kartunya menampilkan versi yang terinstal.
- Buka daftar versi di bagian bawah kartu. Semua versi library yang pernah diterbitkan tercantum di Other Versions.
- Pilih versi yang kamu mau lalu klik Install. IDE menghapus versi lama dan menginstal versi yang kamu pilih; satu library hanya punya satu versi di folder libraries.
- Ketika dimulai, IDE kadang menampilkan notifikasi Updates are available for some of your libraries. Sebelum memperbarui semuanya sekaligus dari sana, catat versi apa yang dipakai proyek-proyekmu yang sudah berfungsi; pembaruan massal bisa mengubah versi besar banyak library sekaligus.
- Untuk menghapus library sepenuhnya, arahkan kursor ke kartunya lalu klik Remove; IDE meminta konfirmasi dan menghapus foldernya dari libraries.
| Library | Kode lama | Kode baru | Gejala jika tidak cocok |
|---|---|---|---|
| IRremote | 2.x: IRrecv irrecv(11); irrecv.decode(&results); results.value (API lama) | 3.x dan 4.x: IrReceiver.begin(11); IrReceiver.decode(); IrReceiver.decodedIRData.command | Peringatan deprecated di kode lama, kode tombol kosong atau salah |
| ArduinoJson | 6.x: StaticJsonDocument<200> doc; | 7.x: JsonDocument doc; | 7.x mengompilasi kelas lama dengan peringatan deprecated; kode 5.x (StaticJsonBuffer) sama sekali tidak bisa dikompilasi |
| LiquidCrystal I2C | Versi GitHub: lcd.begin(); | Versi Library Manager: lcd.init(); | “no matching function for call to 'LiquidCrystal_I2C::begin()'” |
| Paket board ESP32 dan ESP32Servo | Paket board 2.x: ledcSetup(), ledcAttachPin() | Paket board 3.x: ledcAttach(); ESP32Servo 3.x | “'ledcSetup' was not declared in this scope” |
Cara terbaik untuk mencatat versi tempat kodemu ditulis adalah menaruh nama dan versi library di komentar di bagian atas file. Sebagian library juga melaporkan versinya lewat makro; ArduinoJson, misalnya, mendefinisikan ARDUINOJSON_VERSION_MAJOR. Sketch di bawah menghentikan build dengan pesan yang jelas jika versi besar yang terinstal salah; dengan versi yang benar, sketch ini membuat string JSON kecil dan mencetak versi library ke Serial Monitor:
1// ArduinoJson 7.x (Benoit Blanchon) gerekir / requires ArduinoJson 7.x
2#include <ArduinoJson.h>
3
4#if ARDUINOJSON_VERSION_MAJOR < 7
5#error "Bu kod ArduinoJson 7 ister, Kutuphane Yoneticisinden surumu degistir / This sketch needs ArduinoJson 7"
6#endif
7
8void setup() {
9 Serial.begin(115200);
10 while (!Serial) {} // yerel USB'li kartlarda seri portu bekle / wait for native USB serial
11
12 JsonDocument doc; // 7.x: boyut vermek gerekmez / 7.x: no capacity needed
13 doc["sensor"] = "DHT11";
14 doc["sicaklik"] = 23.5;
15 doc["nem"] = 48;
16
17 serializeJson(doc, Serial); // {"sensor":"DHT11","sicaklik":23.5,"nem":48}
18 Serial.println();
19 Serial.print(F("ArduinoJson: "));
20 Serial.println(ARDUINOJSON_VERSION); // ör. / e.g. 7.4.2
21}
22
23void loop() {
24}Dengan pendekatan ini, ketika kamu membagikan kode ke teman sekelas atau di internet, orang yang menginstal versi yang salah melihat satu baris yang memberi tahu apa yang harus dilakukan, bukan error yang membingungkan. Jika kamu suka command line, kamu bisa menginstal versi tertentu langsung dengan Arduino CLI: arduino-cli lib install "DHT sensor [email protected]". Untuk melihat versi library mana yang benar-benar dipakai, nyalakan verbose output selama kompilasi di Preferences; di akhir build, baris Using library ... at version ... in folder: ... dicetak untuk setiap library.
Error No such file or directory dan cara mengatasinya
Ini error yang paling sering kamu lihat ketika menambahkan library. Jika compiler tidak bisa menemukan file yang diminta baris #include di folder library mana pun, panel output menampilkan fatal error: DHT.h: No such file or directory dan compilation terminated., dan notifikasi Compilation error: DHT.h: No such file or directory muncul di kanan bawah. Nama file di pesan itu memberi tahu library mana yang hilang. Ingat bahwa file itu tidak selalu berasal dari baris yang kamu tulis; library yang kamu instal bisa saja menyertakan library lain:
| File di pesan | Penyebab | Solusi |
|---|---|---|
| File yang disertakan kodemu (DHT.h, LiquidCrystal_I2C.h) | Library-nya belum pernah diinstal | Cari di Library Manager lalu instal |
| Adafruit_Sensor.h (di kode DHT) | Dependensi hilang: Install without dependencies dipilih ketika instalasi | Instal library Adafruit Unified Sensor |
| Adafruit_I2CDevice.h (di kode OLED atau RTC) | Adafruit BusIO tidak ada | Instal library Adafruit BusIO |
| OneWire.h (di kode DS18B20) | DallasTemperature tidak menginstal OneWire secara otomatis | Instal library OneWire secara terpisah |
| SoftwareSerial.h (di ESP32) | Library ini ikut bersama paket board AVR dan tidak ada di paket ESP32 | Pakai port serial hardware (Serial2) atau instal library EspSoftwareSerial |
| Dht.h, liquidcrystal_i2c.h | Huruf besar atau kecil salah; IDE mencari nama header huruf demi huruf, jadi ini gagal juga di Windows dan macOS | Tulis baris #include persis seperti nama file di library |
| Library terlihat terinstal tapi file-nya tidak ditemukan | Kelebihan satu tingkat folder karena salin manual, atau sketchbook yang berbeda dari yang dipakai IDE (OneDrive) | Cek struktur folder dan lokasi sketchbook di Preferences |
Apa arti peringatan Multiple libraries were found?
Pesan ini muncul ketika lebih dari satu library bisa memenuhi sebuah baris #include di kodemu. Misalnya, jika kamu pernah menginstal library Servo lama dari proyek sebelumnya di folder Documents, bersama library Servo bawaan IDE ada dua kandidat, dan output menampilkan Multiple libraries were found for "Servo.h" diikuti Used: C:\Users\<user>\Documents\Arduino\libraries\Servo dan Not used: C:\Users\<user>\AppData\Local\Arduino15\libraries\Servo. Ini bukan error, melainkan informasi; build tetap berjalan. Masalah hanya muncul jika library di baris Used bukan yang kamu inginkan. IDE memilih kira-kira dengan urutan ini:
| Urutan | Yang dicek IDE | Contoh |
|---|---|---|
| 1 | Kompatibilitas arsitektur | Di ESP32, library yang library.properties-nya menyebut esp32 atau * lebih diutamakan daripada yang hanya menyebut avr |
| 2 | Kecocokan nama | Untuk Servo.h, folder yang namanya persis Servo menang atas folder Servo-master atau MyServo |
| 3 | Optimasi khusus board | Library yang mencantumkan arsitektur board secara eksplisit (mis. architectures=esp32) lebih diutamakan daripada yang hanya menyebut * |
| 4 | Lokasi | Folder libraries di sketchbook-mu didahulukan daripada library paket board, yang didahulukan daripada library bawaan IDE |
| 5 | Pilihan terakhir | Jika semua hal lain sama, dipilih library yang namanya paling dekat dengan nama file yang disertakan |
- Baca baris Used: apakah folder yang dipakai adalah library yang kamu harapkan? Jika ya, kamu tidak perlu melakukan apa-apa; pesannya bisa diabaikan.
- Hapus salinan yang berlebih: jika library yang salah terpilih, cari di Library Manager lalu klik Remove, atau hapus foldernya dari folder libraries di sketchbook-mu selagi IDE tertutup.
- Hati-hati dengan sisa dari IDE lama: library lama yang disalin manual di zaman Arduino IDE 1.8 berada di folder Documents dan, berkat prioritas lokasi, menimpa library bawaan IDE yang lebih baru.
- Jangan simpan dua salinan library yang sama: jika folder libraries berisi dua salinan seperti IRremote dan IRremote-master, Library Manager tidak bisa memperbarui library itu dan memintamu menghapus duplikatnya secara manual.
- Cadangkan sebelum menghapus: alih-alih menghapus folder, pindahkan dulu sementara ke desktop; jika semuanya berjalan, hapus nanti.
Membuka contoh library dan menambahkan library ke kodemu
Cara tercepat mempelajari sebuah library adalah lewat contoh-contoh sketch-nya. Contohnya ikut bersama versi yang kamu instal, jadi berbeda dengan kode dari internet, contoh itu selalu cocok dengan versi yang terinstal. Menu File > Examples disusun untuk board yang dipilih dan punya bagian-bagian ini:
- Contoh bawaan: contoh dasar IDE, seperti 01.Basics dan 02.Digital, tempat Blink berada.
- Bagian yang dinamai sesuai board-mu (mis. Examples for Arduino Uno): contoh dari library yang ikut bersama IDE dan paket board yang dipilih. Dengan Uno terpilih kamu akan menemukan Servo, EEPROM, dan SoftwareSerial di sini; dengan ESP32 terpilih, WiFi, WebServer, dan Preferences.
- Examples from Custom Libraries: contoh dari library yang kamu instal sendiri, misalnya DHT sensor library > DHTtester.
Kamu juga bisa mencapai contoh library yang terinstal dari menu tiga titik di samping kartunya di Library Manager. Contohnya terbuka di jendela baru; ketika kamu mengubahnya dan ingin menyimpan, IDE meminta nama dan lokasi baru, karena file contoh disimpan dalam mode baca-saja di folder library. Untuk menambahkan library ke sketch-mu sendiri, cukup klik nama library di menu Sketch > Include Library: IDE menulis baris #include yang diperlukan di bagian atas kodemu. Sebagian library berisi beberapa file header, jadi menu ini bisa menambahkan beberapa baris; kamu bisa menghapus yang tidak dipakai.
Kompatibilitas library di ESP32

Karena ESP32 juga diprogram dengan Arduino IDE, kebanyakan library, terutama library sensor dan layar yang berkomunikasi lewat I2C, SPI, atau satu kabel, bekerja di ESP32 tanpa perubahan. Yang bermasalah adalah library yang langsung menyentuh timer dan register prosesor ATmega328P di Arduino Uno. Jika IDE tidak melihat arsitektur ESP32 di file library.properties sebuah library, IDE mencetak peringatan ini di awal build: WARNING: library LiquidCrystal I2C claims to run on avr architecture(s) and may be incompatible with your current board which runs on esp32 architecture(s). Itu hanya peringatan: LiquidCrystal I2C hanya memakai library Wire, jadi bekerja baik di ESP32. Library Servo, sebaliknya, sengaja menghentikan build dengan pesan #error yang diawali This library only supports boards with an AVR, SAM, SAMD, NRF52. Selain itu, jangan instal library WiFi, WebServer, HTTPClient, Preferences, dan BluetoothSerial yang ikut bersama paket board ESP32 dari Library Manager; library lain dengan nama yang sama hanya menimbulkan kebingungan.
| Yang kamu pakai di Uno | Pakai di ESP32 | Kenapa? |
|---|---|---|
| Servo | ESP32Servo (Library Manager) | Library Servo tidak mendukung ESP32 dan berhenti dengan #error |
| SoftwareSerial | Serial1, Serial2 (UART hardware) atau EspSoftwareSerial | SoftwareSerial milik paket AVR; ESP32 sudah punya tiga UART hardware |
| EEPROM | Preferences (ikut bersama paket board) | Di ESP32, EEPROM diemulasikan di flash; Preferences menyimpan data kunci-nilai dengan lebih aman dan mudah |
| TimerOne, MsTimer2 | Ticker (ikut bersama paket board) | Library yang mengakses register timer AVR tidak bisa dikompilasi di ESP32 |
Jika kamu ingin memakai sketch yang sama di Uno, ESP32, dan Pico, kamu bisa memilih library yang tepat untuk setiap board dengan makro arsitektur yang didefinisikan paket board. Paket ESP32 mendefinisikan ARDUINO_ARCH_ESP32, paket arduino-pico untuk Pico ARDUINO_ARCH_RP2040, dan board AVR seperti Uno dan Nano ARDUINO_ARCH_AVR. Sketch servo di bawah bisa dikompilasi di ketiga board; untuk ESP32 kamu hanya perlu menginstal library ESP32Servo:
1// Aynı kod Uno, ESP32 ve Pico'da / Same sketch on Uno, ESP32 and Pico
2#if defined(ARDUINO_ARCH_ESP32)
3 #include <ESP32Servo.h> // Kütüphane Yöneticisi: ESP32Servo / Library Manager: ESP32Servo
4 const int SERVO_PIN = 18; // güvenli bir GPIO / a safe GPIO
5#elif defined(ARDUINO_ARCH_RP2040)
6 #include <Servo.h> // arduino-pico paketiyle gelir / bundled with the arduino-pico core
7 const int SERVO_PIN = 15; // GP15
8#else
9 #include <Servo.h> // IDE ile gelir (Uno, Nano, Mega) / bundled with the IDE
10 const int SERVO_PIN = 9;
11#endif
12
13Servo servo;
14
15void setup() {
16#if defined(ARDUINO_ARCH_ESP32)
17 servo.setPeriodHertz(50); // yalnız ESP32: 50 Hz servo sinyali / ESP32 only: 50 Hz servo signal
18#endif
19 servo.attach(SERVO_PIN, 500, 2400); // darbe aralığı mikrosaniye / pulse range in microseconds
20}
21
22void loop() {
23 servo.write(0); delay(1000); // 0 derece / 0 degrees
24 servo.write(90); delay(1000); // orta konum / center
25 servo.write(180); delay(1000); // 180 derece / 180 degrees
26}Di ESP32 juga penting agar versi library cocok dengan versi paket board. Di seri 3.x paket board ESP32, fungsi PWM (LEDC) berubah: ledcSetup() dan ledcAttachPin() dihapus dan diganti dengan ledcAttach(). Karena itu versi library dan contoh yang memakai fungsi lama gagal di 3.x dengan 'ledcSetup' was not declared in this scope. Versi ESP32Servo yang sekarang ditulis untuk paket board 3.x. Solusinya adalah pindah ke versi library yang sekarang atau, jika kamu perlu mem-build proyek lama tanpa perubahan, menurunkan paket esp32 di Boards Manager ke 2.0.17, rilis 2.x terakhir. Kamu akan menemukan pin board dan proyek Wi-Fi pertama di Apa Itu ESP32?, serta pengkabelan dan daya servo di Apa Itu Motor Servo?.
Library di Raspberry Pi Pico: Arduino IDE dan MicroPython
Jika kamu memprogram Pico dengan Arduino IDE (paket board Raspberry Pi Pico/RP2040/RP2350 buatan Earle F. Philhower), library diinstal dengan cara yang sama seperti di Uno dan masuk ke folder libraries yang sama. Nama arsitektur paket ini adalah rp2040; chip RP2350 di Pico 2 memakai nama yang sama. Wire, SPI, Servo, EEPROM, dan SoftwareSerial berbasis PIO sudah ada di dalam paket board, dan di Pico W library WiFi juga sudah siap. Kebanyakan library sensor dan layar Adafruit bekerja baik di Pico; library yang menyentuh register AVR juga tidak bekerja di sini. Di Pico, EEPROM diemulasikan di flash, jadi kamu memulainya dengan EEPROM.begin() dan menyimpan perubahan dengan EEPROM.commit().
Di MicroPython, library adalah file .py (atau .mpy yang sudah dikompilasi) di sistem file Pico, biasanya ditaruh di folder /lib. Modul seperti machine, time, dht, onewire, ds18x20, neopixel, dan framebuf sudah ikut bersama MicroPython; ketik help("modules") di Shell Thonny untuk melihat daftar lengkapnya. Kamu bisa menambahkan driver yang tidak ada di daftar dengan empat cara:
| Cara | Kapan? | Bagaimana? |
|---|---|---|
| Pengelola paket Thonny | Cara termudah, dengan Pico tersambung lewat USB | Cari di Tools > Manage packages; untuk ssd1306, misalnya, pilih micropython-ssd1306 lalu instal. File-nya masuk ke folder /lib di Pico |
| mpremote | Jika kamu memakai command line | Di komputermu, mpremote mip install ssd1306 mengunduh library dari micropython-lib dan menyalinnya ke Pico |
| mip (hanya Pico W) | Dengan Pico W tersambung ke Wi-Fi, tanpa komputer | Jalankan import mip dan mip.install("ssd1306") di Pico itu sendiri |
| Salin manual | Jika library-nya satu file .py | Di panel Files Thonny, buka folder /lib di Pico, klik kanan file di komputermu lalu upload ke Pico |
1# Pico W: kütüphane yoksa karttan kur, sonra dene / Pico W: install the library from the board if missing, then test
2import time
3
4try:
5 import ssd1306 # zaten kurulu mu? / already installed?
6except ImportError:
7 import network, mip
8 wlan = network.WLAN(network.STA_IF)
9 wlan.active(True)
10 wlan.connect("AG_ADI", "SIFRE") # kendi Wi-Fi ağın / your own Wi-Fi network
11 for _ in range(40): # en fazla 20 sn bekle / wait up to 20 s
12 if wlan.isconnected():
13 break
14 time.sleep(0.5)
15 if not wlan.isconnected(): # ağa bağlanamadı / could not join the network
16 raise RuntimeError("Wi-Fi baglantisi yok / no Wi-Fi connection")
17 mip.install("ssd1306") # /lib klasörüne iner / lands in /lib
18 import ssd1306
19
20from machine import Pin, I2C
21
22i2c = I2C(0, sda=Pin(4), scl=Pin(5), freq=400000) # GP4 = SDA, GP5 = SCL
23oled = ssd1306.SSD1306_I2C(128, 64, i2c)
24oled.fill(0) # ekranı temizle / clear the screen
25oled.text("Kutuphane OK", 0, 0)
26oled.show() # ekrana gönder / push to the screenBagian pertama kode mencoba mengimpor modul ssd1306; jika tidak ada, kode menyambungkan Pico W ke Wi-Fi, mengunduh library dari micropython-lib, lalu menulis teks di layar. Di Pico tanpa Wi-Fi, kamu melakukan pekerjaan yang sama dari komputer dengan Thonny atau mpremote. Pengkabelan OLED dan perintah menggambar ada di Cara Memakai Layar OLED (SSD1306), dan perintah dasar serta sistem file MicroPython di Dasar-dasar MicroPython. Jika kamu baru pertama kali menyiapkan Pico, mulailah dari Apa Itu Raspberry Pi Pico?.
Kesalahan umum ketika menambahkan library
- Menginstal library tapi lupa paket board: menginstal library untuk ESP32 atau Pico tidak mengajari IDE board-nya; instal dulu paket board dari Boards Manager, baru library-nya.
- Melewatkan dependensi: Install without dependencies adalah penyebab paling umum error file hilang seperti Adafruit_Sensor.h atau Adafruit_I2CDevice.h.
- Mengekstrak dulu lalu memakai menu .ZIP: menu itu hanya menerima file zip; jika kamu punya folder, salin ke folder libraries secara manual.
- Menaruh library di tempat yang salah: library yang disalin ke folder sketch, ke desktop, atau ke folder instalasi IDE tidak akan ditemukan; tempat yang benar adalah folder libraries di sketchbook-mu.
- Beberapa salinan library yang sama: dua folder seperti IRremote dan IRremote-master menimbulkan peringatan Multiple libraries dan versi yang salah terpakai; hapus salah satunya.
- Memperbarui semuanya tanpa melihat: pembaruan yang melompati versi besar bisa merusak proyek yang sudah berfungsi; lihat sekilas catatan rilis library sebelum memperbarui.
- Karakter beraksen atau spasi di library buatanmu: jika kamu menulis library sendiri, pakai hanya huruf Latin dasar, angka, dan garis bawah di nama folder dan file.
Begitu kamu terbiasa menginstal library Arduino, setiap sensor dan layar baru hanya butuh beberapa menit: cari library dari pembuat yang tepat di Library Manager, instal bersama dependensinya, coba dulu contoh bawaan library, lalu lanjut ke kodemu sendiri. Di aplikasi BlueGrays kamu akan menemukan proyek yang memakai library, seperti suhu dan kelembapan dengan DHT11, LCD I2C, motor servo, pembaca kartu RFID, remote IR, LED WS2812B, dan game Pong di OLED, lengkap dengan skema rangkaian dan kode yang dijelaskan langkah demi langkah.
Pertanyaan umum
Di mana library Arduino diinstal?
Library yang kamu instal dengan Library Manager, file .ZIP, atau secara manual masuk ke folder libraries di sketchbook-mu; di Windows biasanya Documents\Arduino\libraries, di Linux ~/Arduino/libraries. Kamu bisa melihat lokasi persisnya di kolom Sketchbook location di File > Preferences. Library bawaan yang ikut bersama IDE dan library paket board disimpan terpisah di folder Arduino15.
Kenapa library ZIP yang kuunduh tidak mau terinstal di Arduino IDE?
Penyebab paling umum adalah zip-nya berisi beberapa folder, bukan satu folder library, atau library-nya terkubur di subfolder; IDE lalu melaporkan “multiple files found in zip file top level” atau “library not valid”. Ekstrak zip-nya, cari folder yang berisi library.properties atau file .h, lalu salin folder itu ke libraries secara manual. Jika sudah kamu ekstrak, menu .ZIP tidak akan menerima foldernya.
Bagaimana cara menghapus library Arduino?
Cari library di Library Manager, arahkan kursor ke kartunya, lalu klik Remove; IDE menghapus foldernya dari libraries. Library yang kamu instal secara manual bisa dihapus dari folder libraries di sketchbook-mu selagi IDE tertutup. Jangan sentuh library paket board di folder Arduino15.
Bagaimana cara mengatasi “No such file or directory” di Arduino?
Cari tahu file .h di pesan itu milik library mana, lalu instal library itu dari Library Manager. Jika itu header yang tidak kamu tulis sendiri (mis. Adafruit_Sensor.h), ada dependensi library yang kamu instal yang hilang. Jika error-nya tetap muncul walaupun library sudah terinstal, cek huruf besar dan kecil di baris #include dan struktur folder yang kamu salin secara manual.
Bisakah aku menginstal library Arduino tanpa internet?
Bisa. Unduh file zip library di komputer lain yang tersambung internet dan bawa dengan flashdisk. Tambahkan zip-nya dengan Add .ZIP Library, atau salin folder yang sudah diekstrak ke folder libraries di sketchbook-mu; jangan lupa membawa dependensi library dengan cara yang sama, satu per satu.
Apakah library Arduino bekerja di ESP32 dan Raspberry Pi Pico?
Kebanyakan library sensor dan layar yang berkomunikasi lewat I2C, SPI, atau satu kabel bekerja tanpa perubahan di ESP32 dan di paket Arduino untuk Pico. Library seperti Servo dan TimerOne yang langsung mengakses timer prosesor AVR diganti di ESP32 dengan ESP32Servo dan Ticker, sedangkan paket board Pico menyertakan library Servo-nya sendiri. Peringatan “claims to run on avr architecture(s)” saja tidak berarti library-nya tidak akan bekerja.
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
Suhu dan Kelembapan dengan DHT11
Seberapa hangat kamarmu, dan apakah udaranya lembap atau kering? Sensor DHT11 mengukur suhu dan kelembapan, dan Arduino menulis nilainya di layar LCD dua baris, diperbarui setiap beberapa detik. Jika

Menggunakan Layar LCD dengan I2C
Beri Arduino-mu layar sendiri dan buat ia menulis pesan pertamanya. Layar LCD dua baris tersambung hanya dengan beberapa kabel; sapaan muncul di baris atas, lalu pesan kedua di baris bawah, layar dibe

Menggunakan Motor Servo
Lengan motor servo kecil berputar ke tiga posisi bergantian: penuh ke awal, tepat ke tengah, dan penuh ke akhir, menunggu dua detik di setiap perhentian. Arduino memberi tahu motor sudut mana yang har

Membaca Kode Remote Control IR
Setiap tombol di remote TV-mu mengirim kode rahasia lewat cahaya yang tidak bisa kamu lihat. Penerima inframerah menangkap cahaya itu, dan Arduino menulis kode setiap tombol yang kamu tekan ke layar k

Membaca Nilai RFID
Gantungan kunci akses gedung atau kartu aksesmu menyimpan nomor ID rahasia, dan proyek ini membacanya. Dekatkan kartu ke pembaca RFID dan Arduino menulis nomor kartunya ke layar komputermu. Langkah pe

Menggunakan LED Strip WS2812B
Kenalan dengan LED strip pintar yang setiap lampunya bisa kamu warnai sendiri-sendiri. Arduino pertama-tama menyalakan lima LED pertama dengan warna merah, sedetik kemudian lima lainnya biru, lalu mem

Game Bola Pemukul - SSD1306
Satu bola, dua pemukul, dan kamu: kamu bermain tenis meja, salah satu video game paling awal, di layar OLED kecil. Dua tombol menggerakkan pemukulmu di kanan ke atas dan ke bawah, sementara komputer m

Menyiapkan Modul Jam RTC DS1302
Kamu menjalankan modul jam kecil yang tidak pernah lupa waktu, bahkan ketika Arduino dimatikan. Modul ini punya baterai mungilnya sendiri, dan begitu jamnya diatur, tanggal dan waktu tercetak di layar
Artikel lainnya
Aplikasi BlueGrays
Rakit rangkaian ini langkah demi langkah di ponselmu
Skema pengkabelan, kode, dan daftar komponen dalam satu layar. 200+ proyek Arduino, ESP32, dan Pico siap dibuat.
Pindai dengan ponselmu
Arahkan kamera ke kode ini dan toko aplikasi di ponselmu akan terbuka.
atau buka toko aplikasi

