Dasar · 11 mnt baca

Daftar Perintah Arduino: 36 Kartu, C++ dan MicroPython Berdampingan

Daftar perintah Arduino sesuai urutan belajar: 18 kartu dari pinMode sampai tone, padanannya di MicroPython, kode berdampingan, rencana 4 minggu, dan 8 kesalahan umum.

Cara paling andal untuk mempelajari perintah Arduino bukanlah menghafal daftar panjang, melainkan mempelajarinya secara berurutan, masing-masing dengan contoh kecil dan proyek sungguhan. Aplikasi BlueGrays punya Panduan kode persis untuk ini di bagian Pelajaran pada tab Belajar: 18 kartu di jalur Arduino C++, dari pinMode sampai tone, dan 18 kartu di jalur MicroPython, dari import sampai I2C, total 36 kartu. Setiap kartu memakai susunan yang sama: Fungsinya apa?, Kenapa?, Sintaks, Contoh (dengan tab Blok, Arduino, dan MicroPython), Kesalahan umum, Tips, Lihat di proyek, dan Tes mini berisi dua soal. Urutannya juga tetap: pin dulu (pinMode, digitalWrite, digitalRead, analogRead, analogWrite), lalu waktu (delay, millis), lalu variabel, kondisi, perulangan, dan fungsi, dan terakhir Serial, map, random, dan tone. Kalau kamu memakai Raspberry Pi Pico, kamu mempelajari ide yang sama di jalur MicroPython dengan Pin, Pin.value, time.sleep, ADC.read_u16, dan PWM.

Tulisan ini adalah peta panduan tersebut. Pertama kamu akan melihat apa isi sebuah kartu, lalu 18 kartu di setiap jalur sesuai urutan aslinya di aplikasi, beserta padanannya di bahasa lain. Setelah itu ada tiga contoh singkat yang menyandingkan versi C++ dan MicroPython dari program yang sama, cara kerja tes mini dan pelacakan progres, urutan belajar 4 minggu, rutinitas harian 20 menit, dan 8 kesalahan paling umum dengan perintah-perintah ini. Kalau kamu mencari penjelasan detail setiap perintah, tulisan Daftar Perintah Arduino beserta contohnya memberi setiap perintah bagiannya sendiri; tulisan ini membahas urutan mempelajarinya dan cara berlatih.

Board Arduino Uno: pin digital, pin PWM bertanda ~, dan input analog A0–A5
Lima kartu pertama jalur Arduino C++ membahas tiga kelompok pin di board ini: pin digital, pin PWM bertanda ~, dan input analog A0–A5.

Di mana Panduan kode dan bagaimana cara kerjanya?

Kamu membuka panduan ini dari tab Belajar di bawah: di bagian Pelajaran di atas, ketuk kotak Panduan kode. Ketika panduan terbuka, kamu melihat dua tab di atas: Arduino C++ dan MicroPython; aplikasi mengingat jalur mana yang terakhir kamu buka. Di bawah tab ada penghitung Yang sudah kamu pelajari dan baris Kartu berikutnya, jadi kamu tidak perlu mencari di mana kamu berhenti. Kartu dikelompokkan per topik: Pin, Waktu, Variabel, Kondisi, Loop, Fungsi, Port serial, Matematika, dan Suara; jalur MicroPython menambahkan Struktur dasar dan Penanganan error. Panduan kode itu gratis: kamu tidak butuh Premium untuk membaca kartu, melihat contoh, atau mengerjakan tes mini. Kartunya tersedia dalam 10 bahasa, jadi kamu membaca penjelasannya dalam bahasa apa pun yang kamu pakai di aplikasi.

Apa isi sebuah kartu?

Setiap kartu memakai kerangka yang sama, jadi setelah kartu ketiga kamu sudah tahu persis harus melihat ke mana. Tabel di bawah menunjukkan bagian-bagiannya memakai kartu ke-7 di jalur Arduino, millis; kolom kanan adalah ringkasan singkat dari isi kartu itu. Urutan bagiannya sendiri sudah merupakan urutan belajar: pertama kamu mendengar dalam satu kalimat apa fungsi perintahnya, lalu memahami kenapa kamu membutuhkannya lewat perbandingan sehari-hari, melihat cara menulisnya, membaca contoh yang berjalan, mengenali jebakan paling umum, dan menguji dirimu dengan dua soal.

BagianYang dibahasDi kartu millis
Fungsinya apa?Tugas perintah dalam satu kalimatMemberi tahu berapa milidetik yang sudah berlalu sejak board menyala.
Kenapa?Kenapa kamu membutuhkannya, lewat perbandingan sehari-hariSeperti memasukkan kue ke oven lalu sesekali melirik jam: kamu mengerjakan hal lain sambil menunggu.
SintaksCara menulis perintahnyaDitulis sebagai unsigned long now = millis();
ContohProgram singkat yang berjalan; tab Blok, Arduino, dan MicroPythonKode yang membalik keadaan LED setiap 500 ms; di Pico, pekerjaan yang sama dengan time.ticks_ms
Kesalahan umumJebakan yang paling sering dialami pemulaMenyimpan millis di int: angkanya rusak setelah sekitar 33 detik.
TipsAturan kecil yang memudahkan hidupSelalu tulis pengecekannya sebagai now - previous >= interval.
Lihat di proyekProyek yang memakai perintah ini, dari mudah ke sulitLebih dari 50 proyek; daftarnya diawali proyek tombol ESP32 yang gratis
Tes miniDua soal, penjelasan singkat setelah setiap jawabanApa yang dikembalikan millis()? Di tipe apa sebaiknya kamu menyimpan millis?

