Arduino Uno R4 WiFi vs Minima: Perbedaan dengan R3 dan Proyek Pertama
Apa yang baru di Arduino Uno R4 Minima dan WiFi dibanding R3? RA4M1 32-bit, DAC 12-bit, batas 8 mA per pin, kompatibilitas library, dan proyek Wi-Fi dengan LED matrix.
Arduino Uno R4 adalah revisi keempat dari Uno, board pengembangan yang paling banyak dipakai di dunia, sekaligus Uno pertama yang memakai prosesor 32-bit, bukan AVR 8-bit. Ada dua model: Uno R4 Minima yang lebih sederhana dan lebih murah, serta Uno R4 WiFi dengan Wi-Fi, Bluetooth, dan LED matrix 12x8. Keduanya tetap memakai ukuran, susunan pin, dan tegangan kerja 5 V yang sama dengan R3, jadi sebagian besar shield dan rangkaian bisa langsung dipasang apa adanya. Di sisi lain, memori programnya 8 kali lebih besar, prosesornya 3 kali lebih cepat, dan ada tambahan output analog sungguhan (DAC), bus CAN, jam bawaan (RTC), serta dukungan keyboard dan mouse USB.
Di panduan ini kamu akan tahu persis di mana R4 berbeda dari R3, cara memilih antara Minima dan WiFi, sketch dan library lama mana yang jalan tanpa masalah dan mana yang tidak bisa dikompilasi, serta kenapa kamu harus mematuhi batas 8 mA per pin. Di akhir, kita akan membuat proyek pertamamu yang memakai LED matrix dan Wi-Fi R4 WiFi sekaligus, lalu mengendalikannya dari ponsel.

