AKIM SINIRLAMASI ALTINDA DC MOTOR SÜRMEK (L6506/L298)

Motor sürme konusu gün geçtikçe daha ilgi çeker hale geliyor. Bu konuda epeyce yayınım oldu. Yayınlardan bazılarında adım motoru sürmeyi ele almış da olsam, endüktif yüklerin sürülmesi, akım sınırlaması uygulanması açısından söylenenler tüm motor tipleri için geçerli.

Bu yayında daha önce “PID kontrol altında DC motor sürmek” başlıklı yayınımı/uygulamamı geliştirecek şekilde akım sınırlamasını işin içine nasıl sokacağımızı anlatacağım. Bunu ST Microelectronics’in L298 sürücüsünü L6506 akım sınırlayıcısı ile birlikte kullanarak yapıyorum.

Aşağıdaki yayına göz atılmasını da öneririm, bu yayınla ortak noktalar çok da olsa orada daha iyi anlattığım şeyler bulabilirsiniz.

Akım sınırlaması altında step motor sürmek

Continue reading “AKIM SINIRLAMASI ALTINDA DC MOTOR SÜRMEK (L6506/L298)”

AKIM SINIRLAMASI ALTINDA STEP MOTOR SÜRMEK

Adım motorlarını sürme konusunda bir yayın yapmıştım. Başlangıçta L298 tümleşik sürücüsünü (dual H bridge) kullanırken daha sonra A4988 kullanan bir modele geçişimi anlatmıştım.

Bu yeni yayında L298 H köprüsünü motoru daha yüksek akımlarla ve hızlı olarak sürmek için nasıl kullanabileceğimizi anlatacağım. Bunu yaparken motor, daha doğrusu endüktif yükleri sürme konusundaki temel mühendislik bilgilerimizi tazeleyeceğiz. Bu yayını, özellikle genç mühendis arkadaşların ve mühendis adaylarının buna gereksinimlerinin olduğunu gördüğüm için yapıyorum. Zira bu bilgiler sadece adım motoru sürmek için değil, her türlü endüktif yükü sürmek için çok önemli. Bunları bilmeden motorumuzu istediğimiz hız ve güç ile sürmemiz mümkün değil.

Umarım faydalı olur.

Continue reading “AKIM SINIRLAMASI ALTINDA STEP MOTOR SÜRMEK”

BİR ÇUBUĞU PID KONTROL ALTINDA DENGEDE TUTMAK – Bölüm 3 (MPU6050)

Önceki bölümlerde bu işi yapmak için üç eksenli ADXL345 ivme sensörü kullanmıştım. Projeyi bu defa da MPU6050 ivme sensörü ile gerçekleştirdim. MPU6050 sensörü gyro ölçümleri de yapabilen altı eksenli tipte olduğundan motor titreşimlerinden ve sarsıntılardan etkilenmeyen bir sistem oldu.

PID kontrol prensibi öncekiyle aynı da olsa, açı hesaplamaları, kontrol parametreleri oldukça farklı.

Bundan önce bu konudaki diğer yayınlarıma göz atmanızı öneririm :

Bu projede çok küçük drone motorlarını 3055 MOSFET lerle sürüyoruz. Daha büyük motorları L298 ile hem de akım sınırlaması altında sürmek için “Akım sınırlaması altında DC motor sürmek” başlıklı yayınıma bakmanızı öneririm. Böyle bir sistemi akım sınırlaması olmadan kullanmak işi eksik yapmak anlamına gelecektir.

Continue reading “BİR ÇUBUĞU PID KONTROL ALTINDA DENGEDE TUTMAK – Bölüm 3 (MPU6050)”

BİR ÇUBUĞU PID KONTROLU İLE İSTENEN AÇIDA TUTMAK-Bölüm 2 (2 motor)

İki ucunda birer adet pervaneli drone motoru bağlı olan bir çubuğumuz var. Bunu istediğimiz eğimde tutmak için STM32F103 mikrodenetleyici ile ADXL345 ivme sensörü kullanarak PID kontrolu altında çalışan bir sistem geliştiriyoruz.

Bu projenin ilk adımı çubuğun sadece tek tarafındaki bir motor ile dengede tutulması idi, o aşamayı anlattığım yayına ulaşmak için burayı tıklayabilirsiniz. İlk yayında anlattıklarımı burada tekrarlamayacağım için önce onu okumanızı öneririm.