Bagian Contoh terbuka di jalur kartu itu sendiri: di kartu Arduino, tab Arduino tampil lebih dulu, di kartu MicroPython tab MicroPython. Tapi tab yang lain selalu ada juga, dan itulah yang membuat panduan ini menjadi kamus. Misalnya, di kartu Pin output: Pin(15, Pin.OUT) pada jalur MicroPython, tab Arduino berisi kode yang melakukan pekerjaan yang sama dengan pinMode dan digitalWrite, dan komentarnya menjelaskan baris mana yang sesuai dengan apa (misalnya baris yang menggantikan led.toggle()). Hampir setiap kartu juga punya tab ketiga, Blok, yang menampilkan program contoh dalam bentuk blok. Kalau kamu pindah dari Arduino ke Pico, cara tercepatnya begini: buka kartu yang sudah kamu kenal, ganti tab, lalu cocokkan kedua program baris demi baris.

Jalur Arduino C++: 18 kartu dan padanannya di MicroPython

Tabel di bawah adalah urutan asli jalur Arduino di aplikasi; kolom terakhir menunjukkan cara melakukan pekerjaan yang sama di MicroPython pada Raspberry Pi Pico. Nomor pin sama dengan contoh di kartu: untuk LED, 13 atau 9 di Uno dan GP15 di Pico; untuk tombol, 2 di Uno dan GP14 di Pico; untuk pembacaan analog, A0 di Uno dan GP26 di Pico. Lima kartu pertama membahas pin, kartu 6 dan 7 membahas waktu, kartu 8 sampai 14 membahas dasar-dasar pemrograman, dan empat terakhir membahas port serial, penskalaan, angka acak, dan suara. Urutan ini disengaja: pertama kamu belajar bagaimana board bersentuhan dengan dunia luar, lalu kamu mengendalikan sentuhan itu dengan variabel, kondisi, dan perulangan.

No.KartuFungsinya apa?Padanan di MicroPython
1pinModeMemberi tahu board apakah sebuah pin adalah output (LED, buzzer) atau input (tombol, sensor)Pin(15, Pin.OUT) · Pin(14, Pin.IN, Pin.PULL_UP)
2digitalWriteMenyalakan (HIGH, 5 V) atau mematikan (LOW, 0 V) pin outputled.value(1) · led.on() · led.off() (nyala / mati)
3digitalReadMembaca apakah pin input sedang HIGH atau LOWbutton.value() → 1 atau 0
4analogReadMengubah tegangan di A0–A5 menjadi angka dari 0 sampai 1023ADC(26).read_u16() → 0–65535
5analogWrite (PWM)Meredupkan LED atau memperlambat motor dengan nilai dari 0 sampai 255 di pin ~PWM(Pin(15)) · freq(1000) · duty_u16(0–65535)
6delayMenghentikan kode sejenak selama jumlah milidetik yang ditentukantime.sleep(0.5) · time.sleep_ms(500) (detik / milidetik)
7millisMilidetik sejak board menyala; mengatur waktu tanpa menghentikan kodetime.ticks_ms() · time.ticks_diff()
8Variabel dan tipe dataMenyimpan nilai dengan tipe seperti int, float, bool, unsigned longTipe tidak ditulis: count = 0, volts = 3.3
9if / else if / elseMenjalankan kode yang berbeda tergantung pada sebuah kondisiif / elif / else
10Operator perbandingan dan logikaMenyusun kondisi dengan ==, !=, <, >, &&, ||, !==, !=, <, > · and, or, not
11Loop forMengulang tugas sebanyak jumlah yang ditentukanfor i in range(10):
12Loop whileMengulang selama sebuah kondisi bernilai benarwhile kondisi:
13Fungsi (void, parameter, return)Memecah kode menjadi potongan bernama yang bisa dipakai ulangdef blink(times): … return (fungsi)
14ArrayMenyimpan nilai bertipe sama secara berurutan di bawah satu namaList: pins = [2, 3, 4] · len(pins) (panjang list)
15Serial.begin / print / println (komunikasi serial)Mengirim teks dan nilai ke komputer (Serial Monitor)print(x) · f-string; tidak perlu Serial.begin
16mapMenskalakan satu rentang angka ke rentang lainTidak ada perintah bawaan: raw * 255 // 1023 atau fungsimu sendiri
17random / randomSeedMenghasilkan angka acakimport random · random.randint(1, 6) (angka acak)
18tone / noToneMemainkan nada dengan frekuensi tertentu di buzzer lalu menghentikannyaPWM: freq(440) · duty_u16(32768); duty_u16(0) untuk membungkamnya
Padanannya tidak satu banding satu, dan perbedaan terbesarnya ada di rentang angka. Di Uno, analogRead mengembalikan 0–1023 dan analogWrite mengharapkan 0–255; di Pico, ADC.read_u16 dan PWM.duty_u16 sama-sama memakai 0–65535. Di Pico hanya GP26, GP27, dan GP28 yang bisa membaca nilai analog, dan tegangan maksimal yang bisa diukurnya 3,3 V, jadi sambungkan potensiometer ke 3V3 (OUT), bukan ke 5 V. MicroPython juga tidak punya perintah map atau tone siap pakai: kamu menskalakan dengan perkalian dan pembagian sederhana, dan membuat suara dengan pengaturan freq di PWM.