Apa itu Arduino Uno R4? Model Minima dan WiFi
Jantung kedua model adalah mikrokontroler RA4M1 (R7FA4M1AB3CFM) buatan Renesas: inti Arm Cortex-M4 yang berjalan di 48 MHz dengan unit floating point (FPU). Berbeda dari kebanyakan board 32-bit, chip ini bekerja di 5 V, dan itulah alasan utama Arduino memilih RA4M1 untuk R4. Minima hanya membawa chip ini. Model WiFi menambahkan modul ESP32-S3-MINI-1 yang menyediakan Wi-Fi dan Bluetooth sekaligus menjadi jembatan yang berkomunikasi dengan komputermu lewat USB. Karena ESP32-S3 bekerja di 3,3 V, ada level shifter di antara kedua chip.
| Fitur | Uno R4 Minima | Uno R4 WiFi |
|---|---|---|
| Prosesor utama | RA4M1, 32-bit, 48 MHz | RA4M1, 32-bit, 48 MHz |
| Wi-Fi dan Bluetooth | Tidak ada | ESP32-S3: Wi-Fi 4 (2,4 GHz) dan Bluetooth 5 LE |
| LED matrix | Tidak ada | 12x8, 96 LED merah |
| Konektor Qwiic | Tidak ada | Ada (Wire1, hanya 3,3 V) |
| Koneksi USB | USB bawaan RA4M1 | Dijembatani lewat ESP32-S3 |
| Pin CAN | D4 (TX), D5 (RX) | D10 (TX), D13 (RX) |
| Header debug | Konektor SWD | Header ESP32-S3 (3,3 V) |
| Pin tambahan | Tidak ada | OFF (mematikan board) dan VRTC (baterai jam) |
| Pin 3,3 V | Dari regulator USB internal RA4M1, arus kecil | Regulator 3,3 V terpisah |
Perbedaan antara Uno R3 dan Uno R4
| Fitur | Uno R3 | Uno R4 (Minima dan WiFi) |
|---|---|---|
| Prosesor | ATmega328P, 8-bit, 16 MHz | RA4M1 Cortex-M4, 32-bit, 48 MHz, FPU |
| Flash (memori program) | 32 KB | 256 KB |
| SRAM | 2 KB | 32 KB |
| EEPROM | 1 KB | 8 KB (data flash) |
| Tegangan kerja | 5 V | 5 V |
| Arus per pin | 20 mA disarankan, 40 mA maksimum mutlak | 8 mA |
| Input analog (ADC) | 6 kanal, 10-bit | 6 kanal, hingga 14-bit (default 10-bit) |
| Output analog (DAC) | Tidak ada | 1 kanal, 12-bit (A0) |
| Op-amp | Tidak ada | Bawaan (A1, A2, A3) |
| Bus CAN | Tidak ada | Ada (perlu transceiver eksternal) |
| Jam real-time (RTC) | Tidak ada | Bawaan |
| USB | USB-B, jembatan ATmega16U2 | USB-C, dukungan keyboard dan mouse (HID) |
| Tegangan input VIN | 7–12 V disarankan | 6–24 V |
| Port serial | Serial: USB dan D0/D1 berbagi | Serial: USB, Serial1: D0/D1 |
Baris terpenting di tabel ini adalah memori dan kecepatan. SRAM 2 KB di R3 sudah penuh dengan beberapa variabel String dan satu buffer layar; di proyek dengan layar OLED, array panjang, atau parsing JSON, board mulai macet atau reset secara acak. SRAM 32 KB di R4 hampir menghilangkan masalah itu. Berkat FPU, perhitungan float (kalibrasi sensor, PID, trigonometri) dikerjakan oleh hardware dan berkali-kali lebih cepat daripada di R3. Bagian daya juga banyak berubah: regulator linear R3 jadi panas di 12 V, sedangkan R4 memakai buck converter switching, jadi board menerima tegangan hingga 24 V dan tetap jauh lebih dingin.
Hardware baru yang hadir bersama R4
- DAC 12-bit (A0): berbeda dari PWM, DAC menghasilkan tegangan analog sungguhan; dipakai untuk audio, gelombang sinus, dan generator sinyal sederhana. Library analogWave di paket board menghasilkan gelombang sinus, kotak, dan gigi gergaji hanya dengan satu baris.
- ADC 14-bit: dengan analogReadResolution(14) kamu membaca nilai dari 0 sampai 16383; dengan referensi 5 V, satu langkah sekitar 0,3 mV, dibanding 4,9 mV di R3. Supaya sketch lama tidak rusak, resolusi default-nya tetap 10-bit.
- Op-amp bawaan: ada di pin A1 (+), A2 (–), dan A3 (output); kamu bisa menguatkan sinyal sensor yang kecil tanpa chip tambahan. Untuk dasarnya, lihat Apa Itu Op-Amp?
- Bus CAN: bus komunikasi tangguh yang dipakai di mobil dan industri; kamu memakainya dengan modul transceiver seperti SN65HVD230 atau TJA1050 dan library Arduino_CAN dari paket board.
- RTC: menyimpan tanggal dan waktu tanpa modul tambahan (library RTC.h). Di R4 WiFi, kalau kamu memasang baterai antara 1,6 dan 3,6 V ke pin VRTC, jamnya tetap berjalan meskipun daya board terputus.
- USB HID: board bisa dikenali komputermu sebagai keyboard atau mouse; dulu ini butuh Leonardo (keyboard USB dengan Arduino Leonardo).
- Sentuhan kapasitif: beberapa pin bisa berfungsi sebagai tombol sentuh tanpa modul tambahan, memakai library Arduino_CapacitiveTouch.
Dua fitur ini bisa langsung kamu coba. Sketch di bawah mengeluarkan tegangan yang terus naik dari DAC dan membaca kembali tegangan yang sama dengan ADC 14-bit. Cukup hubungkan pin A0 dan A1 dengan kabel jumper, lalu buka Serial Monitor di 115200 baud:
1// A0 (DAC) ile A1'i bir jumper kabloyla bağla / connect A0 (DAC) to A1 with a jumper wire
2
3void setup() {
4 Serial.begin(115200);
5 while (!Serial) {} // USB seri port açılana kadar bekle / wait for the USB serial port
6 analogWriteResolution(12); // DAC: 0–4095
7 analogReadResolution(14); // ADC: 0–16383
8}
9
10void loop() {
11 for (int value = 0; value < 4096; value += 512) {
12 analogWrite(DAC, value); // A0'dan gerçek analog gerilim / true analog voltage on A0
13 delay(10);
14 int raw = analogRead(A1); // 14 bit okuma / 14-bit reading
15 float volts = raw * 5.0 / 16383.0; // 5 V referans / 5 V reference
16 Serial.print("DAC: ");
17 Serial.print(value);
18 Serial.print(" ADC: ");
19 Serial.print(raw);
20 Serial.print(" V: ");
21 Serial.println(volts, 3);
22 delay(500);
23 }
24}Di output kamu akan melihat hasil pembacaan naik sekitar 2048 setiap kali nilai DAC naik 512: satu langkah output 12-bit sama dengan 4 langkah input 14-bit. Kita memakai 5.0 V dalam perhitungan, tetapi ketika board diberi daya lewat USB, jalur 5 V turun ke sekitar 4,7 V karena dioda proteksi. Kalau butuh pengukuran presisi, ukur pin 5V dengan multimeter dan pakai nilai itu sebagai pengganti 5.0 di rumus. Baris while (!Serial) mencegah baris-baris pertama hilang sebelum Serial Monitor terbuka; kalau board akan berjalan tanpa terhubung ke komputer, hapus baris itu, kalau tidak program akan menunggu di sana selamanya. Dasar-dasar pembacaan analog ada di artikel ADC dan konversi analog ke digital.
Batas arus pin: kenapa 8 mA di R4?
Inilah perbedaan yang paling sering terlewat oleh orang yang pindah ke R4. ATmega328P di R3 dengan mudah memberi 20 mA per pin (maksimum mutlak 40 mA), itulah sebabnya kebanyakan contoh di internet menghubungkan LED langsung ke pin dengan resistor 220 Ω. Namun untuk R4, Arduino menyarankan arus tidak lebih dari 8 mA per pin. Mari kita hitung dengan hukum Ohm: menyalakan LED merah (sekitar 2 V) dari pin 5 V lewat 220 Ω menghasilkan (5 − 2) / 220 ≈ 13,6 mA, hampir dua kali batas R4. LED-nya kemungkinan besar tetap menyala, tetapi pin bisa rusak seiring waktu, dan kerusakan itu biasanya menumpuk tanpa disadari.

