#154Pemula

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.

0.0(0)
13 selesai
Pemindai LED Knight Rider Raspberry Pi Pico (6 LED Bolak-balik)
Ingat cahaya yang menyapu bolak-balik di bagian depan mobil yang bisa bicara di serial TV lama itu? Salah satu dari enam LED di Raspberry Pi Pico berjalan ke satu ujung, berbalik, lalu kembali, berulang-ulang tanpa pernah berhenti. Di sini kamu melihat bagaimana menyalakan beberapa LED secara berurutan, lalu terbalik, menciptakan kesan gerakan.

Video

Skema rangkaian

Pemindai LED Knight Rider Raspberry Pi Pico (6 LED Bolak-balik) - Circuit

Kode sumber

MicroPython
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)
41

FAQ

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.