Jalur MicroPython: 18 kartu dan padanannya di Arduino

Jalur MicroPython ditulis dengan Raspberry Pi Pico sebagai acuan; contoh di kartu adalah program singkat yang bisa kamu jalankan di Pico, misalnya dengan Thonny. Urutannya sedikit berbeda dari jalur Arduino, karena di Python kamu perlu lebih dulu terbiasa dengan aturan bahasanya sendiri: menambahkan modul dengan import, mencetak dengan print, serta aturan indentasi dan titik dua. Tab Arduino di setiap kartu MicroPython juga berisi versi C++ dari program yang sama, jadi kalau kamu sudah mengenal Arduino, kamu bisa membaca tabelnya dari kanan ke kiri. Kalau kamu baru pertama kali memakai Pico, tulisan Apa Itu Raspberry Pi Pico? adalah persiapan yang bagus untuk instalasi dan pin.

No.KartuFungsinya apa?Padanan di Arduino
1import dan from … importMenambahkan modul seperti machine dan time ke program#include untuk library; perintah dasar seperti pinMode dan delay sudah bawaan
2print dan f-stringMencetak teks dan nilai ke shell ThonnySerial.begin(9600) + Serial.println()
3Pin output: Pin(15, Pin.OUT)Menjadikan pin GP sebagai output; value(), on(), off(), toggle()pinMode(13, OUTPUT) + digitalWrite()
4Pin input: Pin.IN, PULL_UP, PULL_DOWNMenjadikan pin sebagai input, memilih resistor internal, membacanya dengan value()pinMode(2, INPUT_PULLUP) + digitalRead()
5time.sleep dan sleep_msMenghentikan program sejenak dalam hitungan detik atau milidetikdelay()
6while True: loop tanpa akhirMengulang baris di bawahnya selama Pico menyalaloop()
7Indentasi dan titik dua (:)Menentukan baris mana yang termasuk ke blok manaKurung kurawal { } dan titik koma ;
8Variabel: int, float, str, boolMenyimpan nilai; tipenya ditentukan otomatisint, float, String, bool (tipe ditulis)
9if / elif / else, serta and / or / notBercabang berdasarkan kondisi dan menggabungkan kondisiif / else if / else · &&, ||, !
10for dan rangeMengulang sebanyak jumlah yang ditentukan; range(0, 10) menghitung dari 0 sampai 9for (int i = 0; i < 10; i++)
11List: [ ], indeks, lenMenyimpan beberapa nilai secara berurutan; item pertama ada di indeks 0Array: int pins[] = {2, 3, 4};
12def dan return (fungsi)Memberi nama pada kode yang bisa dipakai ulang dan mengembalikan hasilFungsi void atau bertipe, return
13ADC: pembacaan analog dengan read_u16Membaca tegangan di GP26, GP27, GP28 sebagai 0–65535analogRead() → 0–1023
14PWM: freq dan duty_u16Meredupkan LED, memainkan nada di buzzeranalogWrite() dan tone()
15time.ticks_ms dan ticks_diffMengukur waktu yang berlalu tanpa menghentikan kodemillis()
16Pin.irq: tombol dengan interupsiMenjalankan fungsi tepat pada momen tombol ditekanattachInterrupt()
17try / except (menangkap error)Menjaga program agar tidak berhenti ketika terjadi errorTidak ada padanan umum di Arduino; kamu mengecek nilai kembalian
18I2C dan scan()Menemukan alamat perangkat di bus I2CWire.begin() + kode scanner I2C

Program yang sama dalam dua bahasa: 3 contoh berdampingan

Contoh pertama adalah “hello world” di setiap bahasa: membuat LED di board berkedip setiap setengah detik. Di Uno, LED bawaan terhubung ke pin 13, jadi kamu tidak perlu merakit rangkaian. Pico sedikit berbeda: di Pico biasa, LED onboard ada di GP25, tapi di Pico W LED-nya tersambung ke chip nirkabel dan Pin(25) tidak akan menyalakannya. Karena itu menulis Pin("LED", Pin.OUT) di MicroPython lebih aman; di versi MicroPython terbaru, nama ini menemukan LED onboard baik di Pico maupun Pico W. Kalau firmware di board-mu tidak mengenali nama “LED”, instal MicroPython versi terbaru di Pico. Proyek gratis Kedip LED Bawaan Raspberry Pi Pico (Pico dan Pico W) menjelaskan persis perbedaan ini.