| Resistor LED | Arus (LED merah, 5 V) | Uno R3 | Uno R4 |
|---|---|---|---|
| 220 Ω | ≈ 13,6 mA | Aman | Di atas batas |
| 330 Ω | ≈ 9,1 mA | Aman | Sedikit di atas batas |
| 470 Ω | ≈ 6,4 mA | Aman | Aman |
| 1 kΩ | ≈ 3 mA | Aman | Aman, LED masih terlihat jelas |
Apakah sketch dan library lama jalan di R4?
Jawaban singkatnya: sebagian besar jalan. Sketch yang ditulis dengan perintah Arduino standar seperti digitalWrite, analogRead, millis, Serial, Wire (I2C), SPI, EEPROM, Servo, dan tone bisa dikompilasi di R4 tanpa perubahan. Masalah muncul di kode yang berkomunikasi langsung dengan hardware ATmega328P: operasi pin cepat dengan register seperti PORTB dan DDRD, pengaturan Timer1, file header yang diawali avr/, dan library yang memakainya tidak bisa dikompilasi di R4. Misalnya, sketch yang memakai PORTB gagal dengan error 'PORTB' was not declared in this scope.
| Library atau kode | Status di R4 | Catatan |
|---|---|---|
| Servo, Wire, SPI, EEPROM, SoftwareSerial | Jalan | Dukungan resmi R4 |
| Adafruit NeoPixel, FastLED | Jalan | Instal versi terbaru |
| DHT sensor library (library sensor DHT) | Jalan | Library Adafruit |
| IRremote | Jalan sebagian | Versi 4.x bisa membaca penerima IR di R4; menurut dokumentasi library, fungsi mengirim tidak jalan di R4 WiFi |
| LiquidCrystal I2C, MFRC522 | Jalan, dengan peringatan | Peringatan arsitektur tidak berbahaya |
| TimerOne | Tidak bisa dikompilasi | Pakai kelas FspTimer dari paket board sebagai gantinya |
| Register PORTB, DDRD, PIND | Tidak bisa dikompilasi | Pakai digitalWrite dan digitalRead |
| serialEvent() | Tidak pernah dipanggil | Cek Serial.available() di dalam loop |
Ketika mengompilasi, kamu mungkin melihat peringatan seperti WARNING: library LiquidCrystal I2C claims to run on avr architecture(s) and may be incompatible with your current board which runs on renesas_uno architecture(s). Ini bukan error; pembuat library hanya mencantumkan AVR sebagai arsitektur yang didukung. Kalau sketch-nya ter-upload dan berjalan, tidak ada masalah. Kalau kamu mendapat error sungguhan, instal dulu versi terbaru library-nya (Cara Instal Library Arduino); kalau tetap tidak berhasil, cari alternatif yang mendukung R4.
Ada satu perbedaan lagi yang perlu diperhatikan: R3 hanya punya satu port serial, yang terhubung ke USB sekaligus ke pin D0/D1. Di R4, Serial hanya untuk USB, dan pin D0 dan D1 bekerja terpisah sebagai Serial1. Sketch lama yang membaca modul seperti Bluetooth HC-05 atau GPS di D0/D1 lewat Serial tidak akan menerima apa pun di R4. Sketch jembatan di bawah meneruskan data dari modul ke Serial Monitor, dan apa yang kamu ketik di Serial Monitor ke modul:
1// R4'te Serial = USB, Serial1 = D0 (RX) ve D1 (TX) / on the R4, Serial = USB, Serial1 = D0 (RX) and D1 (TX)
2
3void setup() {
4 Serial.begin(115200); // bilgisayar (Seri Monitör) / computer (Serial Monitor)
5 Serial1.begin(9600); // D0/D1'e bağlı modül, örn. HC-05 / module on D0/D1, e.g. HC-05
6}
7
8void loop() {
9 if (Serial1.available()) {
10 Serial.write(Serial1.read()); // modülden bilgisayara / module to computer
11 }
12 if (Serial.available()) {
13 Serial1.write(Serial.read()); // bilgisayardan modüle / computer to module
14 }
15}Mengatur Uno R4 di Arduino IDE
- Instal atau perbarui Arduino IDE 2 (cara instal Arduino IDE).
- Buka Boards Manager di sebelah kiri, ketik UNO R4, lalu instal paket Arduino UNO R4 Boards. Ini paket resmi, jadi kamu tidak perlu menambahkan URL tambahan.
- Hubungkan board dengan kabel USB-C yang bisa membawa data, lalu pilih Arduino UNO R4 Minima atau Arduino UNO R4 WiFi dari Tools > Board.
- Pilih port board dari Tools > Port, buka File > Examples > 01.Basics > Blink, lalu upload. LED bawaan di D13 mulai berkedip.
- Kalau port tidak muncul atau upload berhenti di tengah jalan, tekan tombol RESET dua kali dengan cepat: board masuk ke mode bootloader dan port-nya muncul lagi. Untuk semua masalah upload, lihat panduan kode Arduino gagal di-upload.
Uno R4 WiFi: ESP32-S3 dan LED matrix 12x8
Secara default, ESP32-S3 di R4 WiFi menjalankan firmware dari Arduino yang mengubah perintah dari RA4M1 menjadi operasi Wi-Fi dan Bluetooth. Kamu tetap menulis sketch untuk RA4M1: untuk Wi-Fi kamu memakai library WiFiS3 yang ikut dalam paket board, dan untuk Bluetooth library ArduinoBLE. Ada dua batasan penting: modulnya hanya bisa terhubung ke jaringan 2,4 GHz, dan karena Wi-Fi dan Bluetooth berbagi antena, kamu tidak bisa memakai keduanya bersamaan. Beberapa fitur baru butuh firmware ESP32-S3 yang mutakhir; kamu bisa memperbaruinya dari Tools > Firmware Updater di IDE.
Matrix di bagian depan board terdiri dari 96 LED merah dalam 8 baris dan 12 kolom. Ketika pertama kali dikeluarkan dari kotaknya, matrix ini memutar animasi Tetris. LED-LED-nya terhubung ke 11 pin internal RA4M1 dengan teknik yang disebut charlieplexing; pin-pin itu tidak dikeluarkan ke header, jadi memakai matrix tidak mengorbankan satu pun pin D0–D13 atau A0–A5. Library Arduino_LED_Matrix di paket board menerima frame dalam dua format: array byte 8x12 atau tiga angka 32-bit. Cara array lebih mudah dibaca, karena bentuk yang dibentuk oleh angka 1 langsung terlihat di kode:
1#include "Arduino_LED_Matrix.h" // kart paketiyle gelir / ships with the board package
2
3ArduinoLEDMatrix matrix;
4
5// 8 satır x 12 sütun: 1 = LED yanar / 8 rows x 12 columns: 1 = LED on
6uint8_t kalp[8][12] = {
7 { 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0 },
8 { 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0 },
9 { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 },
10 { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
11 { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
12 { 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 },
13 { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
14 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
15};
16
17void setup() {
18 matrix.begin();
19}
20
21void loop() {
22 matrix.renderBitmap(kalp, 8, 12); // kendi çizimin / your own drawing
23 delay(1000);
24 matrix.loadFrame(LEDMATRIX_EMOJI_HAPPY); // kütüphanedeki hazır kare / ready-made frame from the library
25 delay(1000);
26 kalp[7][11] = 1; // tek bir LED'i yak: satır 7, sütun 11 / turn on one LED: row 7, column 11
27}renderBitmap() menampilkan array yang kamu gambar sendiri, sedangkan loadFrame() memuat frame siap pakai dari library: LEDMATRIX_HEART_BIG, LEDMATRIX_EMOJI_HAPPY, LEDMATRIX_EMOJI_SAD, dan LEDMATRIX_DANGER adalah beberapa di antaranya. Dengan loadSequence() dan play() kamu bisa memutar animasi siap pakai seperti LEDMATRIX_ANIMATION_TETRIS atau LEDMATRIX_ANIMATION_WIFI_SEARCH. Untuk menulis dan menggulirkan teks di matrix, kamu perlu menginstal library ArduinoGraphics dari Library Manager. Kalau ingin layar yang lebih besar, lihat artikel LED matrix MAX7219 dan WS2812B NeoPixel.
Proyek pertama: mengendalikan LED matrix dari ponsel
Sekarang mari gabungkan kedua fitur itu. Selama board menyambung ke jaringan rumahmu, matrix memutar animasi pencarian Wi-Fi; begitu terhubung, matrix menampilkan alamat IP sebagai teks berjalan. Ketika alamat itu kamu buka di browser ponsel yang ada di jaringan yang sama, tombol-tombol di halaman bisa menampilkan hati, wajah senang atau sedih, menggulirkan alamat IP lagi, atau mematikan matrix. Kamu tidak butuh komponen apa pun selain board-nya.
- Instal library ArduinoGraphics dari Library Manager; WiFiS3 dan Arduino_LED_Matrix sudah ikut dalam paket board.
- Ganti nama jaringan dan kata sandi di sketch dengan milikmu; perhatikan huruf besar dan kecil.
- Pilih Arduino UNO R4 WiFi sebagai board, upload sketch-nya, lalu buka Serial Monitor di 115200 baud.
- Ketik alamat IP yang berjalan di matrix atau tercetak di Serial Monitor ke browser ponselmu.
- Ketuk tombol-tombol di halaman; matrix langsung berubah.
1#include "ArduinoGraphics.h" // Arduino_LED_Matrix'ten ÖNCE eklenmeli / must come BEFORE Arduino_LED_Matrix
2#include "Arduino_LED_Matrix.h"
3#include "WiFiS3.h"
4
5char ssid[] = "AgAdi"; // Wi-Fi adın / your Wi-Fi name
6char pass[] = "Sifre123"; // Wi-Fi şifren / your Wi-Fi password
7
8ArduinoLEDMatrix matrix;
9WiFiServer server(80);
10
11void scrollText(String text) {
12 matrix.beginDraw();
13 matrix.stroke(0xFFFFFFFF);
14 matrix.textScrollSpeed(60); // her adım 60 ms / 60 ms per step
15 matrix.textFont(Font_5x7);
16 matrix.beginText(0, 1, 0xFFFFFF);
17 matrix.print(" " + text + " ");
18 matrix.endText(SCROLL_LEFT); // yazıyı sola kaydır / scroll the text to the left
19 matrix.endDraw();
20}
21
22void sendPage(WiFiClient &client) {
23 client.println("HTTP/1.1 200 OK");
24 client.println("Content-Type: text/html; charset=utf-8");
25 client.println("Connection: close");
26 client.println();
27 client.println("<!DOCTYPE html><html><head><meta name='viewport' content='width=device-width'></head><body>");
28 client.println("<h2>UNO R4 WiFi</h2>");
29 client.println("<p><a href='/kalp'><button>Kalp / Heart</button></a></p>");
30 client.println("<p><a href='/mutlu'><button>Mutlu / Happy</button></a></p>");
31 client.println("<p><a href='/uzgun'><button>Uzgun / Sad</button></a></p>");
32 client.println("<p><a href='/ip'><button>IP</button></a></p>");
33 client.println("<p><a href='/kapat'><button>Kapat / Off</button></a></p>");
34 client.println("</body></html>");
35}
36
37void setup() {
38 Serial.begin(115200);
39 matrix.begin();
40
41 if (WiFi.status() == WL_NO_MODULE) { // ESP32-S3 yanıt vermiyor / ESP32-S3 not responding
42 Serial.println("WiFi modulu bulunamadi / WiFi module not found");
43 matrix.loadFrame(LEDMATRIX_DANGER);
44 while (true) {}
45 }
46
47 matrix.loadSequence(LEDMATRIX_ANIMATION_WIFI_SEARCH); // bağlanırken animasyon / animation while connecting
48 matrix.play(true);
49
50 while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
51 Serial.println("Baglaniyor / connecting...");
52 delay(5000);
53 }
54 while (WiFi.localIP() == IPAddress(0, 0, 0, 0)) { // DHCP adresini bekle / wait for the DHCP address
55 delay(100);
56 }
57
58 server.begin();
59 Serial.print("IP: ");
60 Serial.println(WiFi.localIP());
61 scrollText(WiFi.localIP().toString()); // IP adresini matriste göster / show the IP on the matrix
62 matrix.loadFrame(LEDMATRIX_EMOJI_HAPPY);
63}
64
65void loop() {
66 WiFiClient client = server.available();
67 if (!client) {
68 return;
69 }
70
71 String request = client.readStringUntil('\n'); // ör. "GET /kalp HTTP/1.1" / e.g. "GET /kalp HTTP/1.1"
72 while (client.available()) {
73 client.read(); // kalan başlıkları at / discard the remaining headers
74 }
75
76 bool showIp = false;
77 if (request.indexOf("GET /kalp") >= 0) {
78 matrix.loadFrame(LEDMATRIX_HEART_BIG);
79 } else if (request.indexOf("GET /mutlu") >= 0) {
80 matrix.loadFrame(LEDMATRIX_EMOJI_HAPPY);
81 } else if (request.indexOf("GET /uzgun") >= 0) {
82 matrix.loadFrame(LEDMATRIX_EMOJI_SAD);
83 } else if (request.indexOf("GET /kapat") >= 0) {
84 matrix.clear();
85 } else if (request.indexOf("GET /ip") >= 0) {
86 showIp = true;
87 }
88
89 sendPage(client);
90 delay(10);
91 client.stop(); // bağlantıyı kapat / close the connection
92
93 if (showIp) {
94 scrollText(WiFi.localIP().toString()); // sayfa gittikten sonra kaydır / scroll after the page is sent
95 }
96}Logikanya sederhana: WiFi.begin() dicoba berulang kali sampai koneksi terbentuk, lalu sketch menunggu DHCP memberikan alamat IP dan menjalankan web server di port 80. Sketch membaca baris pertama permintaan dari ponsel (misalnya “GET /kalp HTTP/1.1”; “kalp” adalah bahasa Turki untuk “hati”), memakai indexOf() untuk mengetahui tombol mana yang ditekan, lalu memuat frame yang sesuai ke matrix. endText(SCROLL_LEFT) memblokir program selama teks bergulir, itulah sebabnya kita menggulirkan alamat IP lagi hanya setelah halaman terkirim dan koneksi ditutup. Kalau matrix menampilkan simbol bahaya lalu berhenti, berarti ESP32-S3 tidak merespons; cabut dan pasang lagi kabel USB board, lalu perbarui firmware-nya. Kalau koneksi tidak pernah terbentuk, pemeriksaan 2,4 GHz dan kata sandi dari artikel ESP32 tidak mau terhubung ke Wi-Fi juga berlaku di sini.
Catu daya: pin VIN, 5V, dan 3,3 V
R4 menerima 6–24 V di jack DC atau pin VIN; buck converter di board menurunkannya ke 5 V. Menurut dokumentasi R4 WiFi dari Arduino, sekitar 1,2 A bisa ditarik dari pin 5V ketika board diberi daya dari VIN; dengan daya USB, board sendiri mampu menangani hingga 2 A, tetapi batas sebenarnya ditentukan oleh port USB komputermu. Arus itu ditujukan untuk sensor dan modul kecil, bukan motor dan servo. Pin 3,3 V di Minima dipasok oleh regulator internal RA4M1, jadi hanya cocok untuk sensor kecil; jangan memberi daya modul berarus besar seperti ESP-01 atau nRF24L01 dengan antena PA+LNA dari pin itu. R4 WiFi juga punya pin OFF (kalau dihubungkan ke GND, pasokan 5 V board terputus) dan pin VRTC untuk baterai RTC. Untuk semua pilihan daya, lihat Cara Memberi Daya ke Arduino.
Ide proyek dengan Uno R4
- Stasiun cuaca Wi-Fi: tampilkan suhu yang diukur dengan DHT11 sebagai teks berjalan di matrix sekaligus di halaman yang kamu buka di ponsel.
- Game di matrix: ular, Tetris, atau bola memantul di matrix 12x8; untuk ide lainnya, lihat artikel proyek game Arduino.
- Jam internet: ambil waktu dari internet (NTP), tulis ke RTC bawaan, dan jaga tetap berjalan ketika listrik padam dengan baterai di pin VRTC.
- Keypad makro USB: buat keypad dengan empat tombol yang memicu shortcut di komputermu; berkat dukungan HID di R4, kamu tidak butuh Leonardo.
- Suara dengan DAC: hasilkan gelombang sinus di A0 dengan library analogWave dan buat synthesizer sederhana dengan penguat audio dan speaker.
- Kendali lampu dari ponsel: gabungkan web server dari artikel ini dengan modul relay dan nyalakan lampu dari jarak jauh.
Kesalahan umum dan cara mengatasinya
| Gejala | Penyebab | Solusi |
|---|---|---|
| “'PORTB' was not declared in this scope” | Kodenya memakai register AVR secara langsung | Tulis ulang dengan digitalWrite dan digitalRead |
| “'class TimerOne' has no member named 'initialize'” | TimerOne hanya mengenal timer AVR | Pakai kelas FspTimer dari paket board |
| “'class ArduinoLEDMatrix' has no member named 'beginDraw'” | ArduinoGraphics tidak ada atau di-include setelah library matrix | Instal ArduinoGraphics dan include sebelum Arduino_LED_Matrix |
| Error seperti “'D24' was not declared” di dalam file WiFiS3 | Yang dipilih sebagai board adalah R4 Minima | Pilih R4 WiFi dari Tools > Board |
| Tidak ada data dari modul di D0/D1 | Di R4, Serial hanya untuk USB | Pakai Serial1, bukan Serial |
| Port tidak ada, atau upload berhenti di tengah jalan | Sketch yang sedang berjalan mengunci USB, atau kabelnya khusus pengisian daya | Tekan RESET dua kali dan pakai kabel data |
| Sebuah pin berhenti berfungsi | Pin dipaksa melewati batas 8 mA | Pakai 470 Ω–1 kΩ untuk LED dan jalankan beban besar lewat transistor |
| Sensor di konektor Qwiic tidak terdeteksi | Qwiic terhubung ke bus I2C kedua (Wire1) | Pakai Wire1, bukan Wire, di kodemu |
Mana yang sebaiknya kamu beli: R3, R4 Minima, atau R4 WiFi?
- Uno R4 WiFi: pilihan terbaik kalau proyekmu akan terhubung ke internet, ponsel, atau Bluetooth, dan kamu ingin layar siap pakai di board. Seru juga untuk pemula, karena kamu langsung melihat kodemu bekerja di matrix.
- Uno R4 Minima: cocok kalau kamu tidak butuh nirkabel dan ingin memori lebih besar, kecepatan, DAC, dan USB-C. Berkat konektor SWD-nya, board ini juga pilihan bagus kalau kamu ingin memasang debugger eksternal dan menjalankan kodemu langkah demi langkah.
- Uno R3 atau klon yang kompatibel: masih masuk akal kalau kamu punya proyek lama yang memakai library khusus AVR, ingin mengikuti contoh buku pelajaran persis apa adanya, atau mencari biaya termurah; pin-pinnya sanggup menangani 20 mA dengan nyaman.
- ESP32: kalau kamu ingin Wi-Fi dengan pin lebih banyak dan harga lebih murah, board ESP32 juga layak dipertimbangkan; ingat saja bahwa board ini bekerja di 3,3 V (Arduino atau ESP32?).
Singkatnya, Uno R4 adalah upgrade yang mempertahankan kemudahan Uno yang sudah akrab, sambil menambah memori, kecepatan, dan hardware baru; cukup ingat batas 8 mA dan perbedaan Serial1. Untuk mengenal pin-pin board ini secara detail, lihat artikel Pinout Arduino Uno. Di aplikasi BlueGrays kamu akan menemukan proyek LED, tombol, sensor, LCD, dan LED matrix untuk Arduino Uno lengkap dengan skema rangkaian dan kode langkah demi langkah; proyek-proyek ini ditulis dengan perintah standar, jadi juga jalan di R4, dan yang perlu kamu lakukan hanyalah menaikkan resistor LED ke 470 Ω.
Pertanyaan umum
Apa perbedaan Arduino Uno R4 dan R3?
Alih-alih ATmega328P 8-bit 16 MHz milik R3, Uno R4 memakai Renesas RA4M1 32-bit yang berjalan di 48 MHz. Flash bertambah dari 32 KB menjadi 256 KB dan SRAM dari 2 KB menjadi 32 KB, ditambah DAC 12-bit, ADC 14-bit, CAN, RTC, USB-C, serta dukungan keyboard dan mouse USB. Ukuran board, susunan pin, dan tegangan kerja 5 V tetap sama.
Apakah sketch Arduino Uno R3 jalan di R4?
Sebagian besar sketch dan library yang ditulis dengan perintah Arduino standar jalan tanpa perubahan. Kode yang mengakses register AVR secara langsung seperti PORTB, pengaturan Timer1, atau file header avr/ tidak bisa dikompilasi. Selain itu, di sketch yang membaca modul yang terhubung ke D0/D1, kamu perlu menulis Serial1, bukan Serial.
Sebaiknya beli Arduino Uno R4 WiFi atau Minima?
Ambil R4 WiFi kalau proyekmu butuh Wi-Fi, Bluetooth, atau kendali dari ponsel; LED matrix bawaan dan konektor Qwiic jadi bonus. Kalau tidak butuh nirkabel, Minima lebih murah dan memberi performa yang sama dengan prosesor yang sama.
Berapa arus yang bisa diberikan satu pin Arduino Uno R4?
Arduino menyarankan arus tidak lebih dari 8 mA per pin di Uno R4, dibanding 20 mA di R3. Karena itu, pakai minimal 470 Ω, bukan 220 Ω, untuk LED, dan jalankan beban seperti relay, motor, dan buzzer lewat transistor atau MOSFET.
Apakah shield Arduino R3 cocok di Uno R4?
Ya. R4 Minima dan R4 WiFi punya ukuran board, susunan header, dan level logika 5 V yang sama dengan R3, jadi sebagian besar shield driver motor, relay, dan sensor bisa langsung dipasang. Kamu mungkin hanya perlu pembaruan software kalau library shield-nya berisi kode khusus AVR.
Apakah Arduino Uno R4 WiFi mendukung Bluetooth?
Ya, modul ESP32-S3 di board mendukung Bluetooth 5 LE dan dipakai dengan library ArduinoBLE. Namun Wi-Fi dan Bluetooth berbagi antena yang sama, jadi keduanya tidak bisa berjalan bersamaan. Koneksi serial Bluetooth klasik seperti milik HC-05 tidak didukung; aplikasi di ponselmu harus memakai BLE.
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
LED Berkedip
"Halo" pertama di dunia elektronika: menyalakan dan mematikan satu LED. Arduino menyalakan dan mematikan LED dengan jeda singkat, sehingga cahayanya berkedip cepat. Kamu melihat dengan cara paling sed

Lampu Lalu Lintas
Tiruan mini lampu lalu lintas yang kamu lihat di jalan setiap hari. Merah menyala dua detik, kuning menyala sebentar, hijau menyala dua detik, lalu kembali ke merah lewat kuning lagi, terus berulang.

Kendali LED dengan Tombol Tekan (Tekan)
Persis seperti bel pintu: lampu tetap menyala selama kamu menekan, dan mati ketika kamu melepasnya. Arduino terus mendengarkan tombol; selama ditekan LED menyala, dan begitu jarimu terangkat LED mati.

Pengukuran Jarak HC-SR04 (Tampilan Serial)
Sensor HC-SR04 bekerja persis seperti kelelawar yang mencari jalan dalam gelap: ia mengirim suara yang tidak bisa kamu dengar, mendengarkan pantulannya, dan mengukur seberapa jauh benda di depannya. A

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

Jam dan Kalender Dot Matrix (MAX7219, DS1307)
Papan bercahaya untuk meja atau dinding yang menampilkan waktu dan tanggal dengan teks berjalan. Layar LED 8x32 menampilkan jam berangka besar dengan dua titik yang berkedip setiap detik; di awal seti

Ular Piksel Matrix 8x8
Buat sendiri dan mainkan game ular klasik. Di matrix lampu 8x8 yang berwarna-warni, kamu mengarahkan ular hijau dengan joystick dan memakan apel merah; di setiap apel ular bertambah panjang, sedikit l

Animasi LED dan Teks Matrix 4x 32x8
Tumpuk empat modul LED matrix panjang dan kamu mendapat layar persegi dengan lebih dari seribu titik cahaya. Pertama, huruf-huruf berjatuhan dari atas seperti hujan di film, lalu tirai terbuka dan dua
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

