Bu proje, STM32F407-Discovery kartı üzerinde harici bir buton (PA0) kullanarak LED desenlerini değiştiren bir uygulamadır.
Bu depo ile birlikte ilk kez GPIO Giriş (Input) okuma işlemleri ve Dahili Pull-Up Direnci kullanımı devreye girmektedir.
Kod, sonsuz döngü içinde PA0 pinine bağlı butonun durumunu sürekli kontrol eder (Polling yöntemi) ve duruma göre iki farklı deseni uygular:
-
Varsayılan Durum (Butona Basılı DEĞİL):
- Okunan Değer:
1(SET) - (Dahili Pull-Up sayesinde 3.3V). - Eylem: Tek indeksli LED'ler yanar.
- Görsel Sonuç:
PA2vePA4LED'leri AÇIK, diğerleri KAPALI.
- Okunan Değer:
-
Aktif Durum (Butona BASILDI):
- Okunan Değer:
0(RESET) - (Buton pini Toprağa/GND'ye çeker). - Eylem: Çift indeksli LED'ler yanar.
- Görsel Sonuç:
PA1vePA3LED'leri AÇIK, diğerleri KAPALI.
- Okunan Değer:
Elektronikte bir giriş pini boşta bırakılırsa (butona basılmadığında), ortamdaki gürültüden etkilenerek rastgele değerler alabilir (Floating/Yüzen Durum). Bunu engellemek için pini varsayılan olarak 3.3V seviyesinde tutmak gerekir.
-
Internal Pull-Up: Bu projede harici bir direnç lehimlemek yerine, STM32 mikrodenetleyicisinin içinde bulunan dahili direnç yazılımla aktif edilmiştir.
-
Harici direnç kullanılmak istenseydi. Aşağıdaki görselde hem PULL-UP hem de PULL-DOWN bağlantı görülmektedir.
-
DONANIMSAL PULL-UP;
PULL-UP için 10k ohm direnç kullanıldı. LED direnci 220 ohm kullanıldı.
- DONANIMSAL PULL-DOWN;
PULL-DOWN için 10k ohm direnç kullanıldı. LED direnci 220 ohm kullanıldı.
Projenin .ioc dosyasında buton pinini yapılandırırken şu adımlar izlenmiştir:
PA0piniGPIO_Inputolarak seçilir.- Sol menüden
System Core > GPIOsekmesine gidilir. PA0seçilir ve "GPIO Pull-up/Pull-down" ayarıPull-upyapılır.
- 1x STM32F407-Discovery Geliştirme Kartı
- 4x LED (Tercih edilen renklerde)
- 4x 220 Ohm Direnç (LED koruması için)
- 1x Push-Button (Buton)
- 1x Breadboard ve Jumper Kablolar
Dikkat: Pull-Up mantığı kullanıldığı için butonun bir ucu pine, diğer ucu GND hattına bağlanmalıdır. (VCC/3.3V veya 5V hattına bağlamayın!)
| Bileşen | STM32 Pini | Bağlantı Detayı |
|---|---|---|
| Buton | PA0 |
Butonun diğer bacağı -> GND |
| LED 1 | PA1 |
Anot -> Pin, Katot -> Direnç -> GND |
| LED 2 | PA2 |
Anot -> Pin, Katot -> Direnç -> GND |
| LED 3 | PA3 |
Anot -> Pin, Katot -> Direnç -> GND |
| LED 4 | PA4 |
Anot -> Pin, Katot -> Direnç -> 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).