C++ (Arduino IDE)
1// Örnek 1: dahili LED'i yakıp söndür / Example 1: blink the built-in LED
2void setup() {
3  pinMode(13, OUTPUT);     // Uno'da dahili LED 13. pinde / built-in LED is on pin 13 on the Uno
4}
5
6void loop() {
7  digitalWrite(13, HIGH);  // LED yanar / LED on
8  delay(500);              // 500 ms bekle / wait 500 ms
9  digitalWrite(13, LOW);   // LED söner / LED off
10  delay(500);              // 500 ms bekle / wait 500 ms
11}
MicroPython
1# Örnek 1: dahili LED'i yakıp söndür / Example 1: blink the onboard LED
2from machine import Pin
3import time
4
5led = Pin("LED", Pin.OUT)  # Pico ve Pico W'de dahili LED / onboard LED on Pico and Pico W
6# Pin(25, Pin.OUT) yalnız düz Pico'da çalışır / Pin(25, Pin.OUT) works only on the plain Pico
7
8while True:                # Arduino'daki loop() gibi / like loop() in Arduino
9    led.on()               # LED yanar / LED on
10    time.sleep_ms(500)     # 500 ms bekle / wait 500 ms
11    led.off()              # LED söner / LED off
12    time.sleep_ms(500)     # 500 ms bekle / wait 500 ms

Contoh kedua menambahkan input: LED menyala selama tombol ditekan. Tombol dipasang di antara pin 2 dan GND di Uno, dan di antara GP14 dan GND di Pico. Di Uno kita memakai lagi LED bawaan di pin 13; di Pico, sambungkan LED eksternal ke GP15 lewat resistor 220 Ω (alat kalkulator resistor LED menghitung nilai ini untuk LED-mu sendiri). Kedua bahasa menyalakan resistor pull-up internal: INPUT_PULLUP di Arduino, Pin.PULL_UP di MicroPython. Dengan pengkabelan ini logikanya terbalik: menekan tombol menarik pin ke GND, jadi Arduino membaca LOW dan Pico membaca 0. Jeda 20 ms di akhir tidak sepenuhnya mengatasi pantulan mekanis tombol, tapi mengurangi kedipan yang sangat singkat. Detail pengkabelan tombol ada di tulisan cara menghubungkan tombol ke Arduino.

C++ (Arduino IDE)
1// Örnek 2: butona basılıyken LED yanar / Example 2: LED on while the button is pressed
2const int BUTTON_PIN = 2;  // buton: 2. pin ile GND arasında / button between pin 2 and GND
3const int LED_PIN = 13;    // dahili LED / built-in LED
4
5void setup() {
6  pinMode(BUTTON_PIN, INPUT_PULLUP);  // iç pull-up direnci açık / internal pull-up on
7  pinMode(LED_PIN, OUTPUT);
8}
9
10void loop() {
11  if (digitalRead(BUTTON_PIN) == LOW) {  // basılıyken LOW okunur / reads LOW while pressed
12    digitalWrite(LED_PIN, HIGH);
13  } else {
14    digitalWrite(LED_PIN, LOW);
15  }
16  delay(20);  // kısa bekleme / short pause
17}
MicroPython
1# Örnek 2: butona basılıyken LED yanar / Example 2: LED on while the button is pressed
2from machine import Pin
3import time
4
5button = Pin(14, Pin.IN, Pin.PULL_UP)  # buton: GP14 ile GND arasında / button between GP14 and GND
6led = Pin(15, Pin.OUT)                 # LED: GP15 + 220 ohm direnç / LED on GP15 with 220 ohm
7
8while True:
9    if button.value() == 0:            # basılıyken 0 okunur / reads 0 while pressed
10        led.value(1)
11    else:
12        led.value(0)
13    time.sleep_ms(20)                  # kısa bekleme / short pause

Contoh ketiga menunjukkan perbedaan terpenting di antara kedua bahasa: rentang angka. Pin tengah potensiometer masuk ke A0 di Uno dan GP26 di Pico; pin luarnya masuk ke 5V dan GND di Uno, dan ke 3V3 (OUT) dan GND di Pico. LED dipasang di pin 9 (bertanda ~) di Uno dan di GP15 di Pico, masing-masing dengan resistor 220 Ω. Di Arduino, analogRead mengembalikan 0–1023 tapi analogWrite mengharapkan 0–255, karena itulah map(raw, 0, 1023, 0, 255) ada di tengahnya. Di Pico, read_u16 dan duty_u16 sama-sama memakai 0–65535, jadi kamu bisa langsung meneruskan hasil pembacaan ke PWM. Cara kerja PWM ada di tulisan Apa Itu PWM?, dan cara memantau nilai secara langsung ada di panduan Serial Monitor.

