ana sayfa > C#, Microchip, Projelerim, Yazılım > Pic18F4550 ile USB Termometre

Pic18F4550 ile USB Termometre

Perşembe, 30 Ağu 2012 yorum ekle yorumlara git
Pic18F4550 ile USB Termometre

Merhabalar Arkadaşlar.

Ne zamandır CCS C üzerine Çalışıyordum . CCS de işimi görebilecek seviyeye geldikten sonra artık birşeyler yapayım dedim.

Bu yazımda Pic18F4550 ve USB haberleşmesi üzerine ufak bir uygulama yaptım. USB ile uğraşmayı gerçekten çok istiyordum. Birazcık uğraştırsada çevremdeki örnek uygulamaların bol oluşunun etkisiyle kısa zamanda USB işini çözdüm. USB ile uğraşan kişilerde ortak bir fikir var sanırım. Çünkü bu konuda okumadığım yazı veya makale kalmadı. Şöyleki, USB ilk başta gözü korkutsada bir iki uygulama yaptıktan sonra gerçekten kolaylık açısından rs232 haberleşmesinden farklı kalmıyor.

Yaptığım uygulamaya bakalım şimdi,

Sistem çok basit. 18F4550, RA5 pinine bağlı DS1820 sıcaklık sensöründen sıcaklık bilgisini okuyup USB Portu üzerinden Bilgisayara gönderir. Şimdilik sadece bilgisayara gönderiyor. Daha henüz C# da acemi olduğum için ufak bir form hazırlayıp pic ile haberleşmesini göstermek amacıyla sadece sıcaklığı formda gösterdim.

Sistemin Devre Şeması
USB_Term

CCS de USB kullanırken Programımıza dahil etmemiz gereken 3 adet dosya var. Bunlar pic18_usb.h, USB_Driver.h, usb.c dosyalarıdır.
CCS de yazdığım kod bu şekilde;

Vendor ID ve ProductID bilgileri USB_Driver.h dosyasında belirleniyor. Ben ikisinide hex olarak 0x1111 yaptım.

CCS de yazdığımız program bu şekilde. Sıcaklık bilgisi float tipinde olduğu için, Sıcaklık değerini ilk başta 10 ile çarpıp virgülden kurtarıyorum. Ardından Sıcaklık bilgisini Tam sayı ve virgülden sonraki hane olarak iki parçaya ayırıp bu şekilde bilgisayara gönderiyorum.

CCS yazılımı bundan ibaret. Gelelim bilgisayar tarafında C# yazılımına..

Öncelikle şunu söylemek istiyorum C# çok çabuk öğrenilebilecek dillerden biri, Gerçekten C# da program yazmak çok zevkli :)

Programda Hikmet Şahin ve Kemal Serkan Dedeoğlu ‘nun birlikte hazırlamış olduğu MikroC ve 18F4550 Kitabından çok faydalandım. Buradan onlara teşekkür etmek istiyorum

C# da usb kullanmadan önce ilk başta UsbLibrary.dll Dosyasını C# kütüphanesine eklemeniz gerekmektedir. Bunu yapmak için Tools/Choose Toolbox Items..‘e Tıklayın aşağı resimdeki gibi bir sayfa açılacaktır.
USB_Term
Bu sayfada Browse seçeneğine tıklayarak UsbLibrary.dll dosyasını gösterin. Ok butonuna basıp çıktıktan sonra Tolbox üzerinde USBHidPort Elemanının eklendiğini göreceksiniz. Bu elemanı Form üzerine sürükleyerek Programımıza dahil edelim.

Gelelim Form Tasarımımıza
Şimdi C# da aşağıdaki gibi bir tasarım yapın.
USB_Term
Tasarımımızı yaptıktan sonra aşağıdaki kodları yazdım.

Yazılım son derece basit. Gerçekten zor bir tarafı yok. Sizde bu şekilde farklı tasarımlar yapabilirsiniz.

PC Programının çalışma anındaki resmi bu şekilde.
USB_Term

Birde ufak bir video çektim. Buradan izleyebilirsiniz.

Yakın zamanda usb ile ilgili birkaç uygulama daha yapacağım. Şimdilik öyle ayak üstü anlatır gibi oldu.

UsbLibrary.dll Dosyasını ve diğer tüm dosyaları Buradan indirebilirsiniz. Umarım faydalı olur.

