"Enter"a basıp içeriğe geçin

Kategori: Eğitim

Ankakit ile L3G4200D Gyro Okuma

Uzun zamandır bir şeyler yazmıyorum. İçimdeki isteksizlik ve tezimle olan husumetimi kırabildim ve tekrar sahalara döndüm diyebilirim. Ardunio ile başladığım bu serüvene pic ile devam edecekmişim gibi gözüküyor. Zırt pırt tatil olan çin yüzünden hala devrelerimi yollayamadım. Bu yüzden artık bir yerden başlama kararımı hayata geçirdim ve sonunda başladım 😀

gyro_devre

Seri Port Terminal Programı (C#)

Öncelikle kimseye sataşmadığımı ve gönderme yapmadığımı söylemekle yazıma başlamak istiyorum. Zira bir önceki yazımda özellikle birilerine atıfta bulunduğum gibi düşünceler oluştu. İnternetteki çizgi izleyen robot yapımı adındaki paylaşımların kötülüğünden ve gereksizliğinden yakınmıştım. Şimdiye kadar çizgi izleyen üzerinde bir çok çalışma yapıp ayrıntılı açıklamalarda bulunmuştum (Çizgi izleyen robot yapımı dökümanını indir) ancak ilk kez çizgi izleyen yapanların hazırladığım bu dökümanları kullanmadıkları, internette hazır kodu verilmiş şeması çizilmiş projeleri tercih ettiklerini görüp en azından adam gibi bir şey yapsın dediğim için bu tür bir yazı yazmıştım. Neyse çok uzatmayıp paylaşacağım projeyi anlatayım.

PID Kontrol -1 (PID Control -1)

Merhaba arkadaşlar bu yazımda PID kontrolünün temel prensibini ve nasıl koda dönüştüreceğimizi anlatacağım. PID kontrol döngüsü yöntemi , yaygın endüstriyel kontrol sistemlerinde kullanılan genel bir kontrol döngüsü geri bildirim mekanizmasıdir. Bir PID denetleyici ölçülü bir süreç içinde değişen ve istenilen ayar noktası ile arasındaki farkı olarak bir “hata” değerini hesaplar. Kontrolör proses kontrol girişini ayarlayarak hatayı en aza indirerek istenilen ayar değerine ulaşmak için çalışır.[1]

Seri İletişim -3

Seriporttan gelen daha önceden belirlenmiş bir protokoldeki verinin pic ile alınması. Devre seri iletişim -1 yazısındaki devre ile aynıdır.

Seri iletişim ile ilgili yazdığım ilk yazımda seriport’un debug olarak kullanıldığından bahsetmiştim. Bu örnekte de görüldüğü üzere her bir adıma değerler yazılarak hatanın nerede olduğunu anlamamızı sağlıyor. Böylelikle hata teşhisi çok daha kolay olmaktadır.

Seri İletişim -1

Seri iletişime giriş niteliği taşıyan bu yazımda en basit şekliyle veri yollayacağız. 16F628A mikrodenetleyicisi ile CCS C derleyicisini kullanarak bu uygulamayı gerçekleştireceğiz. Simülasyon için ise Proteus programından yaralanacağız. ilerleyen yazılarımda c# programıyla pic’i haberleştirip verileri grafik üzerinde nasıl göstereceğimizi anlatacağım.

16F628A mikrodenetleyicisi küçük uygulamalar için çok güzel bir denetleyici. Tek sorunu üzerinde analog giriş bulunmaması. İçerisinde Timer0, Timer1 ve Timer2 olmak üzere 3 adet timer bulunmakta. Projemizde Timer0’ı açacağız ve Timer0 bizim kontrol işlemlerimizi gerçekleştirmek için 256 us’de bir kontrol işlemi yapacak.

STM32VLDISCOVERY ile Matlab-Simulink projesi oluşturmak

Hızlı ve pratik olması nedeniyle hala pic’leri kullansak da gün geçtikçe ARM tabanlı mikro denetleyicilerin kullanımı yaygınlaşmaktadır. Matlab programı kendini kanıtlamış ve akademik projelerde yoğun olarak kullanılmaktadır. Matlab kullananlar bilir Sumulink bloglardan oluşmaktadır ve çok kısa sürede akıllı denetim sistemleri (pid vb) çalıştırılabilmektedir. Bu yazımda STM32VLDISCOVERY kitinin Matlab’de nasıl kullanıldığını anlatacağım.

LPC2104 – Örnek Programlar

Örnek 1

Pin 0’a bağlanmış bir led’i 500 milisaniye boyunca 1, 500 milisaniye boyunca 0 yapan programı yazınız.

#include <LPC21xx.H> //islemcinin kaynak dosyasi ekleniyor.

/* Gecikme Fonksiyonu */
void Gecikme (long int sure)
{
 long int i,k; // 16 bitlik i degiskeni tanimlaniyor.
 for (i=1;i<=sure;i++) // girilen deger i degiskeninden büyük olana kadar for içerisinde dön
 {
 for (k=0;k<=12000;k++)
 {}
 }
}
/* Ana Fonksiyon */
int main (void) {

IODIR0 = 0x00000001; //giris cikis ayarlama komutu 1 cikis 0 giris
// 1. biti cikis digerleri giris

 while (1) { //sonsuz döngü
 IOSET0 = 0x00000001; //1. biti 1 yap
 Gecikme(500); //bekleme yap (yaklasik 500 msn - 12Mhz de)
 IOCLR0 = 0x00000001; //1. biti 0 yap
 Gecikme(500); //bekleme yap (yaklasik 500 msn - 12Mhz de)
 }
}

KEIL ile Proje Oluşturmak

Program yazabilmek için öncelikle komutları tanımamız ve ne işe yaradıklarını bilmemiz gerekir. Komutlar yeri geldikçe çalışma içerisinde anlatılacaktır. Öncelikle basit bir led yak söndür programı yazabilmemiz için gerekli komutları göreceğiz.

Uygulamalarımız..

Ders1 = LED yak söndür uygulaması
Ders2 = 1 buton 1LED uygulaması
Ders3 = Karaşişek uygulaması
Ders4 = 7 segment display’de butonlar ile arttırıp azaltma uygulaması
Ders5 = 7 segment display’in keypad ile kontrolü (Keypad.h dosyası oluşturma)
Ders6 = 7 segment display ve keypad ile şifreli kilit uygulaması (şifre=3639)
Ders7 = LCD uygulaması

Opamplar – 2

Bu sayfada opamplarla yapılan filtreler ile ösilatörlerin devrelerini paylaşacağım. Sinyalleri işlemek için öncelikle gelen sinyaldeki bizi ilgilendiren sinyali alıp işlem yapmamız gerekmektedir. Örneğin bir radyo sinyalindeki yayını alabilmek için bir band geçiren filtre ile taşıyıcı sinyalini tutup, bilgi sinyalini alabiliriz. Ya da robotikte kullandığımız bir mesafe sensörünü alçak geçiren bir filtre ile ani değişimleri tutup saniyede 50 örnek alarak parazitleri engellemiş oluruz.