C++ (Arduino IDE)
1// Örnek 3: potansiyometreyle LED parlaklığı / Example 3: LED brightness with a potentiometer
2const int POT_PIN = A0;  // potansiyometrenin orta ucu / potentiometer wiper
3const int LED_PIN = 9;   // ~ işaretli PWM pini / PWM pin marked with ~
4
5void setup() {
6  pinMode(LED_PIN, OUTPUT);
7  Serial.begin(9600);
8}
9
10void loop() {
11  int raw = analogRead(POT_PIN);               // 0-1023
12  int brightness = map(raw, 0, 1023, 0, 255);  // 0-255 aralığına ölçekle / scale to 0-255
13  analogWrite(LED_PIN, brightness);
14  Serial.println(raw);                         // Seri Monitör'de izle / watch in the Serial Monitor
15  delay(50);
16}
MicroPython
1# Örnek 3: potansiyometreyle LED parlaklığı / Example 3: LED brightness with a potentiometer
2from machine import Pin, ADC, PWM
3import time
4
5pot = ADC(26)            # GP26 = ADC0, orta uç / wiper on GP26 (ADC0)
6led = PWM(Pin(15))       # LED: GP15 + 220 ohm direnç / LED on GP15 with 220 ohm
7led.freq(1000)           # saniyede 1000 aç-kapa / 1000 cycles per second
8
9while True:
10    raw = pot.read_u16()     # 0-65535
11    led.duty_u16(raw)        # aynı aralık, ölçekleme gerekmez / same range, no scaling needed
12    print(raw)               # Thonny kabuğunda izle / watch in the Thonny shell
13    time.sleep_ms(50)
KonsepArduino C++MicroPython (Pico)
Berjalan sekalivoid setup() { … }Baris-baris sebelum while True:
Berulang selamanyavoid loop() { … }while True: dan baris menjorok di bawahnya
Blok kodeKurung kurawal { } dan ; di akhir baris: di akhir baris dan indentasi 4 spasi
Komentar// komentar# komentar
Pin outputpinMode(13, OUTPUT); digitalWrite(13, HIGH);led = Pin(15, Pin.OUT) · led.value(1) (nyala)
Pin inputpinMode(2, INPUT_PULLUP); digitalRead(2)Pin(14, Pin.IN, Pin.PULL_UP) · button.value()
Pembacaan analoganalogRead(A0) → 0–1023ADC(26).read_u16() → 0–65535
Output PWManalogWrite(9, 0–255)PWM(Pin(15)).duty_u16(0–65535)
Menunggudelay(500)time.sleep_ms(500) atau time.sleep(0.5)
MencetakSerial.begin(9600); Serial.println(x);print(x)

Tes mini, “Paham”, dan progresmu di Level-ku

  • Tes mini: Setiap kartu diakhiri dua soal, dan judulnya berbunyi Tes mini · 1 / 2. Ketika kamu mengetuk sebuah pilihan, kamu langsung mendapat Benar. atau Belum tepat. beserta penjelasan singkat; kamu lanjut dengan Soal berikutnya.
  • Skor: Setelah kedua soal selesai, kamu melihat skor seperti 2 / 2 benar. Kartu tidak bisa dituntaskan tanpa tes; di tempat tombolnya tertulis Selesaikan tes mini untuk menuntaskan kartu ini.
  • Paham: Begitu tes selesai, tombol Paham, kartu berikutnya muncul (di kartu terakhir sebuah jalur, tombolnya hanya Paham). Mengetuknya menyimpan kartu sebagai sudah dipelajari di akunmu, sebuah perayaan singkat menunjukkan progresmu, seperti Mantap! 5 / 18 kartu, lalu kartu berikutnya terbuka.
  • Tanda dan penghitung: Kartu yang sudah kamu pelajari menampilkan tanda Dipelajari di daftar, dan penghitung Yang sudah kamu pelajari di bagian atas panduan bertambah. Ketika kamu menuntaskan semua kartu di sebuah jalur, kamu melihat Kamu sudah mempelajari semua kartu di jalur ini.
  • Level-ku: Di layar Level-ku pada bagian Belajar, di bawah judul Panduan kode dan catatan Kartu yang sudah kamu pelajari, ada dua bilah terpisah: Arduino C++ x/18 dan MicroPython x/18. Bilah ini hanya menghitung kartu di panduan kode.
  • Aturan jujur untuk dirimu sendiri: Aplikasi tidak menghentikanmu setelah jawaban yang salah; tombol Paham muncul begitu tes selesai. Jadi sebelum mengetuknya, pastikan kamu bisa menjelaskan dengan suara keras kenapa kedua jawaban itu benar; kalau belum bisa, kembali ke bagian Contoh dan baca kodenya baris demi baris sekali lagi.

Lihat di proyek: menemukan perintah di kode sungguhan

Langkah terakhir mempelajari sebuah perintah adalah mengenalinya di proyek yang berjalan dan ditulis orang lain. Bagian Lihat di proyek di sebuah kartu menampilkan beberapa proyek pilihan dengan satu kalimat di bawahnya yang menyebutkan berapa proyek yang memakai perintah itu di kodenya; tautan Semua membuka daftar lengkapnya. Daftar ini diurutkan dari mudah ke sulit dan bisa dipersempit dengan filter Semua, Gratis, dan Premium. Misalnya, millis muncul di kode lebih dari 50 proyek: daftarnya diawali proyek gratis Kendali LED dengan Tombol Tekan ESP32 (Toggle), berlanjut ke proyek Pico tingkat pemula seperti Piano Tombol Raspberry Pi Pico (5 Tombol + Buzzer + Perekam Melodi) dan Sensor Parkir Raspberry Pi Pico (HC-SR04 + 3 LED + Buzzer), lalu naik ke proyek tingkat menengah seperti Lampu Lalu Lintas Raspberry Pi Pico dengan Pemilih 4 Mode lewat Tombol (State Machine, GP11-13 + GP4) yang menggabungkan tombol dengan pengaturan waktu. Saran kami: buka proyek gratis dari daftar, temukan perintahnya di kode, ubah satu nilai, dan tebak dulu hasilnya. Untuk melihat apa yang dilakukan setiap baris kode, tab Pahami kode di proyek itu adalah langkah berikutnya yang paling wajar.

