Bu proje, STM32F407-Discovery kartı üzerinde 4 adet LED kullanarak klasik Kara Şimşek (Knight Rider) benzeri bir ileri-geri kayan ışık animasyonu gerçekleştirir.
Bu deponun amacı, aynı sonuca daha verimli, ölçeklenebilir ve profesyonel bir kod yapısıyla nasıl ulaşılabileceğini göstermektir. Proje, "Temiz Kod" (Clean Code) ve "Kendini Tekrar Etme" (DRY - Don't Repeat Yourself) prensiplerinin basit bir uygulamasını içerir.
💡 Temel Versiyon (Açık Kod)
Bu projenin, her komutun adım adım, tekrar edilerek yazıldığı en temel ve açık halini görmek için v1 deposunu inceleyebilirsiniz.
Bu projenin (v2) var olma amacı, v1'deki kod tekrarını ortadan kaldırmaktır.
İlk projede, her LED pini için ayrı ayrı HAL_GPIO_WritePin ve HAL_Delay komutları kullanılmıştı. 4 LED için yönetilebilir olsa da, 16 LED'li bir projede bu yöntem verimsizdir.
Animasyon, 4 LED üzerinde sıralı bir hareketle çalışır:
- LED'ler
PA1'denPA4'e doğru sırayla yanar (Sağa hareket). - LED'ler
PA4'denPA1'ye doğru sırayla yanar (Sola hareket). - Döngü başa döner.
Zamanlama:
- LED Yanma Süresi: 200 ms
- LED Sönme Süresi: 100 ms (Bir sonraki LED'e geçmeden önce)
- 1x STM32F407-Discovery Geliştirme Kartı
- 4x Tercih edilen renkte LED
- 4x 220 Ohm Direnç (LED'ler için ön direnç)
- Breadboard ve Jumper kablolar
LED'lerin anot (uzun) bacakları STM32 pinlerine, katot (kısa) bacakları ise direnç üzerinden GND hattına bağlanmalıdır.
| LED | Direnç | STM32 Pini |
|---|---|---|
| LED 1 | 220 Ohm | PA1 |
| LED 2 | 220 Ohm | PA2 |
| LED 3 | 220 Ohm | PA3 |
| LED 4 | 220 Ohm | PA4 |
| (Tümü) | - | GND |
- Bu depoyu klonlayın (
git clone ...). - STM32CubeIDE yazılımını açın.
File > Open Projects from File System...seçeneği ile proje klasörünü seçin.- Proje içindeki
.iocdosyasını açarak pin yapılandırmasını inceleyebilirsiniz. - Derleyin (Build) ve ST-Link V2 üzerinden kartınıza yükleyin (Run).