Bu proje, STM32F407-Discovery kartı üzerinde 4 adet LED kullanarak çift/tek flaşör (alternatif yanıp sönme) animasyonu gerçekleştirir.
Bu proje, aynı görsel efekti gerçekleştiren ancak farklı bir kodlama yaklaşımı kullanan ➡️ 09_Cift_Tek_LED_Yakma (Flaşör Efekti) optimize edilmiş versiyonudur.
Kod, while(1) döngüsü içinde iki ana for döngüsü çalıştırır. Burada kritik nokta Ternary Operatörü (? :) ve Bitwise AND (&) operatörünün birleşimidir.
Mantık: (i & 1) Nedir?
Bu işlem, sayının son bitine bakar.
- Sayı Çift ise (0, 2, 4...) -> Sonuç 0 olur.
- Sayı Tek ise (1, 3, 5...) -> Sonuç 1 olur.
Akış:
-
Aşama 1 (Çift İndeksler Yansın):
- Döngü 0'dan 3'e kadar döner.
(i & 1) == 0şartı kontrol edilir.- Eğer indeks çift ise (
0ve2yaniPA1vePA3) -> SET (Yanar). - Eğer indeks tek ise (
1ve3yaniPA2vePA4) -> RESET (Söner). - Sonuç: PA1 ve PA3 yanar, diğerleri söner.
-
Aşama 2 (Tek İndeksler Yansın):
- Döngü tekrar 0'dan 3'e kadar döner.
(i & 1) == 1şartı kontrol edilir.- Eğer indeks tek ise (
1ve3yaniPA2vePA4) -> SET (Yanar). - Eğer indeks çift ise (
0ve2yaniPA1vePA3) -> RESET (Söner). - Sonuç: PA2 ve PA4 yanar, diğerleri söner.
Zamanlama: Her değişim arasında 1000 ms (1 saniye) bekleme vardır.
- 1x STM32F407-Discovery Geliştirme Kartı
- 4x Tercih edilen renklerde LED
- 4x 220 ya da 330 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).