Urutan belajar yang disarankan: rencana 4 minggu

Anggap kamu bisa meluangkan sekitar 20 menit sehari, 5 hari seminggu. Untuk menuntaskan satu jalur dalam 4 minggu, satu kartu di sebagian besar hari sudah cukup; di hari lainnya kamu mengulang dan mengerjakan proyek, bukan kartu baru. Kalau kamu punya Arduino, ikuti kolom Arduino saja; kalau punya Pico, ikuti kolom MicroPython. Kalau punya keduanya, tuntaskan jalur Arduino dulu lalu pindah ke MicroPython di bulan kedua; konsepnya sama, jadi jalur kedua berjalan jauh lebih cepat. Semua proyek di tabel ini gratis di BlueGrays. Kalau kamu ingin rencana yang lebih luas, peta jalan 30 hari di tulisan aplikasi belajar Arduino cocok dipakai bersama tabel ini; kalau kamu mengajar dengan Pico, rencana pelajaran Raspberry Pi Pico menyebarkan kartu MicroPython ke dalam 6 minggu pelajaran.

MingguKartu Arduino C++Kartu MicroPythonProyek gratis minggu iniYang bisa kamu lakukan di akhir minggu
11–5: pinMode, digitalWrite, digitalRead, analogRead, analogWrite1–5: import, print, Pin output, Pin input, dan time.sleepLED Berkedip, Kendali LED dengan Tombol Tekan (Tekan); Pico: Kedip LED Bawaan Raspberry Pi Pico (Pico dan Pico W)Membuat LED berkedip, membaca tombol; di Arduino, melihat nilai analog
26–10: delay, millis, variabel, if / else, operator6–9: while True, indentasi, variabel, if / elif / elseLampu Tidur dengan LDR, Kendali LED dengan Tombol Tekan ESP32 (Toggle); Pico: Dua LED Bergantian Raspberry Pi Pico (Pola Kedip Bergantian, GP14 + GP13)Mengambil keputusan berdasarkan hasil pembacaan, mengatur waktu tanpa menghentikan program
311–14: for, while, fungsi, array10–13: for dan range, list, def, ADCEfek LED Knight Rider, LED Berjalan; Pico: Simulator Lampu Lalu Lintas Raspberry Pi Pico (3 LED Berurutan, GP11/GP12/GP13)Memakai perulangan untuk pengulangan, array untuk pin, dan fungsi untuk tugas
415–18: Serial, map, random, dan tone14–18: PWM, ticks_ms, Pin.irq, try / except, dan I2CMenggunakan Buzzer, Mengukur Intensitas Cahaya dengan LDR; Pico: Lampu Lalu Lintas Raspberry Pi Pico dengan Pemilih 4 Mode lewat Tombol (State Machine, GP11-13 + GP4)Mencetak nilai, mengatur suara dan kecerahan, membuat proyek kecil dari nol

Rutinitas harian 20 menit

  1. 3 menit, pemanasan: Kerjakan soal harian di bagian Belajar atau ulangi tes mini kemarin. Tujuannya mengecek apakah perintah kemarin masih kamu ingat hari ini.
  2. 5 menit, kartu baru: Baca bagian Fungsinya apa?, Kenapa?, dan Sintaks. Salin sintaksnya ke kertas dengan tangan; menulisnya membuat matamu lebih sulit melewatkan tanda kurung dan titik koma.
  3. 3 menit, contoh: Jelaskan contohnya ke dirimu sendiri baris demi baris, lalu ganti tab. Di kartu Arduino lihat tab MicroPython, di kartu MicroPython tab Arduino, lalu cocokkan baris yang melakukan pekerjaan yang sama di kedua program.
  4. 2 menit, tes mini: Jawab kedua soal dan baca penjelasan soal yang salah. Lirik sekali lagi kotak Kesalahan umum dan Tips di tahap ini.
  5. 6 menit, proyek: Buka proyek gratis yang mudah dari daftar Lihat di proyek, temukan perintahnya di kode, dan ubah satu nilai saja: delay, nomor pin, atau ambang. Kalau rangkaianmu sudah siap, upload ke board; kalau belum, tebak hasilnya lalu cek dengan Pahami kode.
  6. 1 menit, catatan: Tulis satu baris di buku catatanmu: nama perintah, artinya dalam satu kalimat, dan padanannya di bahasa lain. Di akhir empat minggu, halaman itu menjadi kamus perintahmu sendiri.

8 kesalahan umum dengan perintah-perintah ini