Continue reading “BİR ÇUBUĞU PID KONTROLU İLE İSTENEN AÇIDA TUTMAK-Bölüm 2 (2 motor)”

BİR ÇUBUĞU PID KONTROLU İLE İSTENEN AÇIDA TUTMAK

Bir eksen etrafında hareket edebilecek şekilde bağlı bir çubuğu yatay durumda ya da istediğimiz herhangi bir eğimde sabit tutmak istiyoruz. Öyle ki bağlı olduğu platformu nasıl hareket ettirirsek ettirelim aynı eğimi korumaya devam etsin, çubuğu itip pozisyonunu bozsak da hemen kendini toparlayıp önceki eğimine geri dönsün.

Bu projede ortasındaki mafsal etrafında serbestçe hareket edebilen bir çubuktan oluşan “tahtırevalli” yi istediğimiz eğimde tutmaya çalışacağız. Bunun için kontrol işlemcimiz STM32F103, eğim/ivme sensörümüz ADXL345, aktivatörümüz de çubuğumuzun iki ucundaki pervaneli drone motorları olacak. Şimdilik iki motordan birisini kullanacağız, iki motorlu çalışma bir başka projeye…

Türevsel bileşeni bu projede de devreye sokmuyorum ama ne olduğunu, ne zaman kullanılması gerekeceğini matematiğe girmeden basitçe anlatıyorum.

ADXL345 ile eğim ölçme ve PID kontrolu altında DC motor kontrolu hakkında daha önce yayınlarım olmuştu, bu projeye girişmeden önce o yayınlara göz atmakta yarar var derim:

Bu proje çubuğun tek tarafındaki tek motor ile dengede tutmayı ele alıyor. Bunun devamı olan çalışmada aynı işi çubuğun iki ucundaki iki motor ile yapıyoruz. O yayına ulaşmak için aşağıdaki linki tıklayabilirsiniz. İkisi birbirinin tamamlayıcısı olduğundan önce bu ilk yayına göz atmalısınız):

Continue reading “BİR ÇUBUĞU PID KONTROLU İLE İSTENEN AÇIDA TUTMAK”

STM32 UART DMA İLE UZUNLUĞU BİLİNMEYEN VERİ PAKETLERİNİ ALMAK

STM32 ile USART üzerinden veri alış verişi yapmanın çeşitli yöntemleri var. En basitinden yoklama (polling) yöntemi, biraz daha geliştirilmiş bir yöntem tercih ediyorsak kesme (interrupt) yöntemi kullanılabiliyor. Daha önce bu yöntemleri ve ring buffer kullanarak veri alış verişini anlattığım yayınlarım olmuştu.


Bu sefer, HAL kütüphanesinden özel bir fonksiyonu kullanarak DMA modunda alış için uyarladığım ring buffer tekniğini anlatacağım. Bu yeni algoritma UART DMA kesmelerinden yararlanarak CPU yu neredeyse hiç meşgul etmeden çalışan basit ve verimli bir çözüm. Bundan sonraki projelerimde bu kütüphaneyi kullanmayı düşünüyorum.

Continue reading “STM32 UART DMA İLE UZUNLUĞU BİLİNMEYEN VERİ PAKETLERİNİ ALMAK”

STM8 VE MAX6675 İLE SICAKLIK ÖLÇÜMÜ

Fırınlar, lehimleme aparatları ve bunların benzerleri aletlerin sıcaklık kontrollarını yapmak için birkaç yüz dereceye hatta seramik işleri için 1000oC ye çıkabilen sıcaklıkların ölçülmesi gerekiyor. Bu işler için en uygun seçenek bir K tipi termokupl oluyor. Termokupl çıkışındaki gerilimin yükseltilmesi ve sayısallaştırılması için de popüler seçenek olan Maxim’in max6675 inden yararlanıyorum.

Bu basit iş için STM8 mikro denetleyici ve bir OLED ekran kullanıyorum ama burada anlatılanlar ve kodlar rahatlıkla STM32 ye uygulanabilir.

Continue reading “STM8 VE MAX6675 İLE SICAKLIK ÖLÇÜMÜ”

STM32 ve STM8 İLE OLED SSD1306 EKRAN

