Ana içeriğe git

Haberler

Son İletiler

91
Python / Ynt: Python Öğreniyoruz
Son İleti gönderen muhittin_kaplan -
OOP olalım.
Nedir OOP, malum Nesne Yönelimli Programlama nın ingilizce kısaltmasıdır. uzun uzadıya Şartları nedir ne olursa OOp olur yazmayacağım,
Pythonda Class,Method gibi bileşenleri kullanacağız, kendi yazdığımız classları, içerisindeki fonksiyonları kullanacağız. (Böl Yönet)
önce basit bir class oluşturalım.

myClass.py dosya içeriği
Kod: [Seç]
class YerFistigi:
    '''
        Bu Sınıf Yerfistigi ait işlemleri içerir
    '''
    def __init__(self,Ozellik,cins):
        self.spec=Ozellik
        self.type=cins


    def fistikOzellikleriYaz(self,mesaj):
        print (mesaj,self.spec)


class Portakal:
    '''
        Bu Sınıf Portakal a ait işlemleri içerir
    '''


    def __init__(self,Ozellik,cins):
        self.spec=Ozellik
        self.type=cins


    def PortakalOzellikleriYaz(self,mesaj):
        print(self.spec ,self.type,mesaj)


    def PortakalOzellikleriKaydet(self):
        print("DOSYAYA YAZILIYOR-----------",self.spec,self.type)

main.py dosya içeriği
Kod: [Seç]
from myClass import Portakal
from myClass import YerFistigi


print (Portakal.__doc__)


Vasikton=Portakal(cins="Vaşikton",Ozellik="Sulu, Oval, İnceKabuk")


Vasikton.PortakalOzellikleriYaz("Dörtyol Erzin Yöresinde Çok Görülür")


Kirmantin=Portakal(cins="Kirmantin",Ozellik="Sulu, Oval, İnceKabuk, Çekirdekli")


Kirmantin.PortakalOzellikleriKaydet()


Vasikton.PortakalOzellikleriYaz("")


BirinciSınıfFıstık=YerFistigi(cins="Osmaniye",Ozellik="1Numaralı Elek")
BirinciSınıfFıstık.fistikOzellikleriYaz(mesaj="Osmaniyede Yetiştirilir")

şimdi biraz üzerine yazalım/konuşalım.

Bir dosyanın içerisinde birden fazla class olabilir, bu bu sınıfları main.py dosyasının içerisinede yazabilirdik. Ben genelde tercih etmem (genelde OOP da yazmam ama PyQT ile gui yaparken lazım olacak).
Bir sınıf içerisinde __init__ fonksiyonu isteğe bağlıdır (ama önerilir), bu fonksiyon sınıf ilk çağrıldığında/oluşturulduğunda çalışır. self ile tanımlanan değişkenler o sınıf içerisinde tüm fonksiyonlarda kullanılır.
Bir sınıf içerisindeki fonksiyona parametre geçmek istiyorsdak ve sadece o fonksiyonda kullanılacaksa, basit şekilde fonksiyona parametre ile yapabilirsiniz.
[def fistikOzellikleriYaz(self,mesaj): buradaki "mesaj" sadece bu fonksiyonda kullanılır]

(Sonraki Çalışmamızda PyQt ile arayüz tasarımına gireceğimiz için bir girizgah yazdık)



Kolaylıklar dilerim.
92
Malzeme Bilgisi / Ynt: 7 Segment LCD
Son İleti gönderen MC_Skywalker -
MAxim'in sitesine bakmıştım MAX7219 gibi LCD için MAX7232 var aynı mantıkla çalışıyor.
93
STM32 Serisi / Ynt: STM32F0 ve iç saat(RTC)
Son İleti gönderen MC_Skywalker -
Hatalı kod yazmanadan dolayı çalışmıyormuş. sorunu bulup halletim. fakat 59 snde sonra 1 olduğunda birin yanında 9 kalıyor ekranı temizleme fonksiyonu oluşturmak gerekecek.



