Ana içeriğe atla

Pic Programlamaya Giriş-1

Güzel bir konuya başlıyoruz. İlk dersinden sonra diyeceksiniz ki pic programlama bu kadar kolaymıymış(Başlangıç seviyesinde sadece ışığı görmek için). Evet ilk önce temin edilmesi gereken birkaç program var birincisi kodları yazacağımız ücretsiz olarak temin edilebilen açık kaynak kodlu jal(Just Another Language), diğeri ise çalıştıracak olduğumuz devreleri tasarlayacağımız isis programı bunuda internetten edinebilirsiniz. Aslında ben size güzel bir iki adres verirdim fakat uygun düşmez. Jal programında arıza çıkabiliyor, yukarıdan indirmiş olduğunuz jalwin dosyasını rardan çıkardıktan sonra c:\ dizinine atmanız gerekiyor.Neden bilmiyorum ama mutlaka c:\ dizinini istiyor. Her neyse ilk önce kendim bildiğim kadar yani tamamen yüzeysel olarak isis programına bakalım.

Bir numaradaki “P” yazan butona tıklayıp 16F84A,Battery,Button,Crystal,Led-Ben yeşil rengi seçiyorum-, res ekliyoruz bunları açılan sayfada yukarıdaki arama kutucuğuna yazdığınızda hemen geliyor zaten. Isis’e alışmanız biraz zaman alabilir, sağ tık sol tık olayları biraz karışık benim alışmam normalden biraz fazla zaman aldı. Şimdi diğer işaretlediğimiz şeylerin ne işe yaradıklarından bahsedelim. 2 numaralı butonun olduğu yerden topraklamayı alacağız(Ground). 3 Numaralı butonumuz yanlışlıkla sildiğimiz ya da eklediğimiz elemanları geri getirmemize ya da geldiği yere geri göndermemizi sağlıyor.4 numaralı buton benim favorilerim arasında olmakla birlikte yerleştirdiğimiz elemanın sağa sola aşağı ya da yukarı bakmasını saplayarak bakış açısını yani yönünü değiştiriyor. 5 Numara sağ tık ile toplu olarak seçtiğimiz elemanları kopyalamaya 6 Numarada bunları taşımamızı sağlıyor.7 Numara devreyi çalıştırmaya 8 Numarada tahmininiz üzere devreyi sonlandırmaya yarıyor. Numara vermediğimiz en üste seçili olan kısımda Devices(Elemanlar) menüsünü açıyor. İsis de bir şeyler eklemek istediğimiz de ilk önce onları “P”den Devices menüsüne ekliyoruz daha sonra ekranda istediğimiz alanlara yerleştiriyoruz. Şimdi bazı standart yerleştirmeler var bunlar direk aşağıdaki resimdeki gibi kondansatörler(2) 22pF cristal(1) 4MHz olacak çünkü pic’i 4MHz lik alacağız

Bunları ayarlayabilmek için ilk önce devre elamanın üzerinde sağ tıklayıp kırmızıya çevirdikten sonra sol tıklayıp değerlerini değiştiriyoruz üzerine iki kere sağ tık yaparsak eleman siliniyor. Eğer kırmızılığı kaldırmak istersek herhangi bir boş alanda sağ tıklamamız yeterli. Şimdi kristalin ne olduğundan biraz bahsedelim. Kristal pic’e attığımız programın adım adım çalışabilmesi için pice sürekli sinyal gönderecek ve pic aldığı her sinyalden sonra bir alt satırdaki komutu işleyecek kristali bu amaç için kullanıyoruz. Kristale bağlı kondansatörler de kristalin daha kararlı çalışabilmesini sağlıyor.MCLR ucu pic’in restart ucu olarak geçmektedir ve pic enerjisini o uçtan alıyor gibi görünsede o uctan almaz. İsis bize direk enerji uçları bağlıymış gibi bir similasyon hazırlamıştır ve bu yüzden şuan devre üzerinde enerji uçlarını(Vss) göremiyoruz. Picler 5V ta düzenli bir çalışma gösterirler. 3,5V altında pic devreye girmez 5V üzerinde de yanacaktır. Biz bu yüzden bataryamızı sağ tık sol tık combosuyla 5V olarak ayarlıyoruz. Şimdi elemanlar istediğiniz gibi yerleşmemiş olabilirler. Bu yüzden yukarıda elemanın yönünün nasıl değiştirildiğini anlatmıştık(Favori Butonum). Bataryamızın önüne 10K lık bir direnç eklemeyi de ihmal etmiyoruz.Ne işe yaradığını ben de tam olarak bilmiyorum ama iyi bir şey olmasa oraya koymazlardı ve en sonda bunları 2 numaralı butondan aldığımız topraklama(Ground(resim no:5)) ya bağlıyoruz. Biraz da 16F84A mızı tanıyalım. 16F84A A ve B Portundan oluşmaktadır. A portunda 5 ve B portunda 8 bacak olmak üzere toplam 13 bacak üzerinden işlem yapabilmemize olanak sağlar. A veya B portunu giriş ya da çıkış olarak belirleyebiliyoruz. Bu işlemi pic’i programlamaya geçince anlatacağız şimdi basit olarak pic’i çalıştırabilmek için B0 pinine bir led bağlıyoruz. Aşağıdaki resimde de devrenin tam halini görüyoruz. Bir adet 330 ohmluk direnç(nasıl ayarlanacağını anlatmıştık combo hareketi ile) bir adet led ve ledin ucuna da ground(5) u bağlıyoruz.

