Rs-232 ile Labview ve STM32F103C8T6 Kullanılarak Led Yakıp Söndürme Projesi

Merhaba arkadaşlar bugün sizlerle Rs-232 ile Labview  ve STM32F103C8T6  kullanılarak led yakıp söndürme işlemini gerçekleştiricez. Neden bu proje ? bu soruya cevap verecek olursak arkadaşlar  led yakıp söndürme olayının  röle tetiklenmesinde , kendin yap projelerinde yer alan PLC devrelerinin ve tüm hobi sayısal elektronik devrelerinin temelini oluşturması , STM32F103C8T6 kartının seçilmesinin nedeni ise STM32 serisine ait kartlarının en temeli olması ,dronlarda ,DELTA gibi PLC cihazlarında kullanılması ve birçok dokunmatik ekran ile kontrol edilen robotik projelerinde  tercih edilmesi   beni bu projenin yapımına götürmüştür.Bu cevaptan sonra isterseniz projeye adım adım başlayabiliriz arkadaşlar;

GEREKSİNİM PROGRAMLARI

İlk olarak aşağıda verilen linkleri tıklayarak programları indirelim ,

  • labview programını kendi bilgisayarınızın özelliğine ve bu programa ait istediğiniz sürümü Labview ifadesine  tıklayarak,
  • STM32F103C8T6 kartına ait yapılan yazılımın derlenmesi için Arduino IDE ifadesine tıklayarak,
  • Arduino IDE programında kullanılan STM32 serisine ait kartların dosyalarına Arduino for STM32 ifadesine tıklayarak indirilir .
  • NOT : Arduino for STM32 linkinden İndirilen bu dosyalar .zip dosyasından çıkartılır ve ardından ise OS (C) -> Program files(x86)->Arduino -> hardware dosyasının içerisine kopyalanır.

PROJENİN AMACI

Evet arkadaşlar programlarımızı indirip kurduk şimdide  bu projede neler öğreneceğiz sorusuna aşağıdaki maddelerle açıklayacak olursak;

  1. STM32F103C8T6 kartının özelliklerini ne olduğunu , RS-232 iletişim protokolü,   led kavramlarını öğrenmek.
  2. STM32F103C8T6 kartına ait gömülü yazılım kodları , açık kaynak kodu olarak kullanılarak yazılımda kullanılan komutlarının kullanım amaçlarını öğrenmek.
  3. STM32F103C8T6  kullanılarak  PC ile nasıl haberleşeceğini göstermek ve öğrenmek.

TEORİK BİLGİLER

  1. STM32F103C8T6 : STM32F103C8T6 kartı özellikleri nedir ? bu soruya ayrıntılı cevap verecek olursak arkadaşlar  STM32F103C8T6 kartı  STM32F103xx serisine aittir ve en yüksek çalışma frekansı  72 MHz frekanstır. Bu kart ARM®Cortex®-M3 32-bit RISC çekirdeği mimarisine sahiptir. Programların yüklenebilmesi için 128 kb’a kadar flash bellek ve 20Kbayt kadar ise SRAM’a sahiptir. PLL konfigürasyonu için iki adet  APB veriyoluna sahiptir. STM32F103C8T6 iki adet 12 bit ADC, üç adet genel amaçlı 16 bit zamanlayıcı ve bir adet PWM zamanlayıcı ve standart ve gelişmiş iletişim arabirimlerine sahiptir. İletişim arabirimleri olarak ise içerisinde  iki adet I2C ve SPI, üç adet USART, bir USB ve bir CAN-BUS arabirimi bulunur. Çalışma gerilimi 2.0 ile 3.6 volt aralığındadır. Çalısma sıcaklığı ise -40 C ile +85 C aralığındadır.
