Pemindai LED Knight Rider Raspberry Pi Pico (6 LED Bolak-balik)
Efek pemindai LED "Knight Rider" klasik dengan Pico! 6 LED bergerak dari kiri ke kanan, lalu kembali, selamanya, seperti gril depan mobil KITT dari serial TV tahun 80-an. Ini pengembangan dari proyek LED Berjalan: rangkaian 6 LED yang sama (GP9-GP14), pola kode berbeda. Pelajari reversed() untuk membalik list, dua loop for untuk pola bolak-balik, dan cara membuat beberapa animasi di rangkaian yang sama. Perangkat keras sama, efek yang sama sekali berbeda.

Video
Skema rangkaian

Kode sumber
1# ─────────────────────────────────────────
2# BlueGrays · bluegrays.com
3# Pemindai LED Knight Rider Raspberry Pi Pico (6 LED Bolak-balik)
4# ─────────────────────────────────────────
5# 6 LED berjalan dari GP9 ke GP14, lalu kembali dari GP14 ke GP9; efek
6# scanner klasik "Knight Rider". Rangkaian sama dengan #153, kode berbeda.
7# Kecepatannya diatur dengan WAIT_MS.
8#
9# Pin:
10# GP9, GP10, GP11, GP12, GP13, GP14 -> 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 = [9, 10, 11, 12, 13, 14] # Urutan maju
18leds = [Pin(p, Pin.OUT) for p in LED_PINS] # Semua sebagai output
19
20WAIT_MS = 100 # 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 # Maju: GP9 ke GP14
31 for led in leds:
32 all_off()
33 led.value(1)
34 sleep_ms(WAIT_MS)
35
36 # Mundur: GP14 ke GP9 (daftar dibalik)
37 for led in reversed(leds):
38 all_off()
39 led.value(1)
40 sleep_ms(WAIT_MS)
41FAQ
Apa yang dilakukan fungsi reversed()?
Fungsi ini memungkinkanmu menelusuri list dalam urutan terbalik. Loop pertama menyalakan LED dari kiri ke kanan, sedangkan loop kedua, yang ditulis dengan `reversed()`, menyalakannya dari kanan ke kiri; ini menciptakan efek cahaya bolak-balik.
LED di ujung terlihat berkedip dua kali. Bagaimana memperbaikinya?
Ubah loop kedua menjadi for led in leds[-2:0:-1]:. Ini melewati kedua LED ujung pada sapuan balik, sehingga tidak ada LED ujung yang tertahan selama dua langkah berturut-turut.
Bisakah aku membuat efek berekor (memudar)?
Ya, jika kamu memakai PWM agar LED di belakang LED yang menyala meredup perlahan, kamu mendapat efek pemindaian berekor seperti di mobil KITT.
Apakah "LED Berjalan" memakai rangkaian yang sama dengan proyek ini?
Ya, rangkaiannya persis sama. Hanya kodenya yang berubah; proyek ini mengajarkan cara menulis animasi berbeda dengan perangkat keras yang sama.