Evet şuan itibari ile ilk basit devremizi oluşturmuş bulunuyoruz. En kısa zamanda JAL ile de programını yazacağız oda yarına kısmet olacak gibi. Haydi iyi çalışmalar...

Yorumlar

Bu blogdaki popüler yayınlar

C# Görüntü işleme

İlk Olarak Burayı Okumalısınız Öncelikle görüntü işleme üzerine olan kodları birebir hepsini ben yazmadım bunun için google da “c# color tracking” diye bir arama gerçekleştirdim ve referans olarak http://www.uguryalcin.de/c/372 adresini belirledim. Konuya geçecek olursak, ilk önce birkaç kütüphane dosyasına ihtiyacınız olacak. örnek projede kütüphaneler mevcut bunlar kendinizi daha da ileri götürmek için. aforge kütüphanesini indirmek isteyebilirsiniz. Ekran görüntüsü. Ben aslına bakarsanız kod anlatma konusunda pek iyi değilim. Örnek projeyi indirin. Kodları silin aralarına bir şeyler eklemeye çalışın ve öğrenin. Şimdi yeni bir soru ile daha karşılaşıyoruz. Aynı anda birkaç görüntü almak istersek ne yapmalıyız. Aslında onunda cevabı basit ama biraz da sizin araştırma yapıp kendi blogunuzda yayınlamanız için onu size bırakıyorum. Yayınlamış olduğunuz yazıyı yorumlardan paylaşırsanız çok mutlu olurum. Sağlıcakla kalın :) using System; using System.Collections.G...

C# pixel, görüntü işleme

İlk olarak Görüntü İşleme ile ilgili olan yazıyı okumanızı tavsiye edilir. http://yzgrafik.ege.edu.tr/~tekrei/dosyalar/sunum/gi.pdf bu dökümanın 25.sayfasındaki formülü kullanarak siyah beyaz bir resim yapalım dedim. Ekran görüntüsü aşağıdaki gibi oldu. Kaynak kodda şu şekilde ya da c# Pixel İşleme using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace pixelIsleme { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Bitmap PixelTara( Bitmap Goruntu) { Bitmap yeniGoruntu = new Bitmap (Goruntu.Width, Goruntu.Height); //Bitmap sınıfımızı oluşturduk. for ( int i = 0; i < Goruntu.Width; i++) //resmi yatay olarak taramak için { for ( int j...

C# İle Ping Atma

Evet arkadaşlar uzun zamandan beri blog’ta bir şeyler paylaşma sıkıntısı yaşıyorum. Bende en iyisi eski çalışmalarımı bir bir dökeyim dedim. Öncelikle size birazdan anlatacağım programın yapım hikayesini anlatayım. Bildiğiniz üzere bir zamana kadar Türk Telekom tek internet sağlayıcısıydı sonra d-smile çıktı, daha sonrada biri.net kendisini gösterdi… Biz internete bağlandığımız zaman bunların üçü de vardı aslında ama bulunduğumuz yer itibari ile –okuduğumuz yer küçük bir kasaba 7300 nüfuslu- Türk Telekom’u seçtik, tabi bir ara keşke bağlatmasaydık da dedik ama artık her şey için çok geçti. İnternetimiz bir geliyor, bir gidiyor sonra hiç gelmiyordu. Uzun telefon görüşmeleri ve biraz tehditten sonra zar zor bir teknik servis gönderebildiler. Tamam hiçbir değişiklik olmamıştı ama en azından bulunduğumuz yerde ki bayii müdürü gibi hata sizden kaynaklanıyor dememişti. Hatlarda parazit mi varmış ne gene düzelmedi fakat gel zaman git zaman internetin kesilmeden bağlı kalma süresi 5-6 saatlere...