Resim http://showmeyourcode.org/how-to-program-stm32f103c8t6/ adresinden alınmıştır.
  1. RS-232: Bilgisayar ile mikrodenetleyici/mikroişlemci içeren devrelerde iletişim kurmamıza yarayan iletişim protokolüdür . Bu iletişim protokolünde tek bir hattan veri gönderilip tek hattan veri alınır paralel iletişime göre yavaş olmasına rağmen uzun mesafelerde kullanılır ve maliyet olarak da düşüktür. Bu seri iletişim ile ilgili temel kavramların tanımlarını yazacak olursak;
  2.  Start (başlangıç ) biti : Bu alıcıya veri gönderiminin başlandığını bildirir
  3. Stop(Bitiş) biti : Bu ise alıcıya gönderilecek bilginin bittiğini belirtir stop biti 1 veya  2 olabilir.
  4. Parity(Eşlik) biti : Bu ise alıcı tarafından alınan bilginin iletilip iletilmediğini  kontrol etmek için kullanılır .
  5. Baund Rate : Bu ise gönderilecek verinin hızını belirtir.
  6. Led : Işık yayan diyotlar olarak adlandırılır. Temelinde ise üzerinden geçen elektrik akımı ile katkılandığı maddenin cinsine göre kırmızı, yeşil, mavi gbi ışık yayan yarı iletken malzemelerdir. Elektronik devrelerde ledin uzun bacağı anot(+) , kısa bacağı ise katot (-) dikkat ederek devreye bağlanmalıdır.

MALZEME LİSTESİ
Proje kapsamında teorik bilgiler verildikten sonra projenin devamı için gerekli olan malzemeler aşağıdaki tabloda yer verilmiştir.

MALZEME ADI MALZEME ADET MALZEME ADI MALZEME ADET
Breadboard 2 Data Kabloları N TANE
STM32F103C8T6 1 USB TTL Dönüştürücü 1
Data Kabloları N TANE ST-LİNK V2 1
Kırmızı Led 1 *** ***
Yeşil Led 1 *** ***
Mavi Led 1 *** ***
Beyaz Led 1 *** ***
330 ohm 4 *** ***

ŞEMATİK DEVRE
Bu projenin şematik bölümü fritzing programında  çizilmiştir. Şematik kısmına bakılacak olursa  seri iletişim için USB TTL dönüştürücü kullanılmıştır. STM32F103C8T6 kartının 5V kısmından besleme yapılmıştır ve 5V kısmına bağlı 3.3 V regületör entegresi vardır bu bakımdan kartın 5V kısmından beslenme kısmı sorun yaşatmamaktadır.

Kart Çizim
KAYNAK KODLARI

Bu projenin gömülü yazılımı Arduino IDE  derleyecisinde  derlenmiştir. Komutlara bakılacak olursa her satır yanında.     ‘ // ‘ ifadelerinin yanında açıklamaları bulunmaktadır . Kaynak kodlarının yanındaki açıklamaları dikkate alarak proje çalışmanıza devam etmeniz önerilir.

 /*   Program Adı : RS232 ile Led Uygulaması
      Donanım     : STM32F103C8T6
      Derleyici   : Arduino IDE 1.8.5
      MCU         : 72 MHz
      Yazan       : Adil Teoman Kurt
      Adres       : https://electrolog.blog
 */
char data; // Data Karakter olarak tanımlanıyor
const int kirmizi_led = 0; // STM32F103C8T6 kartının A0.Pini kirmizi_led ifadesiyle eşleniyor 
const int yesil_led = 1; // STM32F103C8T6 kartının A1.Pini yesil_led ifadesiyle eşleniyor 
const int mavi_led = 2;// STM32F103C8T6 kartının A2.Pini mavi_led ifadesiyle eşleniyor 
const int beyaz_led = 3;// STM32F103C8T6 kartının A3.Pini beyaz_led ifadesiyle eşleniyor 
void setup()
 {
  Serial.begin(9600); //Seri iletişim başlatılıyor ve Baudrate 9600 yapılıyor
  pinMode(kirmizi_led,OUTPUT); //A0. Pin  çıkış olarak ayarlanıyor
  pinMode(yesil_led,OUTPUT);//A1. Pin çıkış olarak ayarlanıyor
  pinMode(mavi_led,OUTPUT);//A2. Pin çıkış olarak ayarlanıyor
  pinMode(beyaz_led,OUTPUT);//A3. Pin çıkış olarak ayarlanıyor
 }