KesalahanGejalaSolusiKartu
Lupa pinModeLED sama sekali tidak menyala atau sangat redupTulis pinMode(pin, OUTPUT) di setup(); di Pico buat pin-nya dengan Pin(15, Pin.OUT)pinMode · Pin output
Menulis = alih-alih == di dalam kondisiif (x = 5) selalu benar, jadi program selalu menjalankan cabang yang samaPakai == untuk membandingkan; di Python if x = 5 langsung memberi SyntaxErrorif / else · operator
Mengunci kode dengan delay yang panjangKamu menekan tombol tapi reaksinya terlambat atau tidak pernah datangLakukan penantian dengan millis; di Pico pakai time.ticks_ms dan ticks_diffdelay · millis · ticks_ms
Salah memakai rentang analogReadAmbang yang disalin dari Arduino tidak pernah terpicu di PicoanalogRead memberi 0–1023 di Uno, read_u16 memberi 0–65535 di Pico; hitung ulang ambangnya untuk rentang baruanalogRead · ADC
Membawa nilai analogWrite ke duty_u16Di Pico, duty_u16(255) membuat LED hampir gelapduty_u16 mengharapkan 0–65535: setengah kecerahan adalah 32768, kecerahan penuh 65535analogWrite · PWM
Menyimpan millis di intDi Uno, pengaturan waktu rusak setelah sekitar 33 detikJadikan variabel waktu unsigned long dan tulis pengecekannya sebagai now - previous >= intervalmillis
Mengira logika INPUT_PULLUP kebalikannyaKamu mengharapkan HIGH atau 1 ketika menekan tombol, tapi mendapat LOW atau 0Dengan pull-up, ditekan berarti LOW (0) dan dilepas berarti HIGH (1)digitalRead · Pin input
Menulis sleep(500) di PicoPico menunggu 500 detik, lebih dari 8 menit, bukan setengah detiksleep memakai satuan detik: tulis sleep(0.5) atau sleep_ms(500)time.sleep

Tab Blok: memahami perintah dengan melihatnya

Blok proyek LED Berkedip: atur pin 9 sebagai OUTPUT, lalu di ulangi selamanya: tulis HIGH ke pin 9, tunggu 100 ms, tulis LOW ke pin 9, tunggu 100 ms
Blok proyek gratis LED Berkedip: blok “setup (jalan sekali)” sesuai dengan setup() dan blok “ulangi selamanya” sesuai dengan loop().

Tab Blok memungkinkanmu melihat apa yang dilakukan sebuah perintah tanpa menulis kode, terutama di kartu-kartu pertama sebuah jalur. Di gambar di atas, pinMode menjadi blok “atur pin 9 sebagai OUTPUT”, digitalWrite menjadi “tulis HIGH ke pin 9”, dan delay menjadi “tunggu 100 ms”; di kartu pinMode, catatan di bawah tampilan blok juga mendaftar pilihan dropdown-nya: OUTPUT, INPUT, dan INPUT_PULLUP. Blok ditampilkan dalam bahasa aplikasi dan gunanya untuk dibaca: di aplikasi kamu tidak menyeret blok untuk menulis program, dan board selalu menerima kode aslinya. Cara pakai yang disarankan: tebak dulu apa yang akan dilakukan program di tab Blok, lalu pindah ke tab Arduino dan temukan baris mana yang sesuai dengan setiap blok. Di proyek yang punya tampilan blok, sakelar Tampilkan sebagai blok di halaman proyek memungkinkanmu melakukan pencocokan yang sama untuk seluruh proyek; dasar-dasarnya ada di tulisan Apa Itu Coding Blok?

Singkatnya, kamu tidak butuh daftar panjang untuk mempelajari perintah Arduino: urutan yang tepat, contoh kecil yang berjalan untuk setiap perintah, pengecekan dua soal, dan proyek sungguhan yang memakai perintah itu sudah cukup. Kalau kamu mulai dengan kartu pinMode hari ini, dalam empat minggu kamu akan menuntaskan ke-18 kartu dan melihat setiap perintah di minimal satu proyek dengan matamu sendiri; ketika pindah ke Pico, kamu akan melewati konsep yang sama di jalur MicroPython jauh lebih cepat. Kalau ingin mencoba kartu-kartunya dan proyek di dalamnya, instal BlueGrays di ponselmu dan buka kartu pertama di bagian Belajar.

Pertanyaan umum

Apa saja perintah dasar Arduino?

Perintah Arduino yang paling sering dipakai adalah perintah pin (pinMode, digitalWrite, digitalRead, analogRead, analogWrite), perintah waktu (delay, millis), perintah port serial di bawah Serial, dan perintah bantu seperti map, random, dan tone. Di samping itu, struktur C++ seperti if, for, dan while, ditambah fungsi, membangun alur program. Jalur Arduino C++ di Panduan kode BlueGrays membahas topik-topik ini secara berurutan dalam 18 kartu.

Perintah Arduino mana yang sebaiknya kupelajari pertama kali?

Mulailah dengan pinMode dan digitalWrite, karena dua perintah itu sudah cukup untuk menyalakan LED dan kamu langsung melihat hasilnya. Lalu tambahkan pengaturan waktu dengan delay dan pembacaan tombol dengan digitalRead. analogRead, millis, if, dan for semuanya dibangun di atas keempat perintah ini.

Apa bedanya perintah Arduino dan MicroPython?