Sağlıcakla kalın..

Categories: C#, Microchip, Projelerim, Yazılım Tags:
  1. Pazar, 02 Eyl 2012 zamanında 12:12 | #1

    Hocam güzel çalışma olmuş özellikle usb haberleşme olması faydalı olmuş.

    Çalışmalarınızı takip ediyorum kolay gelsin.

  2. Arectron
    Pazar, 02 Eyl 2012 zamanında 20:03 | #2

    @X-Fi
    Teşekkür Ederim Coşkun Bey.

  3. Alfa
    Salı, 04 Eyl 2012 zamanında 01:02 | #3

    Yine Muhteşem bir çalışmayla karşımıza çıktın tebrik ederim…

  4. Alfa
    Salı, 04 Eyl 2012 zamanında 11:15 | #4

    Örnek olması açısından usb ile röle kontrol projesine örnek verirsen daha net anlaşılacagı kanaatindeyim.Güzel çalışma,Başarılarının devamlı olmasını dilerim.

  5. Ali TAN
    Cumartesi, 15 Eyl 2012 zamanında 13:01 | #5

    Burada kullanmış olduğunuz development kiti nereden satın alabilirim. Bir de bu kit sadece 18f4550 yi mi destekliyor yoksa diğer mikrodenetleyiler de kullanılabilir mi. Sedace deneme kartı mı programlayıcı kısmı da üzerinde mi ??

  6. Arectron
    Pazar, 16 Eyl 2012 zamanında 00:11 | #6

    @Ali TAN
    Merhaba

    Deneykitini http://www.expkits.com sitesini ziyaret edip satın alabilirsiniz. Bendeki deney setinin modeli EX8B2.

    Deney kiti 12F,16F ve 18F serisi çoğu mikrodenetleyiciyi desteklemekte.

  7. Onur Akgün
    Salı, 10 Ara 2013 zamanında 09:44 | #7

    Merhaba Hocam,

    Çalışmanızı paylaştığınız için teşekkür ederim. Uygulamayı Proteus’ta denemek için hex dosyasını yükledikten sonra başka ne yapmamız gerekiyor? Bu haliyle sürekli hata veriyor.

  8. yesilelma
    Cumartesi, 15 Şub 2014 zamanında 22:01 | #8

    devreyi fiziksel olarak yapınca ve pc ye bağlayınca pc görmüyor devreyi. aslında görüyor da driver istiyor neden sizce

  9. Ferhat YOL
    Pazar, 16 Şub 2014 zamanında 20:18 | #9

    Cihaz USB-Hid aygıtı olarak görünmeli ve otomatikmen driverini kurmalı. Devreyi birebir uyguladınızmı?

  10. hho
    Salı, 17 Mar 2015 zamanında 04:25 | #10

    Merhaba expkit üzerinde usb yi aktifleştirmek için hangi switch leri enable etmem gerekiyor ?

  11. Ferhat YOL
    Salı, 17 Mar 2015 zamanında 10:38 | #11

    SWDIP19 un 3 numaralı anahtarını ve SWDIP5’in 7 ve 8 nolu anahtarlarını açman gerekir.

  12. ismail
    Perşembe, 02 Nis 2015 zamanında 12:26 | #12

    Hocam merhaba,

    bende buna benzer bir proje yapacağım. Fakat ben pc üzerinden müdahale de etmem gerekecek. Örneğin, akım gerilim gibi bilgileri yazıp pice göndereceğim. Aynı zamanda picden pcye veri göndereceğim. Kullandığım işlemcide USB yok. dspic33FJ256MC710 kullanıyorum diğer özelliklerinden dolayı. Rs485 üzerinden usb ye dönüştürüp haberleşeceğim. Sizden ricam C# programını nerden temin edebilirm. Birde yöntemlerle ilgili fikir verebilir misiniz. Bu arada pc pic mesafem minimum 50mt. iyi çalışmalar dilerim. Çalışmalarınızı ilgiyle takip ettiğimi belirtmek isterim.

  13. Ferhat YOL
    Cuma, 03 Nis 2015 zamanında 11:56 | #13

    ismail bey C# konusunda benimde bilgilerim oldukça zayıf. Ben program yazarken bilgisayar mühendisi arkadaşlarımdan yardım almıştım. Sizde bu yönteme başvurabilirsiniz.

  1. şimdilik geri bağlantı yok