void loop()// İşlem yapılacak bölüm 
{
    data=Serial.read(); // Seri iletişim hattan gelen veri okunuyor
    if( data=='A')
    {
      digitalWrite(kirmizi_led,HIGH); //A0. Pin lojik-1 yapılıyor
      Serial.print("KIRMIZI LED YANDI\n"); //Bu komut ile PC ye ifade gönderiliyor
    
    }
   if( data=='B')
    {
      digitalWrite(kirmizi_led,LOW);//led1 lojik-0 yapılıyor
      Serial.print("KIRMIZI LED SONDU\n");//Bu komut ile PC ye ifade gönderiliyor
    }
    if( data=='C')
    {
      digitalWrite(yesil_led,HIGH);//A1. Pin lojik-1 yapılıyor
      Serial.print("YESIL LED YANDI\n");//Bu komut ile PC ye ifade gönderiliyor
      
    }
    if( data=='D')
    {
      digitalWrite(yesil_led,LOW);//A1. Pin lojik-0 yapılıyor
      Serial.print("YESIL LED SONDU\n");//Bu komut ile PC ye ifade gönderiliyor
    }
    if( data=='E')
    {
      digitalWrite(mavi_led,HIGH);//A2. Pin lojik-1 yapılıyor
      Serial.print("MAVI LED YANDI\n");//Bu komut ile PC ye ifade gönderiliyor
    }
    if( data=='F')
    {
      digitalWrite(mavi_led,LOW);//A2. Pin lojik-0 yapılıyor
      Serial.print("MAVI LED SONDU\n");//Bu komut ile PC ye ifade gönderiliyor
    }
    if( data=='G')
    {
      digitalWrite(beyaz_led,HIGH);//A3. Pin  lojik-1 yapılıyor
      Serial.print("BEYAZ LED YANDI\n");//Bu komut ile PC ye ifade gönderiliyor
    }
    if( data=='H')
    {
      digitalWrite(beyaz_led,LOW);//A3. Pin  lojik-0 yapılıyor
      Serial.print("BEYAZ LED SONDU\n");//Bu komut ile PC ye ifade gönderiliyor
    } 
}

LABVIEW ARAYÜZ PANELİ
Bu projenin arayüz programı Labview programı  ile oluşturulmuştur . Programın ‘Veri Gönderilmesi’ bölümü ile ledlerin durumu kontrol edilirken ‘Veri Alınması’ bölümü ise STM32F103C8T6 dan  PC ye gönderilen verilerin alınıp yazıldığı kısımdır.

Labview stm32

 

PROJENİN VİDEOSU

Bu projede hazırlanan C# programına ait  arayüzünün STM32F103C8T6 ile  gerçek  zamanlı elektronik devresi ile ilgili çalışmayı anlatan videoya Labview +STM32F103C8T6 ifadesine tıklayarak izleyebilirsiniz.

EK DOSYALAR

Bu bölüm ise Labview arayüz dosyasının  .exe dosyasını , STM32F103C8T6 için yazılan gömülü yazılımının  .bin uzantılı  dosyasını içermektedir.

Ek dosyalar ( .bin ve .exe)

BİLGİLENDİRME

   Proje hakkında  merak ettiklerinizi  iletişim adresinden sorabilir veya yorum kısmına yazabilirsiniz arkadaşlar projede herkese  iyi çalışmalar.

Hoşçakalın…..

6 comments

  1. merhaba, bende labview ve stm kullanarak bir proje yapacağım ben stm32f4 kartını kullanıyorum. Burada anlamadığım yer ise kodlarda gelen veriyi eğer A ise ya da B ise şeklinde if komutlarını yazılmış. Labviewden gelen datayı A B yada C şeklinde nasıl ayarlıyoruz ya da bu kısım tam olarak nasıl oluyor ? yardımcı olur musunuz acaba ? teşekkür ederim

    Beğen

      1. tekrardan merha Adil Teoman bey, mailimi sizinle paylaştım sizden mail beklemekteyim

        Beğen

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.