#153Pemula

LED Berjalan Raspberry Pi Pico (6 LED)

Animasi "LED berjalan" klasik dengan Pico, versi 6 LED! 6 LED menyala berurutan dari kiri ke kanan, seperti cahaya yang berjalan. Pelajari list Python, list comprehension ([Pin(p, Pin.OUT) for p in LED_PINS]), loop for dengan kendali pin, dan enumerate(). 6 LED di GP9-GP14, masing-masing dengan resistor 220Ω. Alih-alih mendefinisikan LED satu per satu, kita memakai list; kamu bisa menambah LED sebanyak pin GPIO yang bebas. Untuk 100 LED, pakai LED beralamat seperti WS2812B.

0.0(0)
8 selesai
LED Berjalan Raspberry Pi Pico (6 LED)
Enam LED menyala satu per satu, sehingga cahayanya seakan berlari dari ujung barisan ke ujung lainnya, persis seperti lampu etalase toko dan pasar malam. Raspberry Pi Pico hanya menyalakan satu LED pada satu waktu dan melompat ke LED berikutnya dalam sekejap; ketika cahaya sampai di ujung, ia mulai lagi. Kamu melihat bagaimana efek lampu berjalan dibuat dalam bentuk paling sederhana.

Video

Skema rangkaian

LED Berjalan Raspberry Pi Pico (6 LED) - Circuit

Kode sumber

MicroPython
1# ─────────────────────────────────────────
2#   BlueGrays · bluegrays.com
3#   LED Berjalan Raspberry Pi Pico (6 LED)
4# ─────────────────────────────────────────
5# 6 LED menyala satu per satu dari GP14 ke GP9 (animasi "chasing light"
6# (lampu berjalan)). Kecepatannya diatur dengan WAIT_MS: 50 ms cepat, 500
7# ms lambat.
8#
9# Pin:
10#   GP14, GP13, GP12, GP11, GP10, GP9 -> 6 LED merah (berurutan)
11#   Tiap LED dengan 220 ohm, katoda ke GND
12
13from machine import Pin
14from time import sleep_ms
15
16# ============ PIN / PIN ============
17LED_PINS = [14, 13, 12, 11, 10, 9]               # Urutan nyala
18leds = [Pin(p, Pin.OUT) for p in LED_PINS]       # Semua sebagai output
19
20WAIT_MS = 120      # Delay antar LED (ms)
21
22# ============ HELPER ============
23def all_off():
24    # Matikan semua LED
25    for led in leds:
26        led.value(0)
27
28# ============ LOOP UTAMA ============
29while True:
30    # Hanya satu LED yang menyala di setiap langkah
31    for led in leds:
32        all_off()
33        led.value(1)
34        sleep_ms(WAIT_MS)
35

FAQ

Apa itu list comprehension?

[Pin(p, Pin.OUT) for p in LED_PINS] adalah sintaks Python yang membuat list dalam satu baris. Alih-alih mendefinisikan 6 LED satu per satu, sintaks ini otomatis membuat objek Pin dari list pin.

Bagaimana cara mengatur kecepatan animasi?

Ubah nilai WAIT_MS. 50 ms menghasilkan efek berjalan yang sangat cepat, 150 ms sedang, dan 300 ms lambat.

Bisakah aku membalik arah jalannya?

Ya, mengganti `for led in leds:` dengan `for led in reversed(leds):` di loop utama membalik urutan LED. Jika kamu menjalankan kedua arah secara bergantian, kamu mendapat efek "Knight Rider".

Kenapa pin GP9 sampai GP14 yang dipilih?

Pin-pin ini berurutan di board; dengan begitu kabel tetap rapi dan pemasangan di breadboard lebih mudah. Jika mau, kamu bisa menambahkan pin lain ke list.