Konsepnya sama, penulisannya berbeda: Pin(15, Pin.OUT) dan led.value(1) menggantikan pinMode dan digitalWrite, time.sleep_ms menggantikan delay, dan while True menggantikan loop(). Rentang angka juga berubah; analogRead mengembalikan 0–1023 di Uno, sedangkan read_u16 mengembalikan 0–65535 di Pico. Di Python, indentasi dan titik dua menggantikan kurung kurawal dan titik koma di C++.

Apakah ada perintah delay di MicroPython?

Tidak ada perintah bernama delay; sleep (detik), sleep_ms (milidetik), dan sleep_us (mikrodetik) dari modul time melakukan pekerjaan yang sama. delay(500) di Arduino menjadi time.sleep_ms(500) atau time.sleep(0.5) di Pico. Untuk mengatur waktu tanpa menghentikan kode, time.ticks_ms dan time.ticks_diff menggantikan millis.

LED onboard Raspberry Pi Pico ada di pin mana?

Di Pico biasa, LED onboard terhubung ke GP25. Di Pico W, LED-nya tersambung ke chip nirkabel, jadi Pin(25) tidak akan menyalakannya. Di versi MicroPython terbaru, Pin("LED", Pin.OUT) menemukan LED onboard di kedua board.

Apakah Panduan kode BlueGrays gratis?

Ya, Panduan kode itu gratis: kamu bisa membaca ke-36 kartu, melihat contohnya, dan mengerjakan tes mini. Daftar Lihat di proyek di kartu-kartunya berisi proyek gratis dan Premium; filter Gratis hanya menampilkan yang gratis.

Lihat semua proyek
LED Berkedip
#1Pemula

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

4.6(188)
1127
Kendali LED dengan Tombol Tekan (Tekan)
#9Pemula

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.

4.8(113)
229
Lampu Tidur dengan LDR
#12Pemula

Lampu Tidur dengan LDR

Lampu tidur kecil yang menyala sendiri ketika gelap dan mati ketika pagi tiba. Sensor cahaya mengukur seberapa terang ruangan, dan Arduino menyalakan LED ketika cukup gelap lalu mematikannya lagi keti

4.8(102)
205
Kendali LED dengan Tombol Tekan ESP32 (Toggle)
#105Pemula

Kendali LED dengan Tombol Tekan ESP32 (Toggle)

Setiap kali tombol ditekan, keadaan LED berubah: jika menyala jadi mati, jika mati jadi menyala. Pola toggle klasik. Dengan debounce, kita membersihkan derau mekanis tombol tekan agar satu tekanan menghasilkan satu kali toggle.

4.6(39)
57
Efek LED Knight Rider
#6Menengah

Efek LED Knight Rider

Lampu pemindai klasik: sebuah titik cahaya meluncur dari satu ujung enam LED ke ujung lainnya lalu kembali. Arduino menyalakan setiap LED selama sepersepuluh detik sebelum pindah, berbalik di setiap u

4.8(106)
202
Kedip LED Bawaan Raspberry Pi Pico (Pico dan Pico W)
#147Pemula

Kedip LED Bawaan Raspberry Pi Pico (Pico dan Pico W)

Proyek pembuka seri Raspberry Pi Pico! Kita mengedipkan LED hijau bawaan untuk memastikan board bekerja; percobaan "Hello World" klasik. TANPA komponen eksternal, hanya Pico dan kabel USB. Kodenya ditulis dalam MicroPython (bahasa resmi dari Raspberry Pi Foundation). Pelajari kelas machine.Pin, mode Pin.OUT, metode led.on()/off(), dan time.sleep() di Thonny IDE, dan ikuti setiap perubahan di output Serial (REPL). Juga pas untuk menguji firmware MicroPython.

5.0(1)
10
Dua LED Bergantian Raspberry Pi Pico (Pola Kedip Bergantian)
#149Pemula

Dua LED Bergantian Raspberry Pi Pico (Pola Kedip Bergantian)

Langkah berikutnya setelah satu LED di Pico: dua LED berkedip bergantian dengan pola flip-flop klasik. Ketika satu mati, yang lain menyala; contoh paling dasar koordinasi beberapa GPIO. Dua LED berbeda warna (merah di GP14, hijau di GP13) bertukar status setiap 500 ms, dan metode Pin.toggle() MicroPython membuat kodenya singkat. Logika yang sama menjadi dasar lampu lalu lintas, lampu polisi, dan LED berjalan. Setiap LED memakai resistor 220Ω-nya sendiri.

5.0(2)
19
Simulator Lampu Lalu Lintas Raspberry Pi Pico (3 LED Berurutan)
#150Pemula

Simulator Lampu Lalu Lintas Raspberry Pi Pico (3 LED Berurutan)

Kita menyimulasikan lampu lalu lintas sungguhan dengan LED merah, kuning, dan hijau; proyek 3 LED pertama di seri Pico! Hijau 4 detik "jalan", kuning 1,5 detik "siap", merah 3 detik "berhenti", dan merah+kuning 1 detik "bersiap" (pola Eropa). Pelajari pendefinisian fungsi (def all_off()), logika state machine, dan sinkronisasi beberapa GPIO. 3 LED di GP11 (Hijau), GP12 (Kuning), GP13 (Merah), masing-masing dengan resistor 220Ω, berdampingan di board.

4.0(1)
12