Birde saa ve tarihi ayarlamak için buton kullanıp menü vb. yapmak kaldı.
94
Malzeme Bilgisi / Ynt: 7 Segment LCD
Son İleti gönderen 1k -
Bu tip LCD lerde entegre sürücü bulunmaz. Bu durumda ya mcu da segment lcd sürücü bulunacak yada harici sürücü kullanmanız gerekecek. Çalışma prensibi  tarama yöntemi.

Örnek verilen tabloda COM1 seçilirse 1A-1H-2A-2H segmentleri kontrol edilebilir.Tabi taramayı sürücü hallediyor, biz sadece segmentleri seçiyoruz.
95
STM32 Serisi / Ynt: STM32F0 ve iç saat(RTC)
Son İleti gönderen MC_Skywalker -
iç saati çalıştıramadım gitti. ilk verdiğim değerden ileri gitmiyor. saliseyi ekran al dedğimde salisenin değişini görebiliyorum

Kod: [Seç]
/* USER CODE BEGIN 3 */
HAL_RTC_WaitForSynchro(&hrtc);
RTC_TimeTypeDef currentTime;
HAL_RTC_GetTime(&hrtc,&currentTime,RTC_FORMAT_BIN);
{

sprintf(lcd_buff, "%d:%d:%d", currentTime.Hours, currentTime.Minutes, currentTime.Seconds);
ssd1306_SetCursor(0,25);
ssd1306_WriteString(lcd_buff,Font_16x26,White);

ssd1306_UpdateScreen();
}
96
STM32 Serisi / Ynt: HAL lib ADC
Son İleti gönderen MC_Skywalker -
Realterm diye bir uygulama buldum. onunla sorunsuz.
 https://realterm.sourceforge.io/
97
STM32 Serisi / Ynt: HAL lib ADC
Son İleti gönderen muhittin_kaplan -
Terraterm i bende calistiramadim hocam. Problem olabilir.
Adc ye gelince kullandiginiz tum kanallari bir olcjm noktasina baglayiniz. Eger kullanmayacaksaniz gnd ye cekiniz
98
STM32 Serisi / Ynt: HAL lib ADC
Son İleti gönderen MC_Skywalker -
ADC'de aldığım veriyi UART üzerinden PC'ye atayum dedim. Öncelikli olarak bir deneme yapayım sonra ADC'yi de eklerindedim amma demez olayıdım. bulduğum basit örnekte bile PC ye veri alamadım.

STM32F030F4 ün bir tek UART'ı var onu HAL ile init ettim. 38400, 8bit, 1bit stop, no party

10 elemanlı bir dizi tanımladım
Kod: [Seç]
uint8_t tampon[10] = {10,9,8,7,6,5,4,3,2,1};

sonra  DMA veya INT kullanmadan
Kod: [Seç]
	HAL_UART_Transmit(&huart1, tampon, 10, 100);
HAL_Delay(100);

gönderdim. MCU pinlerine program atmak içinde kullandığım Serial to USB dönüştürücü takıp PC ye bağladım ve terra termi açtığımda ses soluk yok.  Dönüştürücüde sıkıntı yok zira ULINk2'yi çıkartıp bu dönüştürücüyle MCU programlaya biliyorum.

Nedir bunun sıkıntısı anlamadım?!!?
99
STM32 Serisi / STM32F0 ve iç saat(RTC)
Son İleti gönderen MC_Skywalker -
Hazır OLED kurcalarken bir saat yapayım dedim de.  saate nasıl ayar verceğiz onu bulamdım.  CubeMx ile ilk proje anında bir değer verbiliyoruz.  bu işleri anlatan basit (Ali okuluseviyesinde) dokuman arıyorum.

Daha önce butarz bir çalışma yapmadığım konuya fransız kalıyorum.  Hertürlü yardıma açım.
100
Malzeme Bilgisi / Ynt: 7 Segment LCD
Son İleti gönderen muhittin_kaplan -
8 pinle hepsini halletmis.