0.96″ boyutunda 128×64 ve 128×32 piksel OLED ekranlar birkaç dolarlık fiyatlarla bulunabiliyor. Bu ekranlar SSD1306 ya da SH1106 kontrol yongaları ile I2C ve SPI arayüzlü olarak satılıyor. TFT ve Monokrom LCD lere alternatif olarak kullanılabilen bu ekranların kullanımı için internette bol miktarda örnek kod ve sürücü var.

Küçük boyut ve yüksek kontrastları ile OLED ekranlar klasik arkadan aydınlatmalı LCD ekranlara hoş bir alternatif oluşturuyorlar.

Ben bu yayında, ssd1306 OLED ekranları STM8 gibi program ve RAM belleği çok kısıtlı olan mikro denetleyicilerle kullanmak için geliştirdiğim bir algoritmayı anlatıyorum. Bu sürücü, 128×32 çözünürlüklü OLED ekranlara yönelik olarak önemli bir iyileştirmeyi daha içeriyor.

Continue reading “STM32 ve STM8 İLE OLED SSD1306 EKRAN”

STM8S MİKRO DENETLEYİCİ İLE ÇALIŞMAK

Genelde küçük projelerimde STM32F103 serisi mikro denetleyiciler ile çalışırım. Bu 32bit mimariye sahip, 72Mhz ARM Cortex M3 serisinin harcı alem, ucuz bireyidir. Son zamanlarda farkettim ki bunların 48 pinli “Pico” geliştirme tipinin fiyatı bile 1 dolarlardan 3 doların üzerine çıkmış. Bu durumda malzeme kutularımda yıllardır beklemede olan onlarca STM8 modülünü tekrar elime aldım. Hiç olmazsa küçük uygulamalarda onları kullanabilirim diye düşündüm. Aşağıdaki güncel fiyat karşılaştırması bu ilgiye değer olduğunu gösteriyor (Ali Express fiyatları – tek tümleşik devrelerin değil, küçük geliştirme modülü fiyatları) :

STM8S003F3P6. : 0.76$/ad
STM32F030F4P6: 2.5 $/ad (20 pin, STM8 e en yakın özelliklerde)
STM32F103C8 : 2.5-3.5$/ad
STM32F401CC. : 3.5$/ad

Üstte STM32F103C8/altta STM8F103

Elbette STM8 in I/O sayıları, hızı, program ve RAM bellek boyutları STM32 ye yaklaşamıyor bile, ama pek çok uygulama için yeterli oluyor. 20 pinli STM8 modüllerinin fiziksel boyutları da 48 pin STM32 ye göre çok daha küçük. STM32 nin de -F030 gibi- 20 pinli tipleri var ama fiyat olarak 48 pinlilerden çok farklı değiller.
STM8 de uygulama geliştirmek için kullanılan platform, derleyici ve derlenmiş program kodunu STM8 e aktarmada kullanılan uygulama STM32 den farklı.
Bu yayında bir STM8 uygulaması geliştirmek için gerekecek araçları anlatmaya çalışacağım.

Continue reading “STM8S MİKRO DENETLEYİCİ İLE ÇALIŞMAK”

STM32 İLE ST25VF040 NOR FLASH BELLEK KULLANMAK

STM32 ile EEPROM kullanmak gerektiğinde 24L serisi I2C arayüzlü tümleşik devreleri kullanmaktaydım. Ancak bunlara daha hızlı bir alternatif gerektiğinde SPI arayüzlü NOR FLASH bellekleri kullanmak uygun oluyor. 50 MHz saat hızları ile çalışabilen bu bellekler en fazla 400 KHz e çıkabilen I2C EEPOM lara göre çok hızlılar.

Ancak bunların kullanımları 24L serisi EEPROM’lardan biraz farklı. Bu yayında Ali Express den çok ucuza aldığım (5 tanesi 0.55USD) 4 Mbitlik SST25VF040B-50-4C-S2AF tipi NOR Flash yongasının STM32 ile kullanılışını anlatacağım.

Bilgisayarların BIOS yongalarını CH341A modülü kullanarak PC den okuyup yazma işlemini bir başka yayında ele alacağım. Bu yayın STM32 ile Flash kullanımına yönelik.

Continue reading “STM32 İLE ST25VF040 NOR FLASH BELLEK KULLANMAK”