- STM32VLDiscovery geliştirme kiti (stm32f100rb)
- 7 Segment display
- 7 adet 220Ω direnç ( tavsiye edilen)
- Jumper kablolar
7 SEGMENT DISPLAY PİN DİYAGRAMI
Kısaca 7 segment displaylerden bahsetmek gerekirse, günlük hayatımızda birçok elektronik devrede karşımıza çıkan led tabanlı göstergelerdir. 7 segment ismini alması içerisinde bulunan her bir ledin birer segment olarak adlandırılmasından kaynaklıdır. Fiziksel olarak tekli, ikili, dörtlü, sekizli gibi ihtiyaca yönelik birçok çeşidi bulunmasının yanı sıra ortak katot ve ortak anot olmak üzere iki çeşidi vardır. Ortak katot displaylerin bağlantısı yukarıda gösterilen "com" pinlerinin herhangi birinden toprağa bağlanması ile gerçekleştirilir. Ortak anot olması durumunda ise 5 volta bağlanır. Ortak katot displaylerde mikrodenetleyicinin ilgili pinleri "high" (1) olması durumunda ledlerin yanması sağlanır, "low" (0) yapılması durumunda ise ledler söndürülür. Ortak anot displaylerde ise bu durum tam tersi olarak gerçekleşmektedir.
Devremde a,b,c,d,e,f,g pinlerini sırası ile mikrodenetleyicinin b0,b1,b2,b3,b4,b5,b6 pinlerine bağladım ve her bir bağlantı için yani her bir led için 220 ohm değerinde direnç kullandım. Bu şekilde display in içerisindeki ledleri korumuş oluruz. Direnç kullanmadan da bağlanabilir ancak displayin zarar görme ihtimaline karşı dirençle bağlanması tavsiye edilir.
Devrenin kodlarına aşağıdan ulaşabilirsiniz.
#include "stm32f10x.h" // Device header
const int digit[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D,0x7D, 0x07, 0x7F, 0x6F};
void delay(uint32_t time)
{
while(time--);
}
void gpioConfig()
{
GPIO_InitTypeDef GPIOInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIOInitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIOInitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6;
GPIOInitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIOInitStructure);
}
int main()
{
gpioConfig();
while(1)
{
for(int i=0; i<10; i++)
{
GPIO_SetBits(GPIOA,digit[i]);
delay(3600000);
GPIO_ResetBits(GPIOA,0xFF);
}
}
}