Merhaba sevgili okurlarim bir arkadasimi projesinde kullanmak uzere SHT11 isi ve nem sensorunun kodlarina ihtiyac duymustum cok guzel bir c dosyasina ulastim ve sizinle de paylasmak istedim. Proje bittiginde sitemde yayinlamaktan guru duyacagim cihazin hazir sinifi su sekildedir.

benim sht11.c dosyam

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// Driver file for SHT75 Temperature & Humidity Sensor                       //
//                                                                           //
// ***** To initialise SHT75 sensor upon power up *****                      //
//                                                                           //
// Function : sht_init()                                                     //
// Return   : none                                                           //
//                                                                           //
//                                                                           //
// ***** To measure and caluculate SHT75 temp & real RH *****                //
//                                                                           //
// Function : sht_rd (temp, truehumid)                                       //
// Return   : temperature & true humidity in float values                    //
//                                                                           //
/////////////////////////////////////////////////////////////////////////////// 

#define sht_data_pin   PIN_D7
#define sht_clk_pin    PIN_D6 

//***** Function to alert SHT75 ***** 

void comstart (void)
{
 output_float(sht_data_pin);  //data high
 output_bit(sht_clk_pin, 0);  //clk low
 delay_us(1);
 output_bit(sht_clk_pin, 1);  //clk high
 delay_us(1);
 output_bit(sht_data_pin, 0); //data low
 delay_us(1);
 output_bit(sht_clk_pin, 0);  //clk low
 delay_us(2);
 output_bit(sht_clk_pin, 1);  //clk high
 delay_us(1);
 output_float(sht_data_pin);  //data high
 delay_us(1);
 output_bit(sht_clk_pin, 0);  //clk low
} 

//***** Function to write data to SHT75 ***** 

int1 comwrite (int8 iobyte)
{
 int8 i, mask = 0x80;
 int1 ack; 

 //Shift out command
 delay_us(4);
 for(i=0; i<8; i++)
  {
   output_bit(sht_clk_pin, 0);                          //clk low
   if((iobyte & mask) > 0) output_float(sht_data_pin);  //data high if MSB high
   else output_bit(sht_data_pin, 0);                    //data low if MSB low
   delay_us(1);
   output_bit(sht_clk_pin, 1);                          //clk high
   delay_us(1);
   mask = mask >> 1;                                    //shift to next bit
  } 

 //Shift in ack
 output_bit(sht_clk_pin, 0);  //clk low
 delay_us(1);
 ack = input(sht_data_pin);   //get ack bit
 output_bit(sht_clk_pin, 1);  //clk high
 delay_us(1);
 output_bit(sht_clk_pin, 0);  //clk low
 return(ack);
} 

//***** Function to read data from SHT75 ***** 

int16 comread (void)
{
 int8 i;
 int16 iobyte = 0;
 const int16 mask0 = 0x0000;
 const int16 mask1 = 0x0001; 

 //shift in MSB data
 for(i=0; i<8; i++)
  {
   iobyte = iobyte << 1;
   output_bit(sht_clk_pin, 1);                //clk high
   delay_us(1);
   if (input(sht_data_pin)) iobyte |= mask1;  //shift in data bit
   else iobyte |= mask0;
   output_bit(sht_clk_pin, 0);                //clk low
   delay_us(1);
  } 

 //send ack 0 bit
 output_bit(sht_data_pin, 0); //data low
 delay_us(1);
 output_bit(sht_clk_pin, 1);  //clk high
 delay_us(2);
 output_bit(sht_clk_pin, 0);  //clk low
 delay_us(1);
 output_float(sht_data_pin);  //data high 

 //shift in LSB data
 for(i=0; i<8; i++)
  {
   iobyte = iobyte << 1;
   output_bit(sht_clk_pin, 1);                //clk high
   delay_us(1);
   if (input(sht_data_pin)) iobyte |= mask1;  //shift in data bit
   else iobyte |= mask0;
   output_bit(sht_clk_pin, 0);                //clk low
   delay_us(1);
  } 

 //send ack 1 bit
 output_float(sht_data_pin);  //data high
 delay_us(1);
 output_bit(sht_clk_pin, 1);  //clk high
 delay_us(2);
 output_bit(sht_clk_pin, 0);  //clk low 

 return(iobyte);
} 

//***** Function to wait for SHT75 reading ***** 

void comwait (void)
{
 int16 sht_delay; 

 output_float(sht_data_pin);                     //data high
 output_bit(sht_clk_pin, 0);                     //clk low
 delay_us(1);
 for(sht_delay=0; sht_delay<30000; sht_delay++)  // wait for max 300ms
  {
   if (!input(sht_data_pin)) break;              //if sht_data_pin low, SHT75 ready
   delay_us(10);
  }
} 

//***** Function to reset SHT75 communication ***** 

void comreset (void)
{
 int8 i; 

 output_float(sht_data_pin);    //data high
 output_bit(sht_clk_pin, 0);    //clk low
 delay_us(2);
 for(i=0; i<9; i++)
  {
   output_bit(sht_clk_pin, 1);  //toggle clk 9 times
   delay_us(2);
   output_bit(sht_clk_pin, 0);
   delay_us(2);
 }
 comstart();
} 

//***** Function to soft reset SHT75 ***** 

void sht_soft_reset (void)
{
 comreset();           //SHT75 communication reset
 comwrite(0x1e);       //send SHT75 reset command
 delay_ms(15);         //pause 15 ms
} 

//***** Function to measure SHT75 temperature ***** 

int16 measuretemp (void)
{
 int1 ack;
 int16 iobyte; 

 comstart();             //alert SHT75
 ack = comwrite(0x03);   //send measure temp command and read ack status
 if(ack == 1) return;
 comwait();              //wait for SHT75 measurement to complete
 iobyte = comread();     //read SHT75 temp data
 return(iobyte);
} 

//***** Function to measure SHT75 RH ***** 

int16 measurehumid (void)
{
 int1 ack;
 int16 iobyte; 

 comstart();            //alert SHT75
 ack = comwrite(0x05);  //send measure RH command and read ack status
 if(ack == 1) return;
 comwait();             //wait for SHT75 measurement to complete
 iobyte = comread();    //read SHT75 temp data
 return(iobyte);
} 

//***** Function to calculate SHT75 temp & RH ***** 

void calculate_data (int16 temp, int16 humid, float & tc, float & rhlin, float & rhtrue)
{
 float truehumid1, rh; 

 //calculate temperature reading
 tc = ((float) temp * 0.01) - 40.0; 

 //calculate Real RH reading
 rh = (float) humid; 

 rhlin = (rh * 0.0405) - (rh * rh * 0.0000028) - 4.0; 

 //calculate True RH reading
 rhtrue = ((tc - 25.0) * (0.01 + (0.00008 * rh))) + rhlin;
} 

//***** Function to measure & calculate SHT75 temp & RH ***** 

void sht_rd (float & temp, float & truehumid)
{
 int16 restemp, reshumid;
 float realhumid;
 restemp = 0; truehumid = 0; 

 restemp = measuretemp();    //measure temp
 reshumid = measurehumid();  //measure RH
calculate_data (restemp, reshumid, temp, realhumid, truehumid);  //calculate temp & RH
} 

//***** Function to initialise SHT75 on power-up ***** 

void sht_init (void)
{
 comreset();    //reset SHT75
 delay_ms(20);  //delay for power-up
}

SHT75.C olarak internette geciyor; orjinal olarak SHT75 icin yazilmis olsada SHT11, SHT71 ve SHT15 ilede sorunsuz calisiyor.

PIC16F877 icin ornek kodu asagidaki sekildedir:

#include <16F877A.h>
#fuses HS,NOWDT,PUT,NOPROTECT,NOLVP
#use delay(clock=20000000) 

#include<lcd.c>
#include<sht75.c> 

void main()
{
 float restemp, truehumid;
 lcd_init();
 sht_init(); 

 while(1)
 {
  sht_rd (restemp, truehumid);
  lcd_gotoxy(1,1);
  printf(lcd_putc, "Temp : %3.1f %cC   ", restemp, 223);
  printf(lcd_putc, "\nRH   : %3.1f %%   ", truehumid);
  delay_ms(500);        //delay 500 ms between reading to prevent self heating of sensor
 }
}

bu kodlarin orjinal hali CCS PIC C  forumlarinda mevcuttur. benim kullanmakta oldum expkits urunu olan EX8B2 pic gelistirme bordunda bu kodlari kullanacak olursaniz degistirmeniz gereken bazi bolumler mevcut.

ilk degistirmeniz gereken bolum SHT75.c dosyasinda bulunan

#define sht_data_pin   PIN_D7
#define sht_clk_pin    PIN_D6

bolumunu kendi data pinimiz ve clock sinyali pinimiz olan C4; C3 ile degistirmeliyiz.

#define sht_data_pin   PIN_C4
#define sht_clk_pin    PIN_C3

bundan sonraki adimda ise expkitsin LCD data gondermede kullandigi exLCD.c dosyasi ile normal ccs pic cnin LCD.C dosyasi farklidir.
(Bunun expkits bordunun LCD cikisi default portta kullanilmiyim portB ile calismasi icin modifiye edilmis olmasidir)

yani uzun lafin kisasi

#include<lcd.c>

satirini

#include<exlcd.c>

olarak degistirdiginizde yazilimsal olarak expkits’de kullanima hazirsiniz.

DIKKAT : Kullanim esnasinda sorun yasamamaniz icin asagidaki maddelere dikkat ediniz.

  1. SHT sensorunuz bordun uzerine dogru polarize edilecek sekilde takilmalidir.
    (normalde algiliyici yukari bakacak sekilde; ama GND ve VCC nin yerini kontrol etmeniz daha dogru olur)
  2. SWDIP7 deki SDA ve SCK nin ON konumunda olduguna dikkat ediniz.
  3. Expkits bordunuzun C4 ve C3 PINlerinin PULL DOWN olarak tanimlarsaniz (Normalde 1 basinca 0 olacak sekilde) sorunsuz olcum yaparsiniz.
    (Bu adimi atlarsaniz ISI -40, -39 gibi bir sey gosteriyor olacaktir.)

Merhaba Sevgili okurlarim;
Bu PIC gelistirme kartini aldim ve cok memnunum biraz reklamini yapayim dedim dogrusu 🙂
Sayfanin asagisinda orjinal sitesindeki tanitimi mevcut. Kartin guzel yanlarindan birisi PIC’i hic cikartmadan usb’den programliyip yazdigim programi test edip yine cihaz uzerinde iken LCD’ye data alarak debug yapip dogru sonuclar elde edip etmedigimi gorebilmekteyim. Bu benim icin kafadan PIC maliyetinden kazanc demek cunku surekli tak cikart yaparken PIC’i harap etmekte idim.
Firmanin Urun yelpazesi bu urun ile sinirli degil tabiki; ileri seviye mcu’ler ile ilgili cihazlari ve kitleri de mevcut. Magazalarini gezmenizi oneririm. bu konuda ilgili iseniz arm serisinden cihazlari incelemeniz gerekli oldugunu dusunuyorum.
ilk urunumu ben gittigidiyordaki magazalarindan almistim; kredikarti ile aldigim urunden memnun kaldigim ve arkadaslarimda talep etmekte oldugundan direk info@expkits.com dan urun talebimi gecip havale cikartarak urunlerin tedarigini sagladim. PicProje.com web sitesinde bu urunu kullanna kisilerin de yorumlarini incelerseniz memnun olmayan yok. Bir sonraki yazimdada kartin uzerinde yaptigim testleri sizinile paylasiyor olacagim.
Simdilik benim bozuk turkcem ile sizi daha fazla rahatsiz etmeden kart ile basbasa birakmak isterim, Buyrun :

EX8B2 platformu alanında dünyadaki en gelişmiş karttır. Lütfen sayfanın en altındaki karşılaştırma tablolarını inceleyiniz.

EX8B2 Microchip 10Fxxx, 12Fxxx, 16Fxxx ve 18Fxxx ailesinden 40, 28,  20, 18, 14 ve 8 pinli PIC mikro kontrolörlerini desteklemektedir. Kartın tasarımı, bu mcuların tüm özelliklerini rahatça kullanabilmeniz amacıyla, ihtiyacınız olan tüm devre parçaları bir araya getirilerek yapılmıştır. Picleri kolayca öğrenebileceğiniz kaliteli, taşınabilir, düşük güç ihtiyacı olan, usb 2.0 programlayıcısı olan ve sadece 1 usb kablosu ile tamamen çalıştırılabilen geliştirme kartıdır.

Kartta bulunan donanımlar sayesinde harici devre ihtiyacınızı en az seviyeye indirir. Kartın üzerinde Expkits tarafından geliştirilmiş USB2.0 programlayıcı ile çok hızlı ve güvenli bir şekilde 40, 28,  20, 18, 14 ve 8 pinli mcuları programlayabilirsiniz. ICSP modunda programlayıcı olarak, değişik pin sayısına sahip harici devrelerdeki picleri programlayabilirsiniz.

Laptoplarınızdaki USB portunu kullanarak her yerde yazılım geliştirebilirsiniz. Laptop çantanızın  boş olan bir gözüne  rahatlıkla  koyabilirsiniz. Geliştirme kartını bilgisayarınızın usb portunda kullandığınızda, harici besleme ihtiyacı duymazsınız. Harici besleme ile de kullanılabilirsiniz.

Mühendisler ve öğrencilerin kolayca denemeler yaparak, yeteneklerini hızla geliştirebilecekleri bir şekilde tasarlanmıştır. İşlerin zamanında tamamlanmasında en önemli  yardımcınız olacaktır.

Öğretmenler ve elektronik eğiticileri, öğrencilerinize gerçek uygulamalar yaptırırak bilgilerin öğrenciye daha iyi aktarılmasına  ve başarının yükselmesinde en iyi yardımcınız olacaktır.

Amatör olarak elektronik ile uğraşanlar, kendi kendinize elektroniği öğrenmenize ve özellikle mikro kontrolörlü uygulamaları hızla kavramanızı program yazma kaabiliyetlerinizin hızla gelişmesini sağlayacaktır.

Satın alabileceğiniz en çok donanımı olan geliştirme kartıdır.

1. Sınıf kalitede PCB kullanılmıştır. Pasifler smd olarak otomatik dizilmiştir.

EXPROG Programlayıcısı

      Geliştirme kartında onboard USB2.0 pic programlayıcı bulunmaktadır.Bu sayede kit ile birlikte birde programlayıcı temini gerektirmez.
Exprogun geniş desteği sayesinde hızlı bir şekilde programlarınızı pice kolayca yazabileceksiniz.Programlama sırasında picleri soketlerinden çıkarmazsınız. Programlama bitiminde exprog hedef entegreyi resetleyerek yazdığınız programın otomatik olarak çalışmasını sağlar.

   MCU SOKETLERİ


      40 Pin ve 28 pin zif soketler ile 20, 18, 14 ve 8 pinli çift tırnaklı entegre soketi olmak üzere 6 adet entegre soketi bulunmaktadır.

40 Pin ve 28 pin zif soket sayesinde 40 ve 28 pin mcuları çok kolay bir şekilde söküp takabilme imkânı bulunmaktadır. 2 Zif sokete sahip tek geliştirme kartıdır.

Bu 6 sokette pinler birbirlerine paralel  bağlanmışlardır

 

ETHERNET

              Kart üzerinde ENC28J60 standalone 10Mbit ethernet devresi hazır olarak bulunmaktadır. ENC28J60 standalone ethernet kontrolörüne SPI üzerinden haberleşmektedir.
MAC & PHY Yes
TX/RX RAM Buffer(bytes) 8192
Interrupt Pin  1
LEDs  2
Op. Voltage  3.3V
Temp. Range Min. -40 +85 (°C)
Max. Speed 25 (MHz)
Interface SPI
Pre-Programmed MAC Addres No
Standalone Ethernet Controller 10Base-T

MicroSD

Günümüzde çok yaygınlaşmış olan micro sd hafıza birimleri ile çalışabilme imkanı vardır. SPI port üzerinden erişilmektedir.


4×4 Keypad

16 butondan oluşan matrix yapıda menü keypad bulunmaktadır. Sayı ve harflerden oluşan keypad uygulamaları bu kısım üzerinde kolayca gerçekleştirebilir.

Joystick ve Menü Keypad

Menü keypad için 6 adet buton bulunmaktadır. 4 Adet yön için 2  adette enter ve esc fonksiyonları için kullanılır. Ayrıca orta kısımda joystick bulunmaktadır.

USB BeslemeLaptoplarda usb besleme üzerinden sorunsuz çalışma ve düşük güç ihtiyacı. Güç KaynağıHarici adaptör takılabilecek güç kaynağı devresi adaptör soketi.
Besleme SeçimiKit beslemesi USB port ve Harici adaptör kaynağından beslenebilir. Bu kaynaklardan herhangi birini seçebilmek için yandaki anahtar kullanılır. USB Haberleşme USB haberleşme yapabilen picler için usb haberleşme devresi ve port soketi.
2×16 LCD2×16 LCD display takılabilecek soket.Backlight  açma kapama için jumper bulunmaktadır. LCD Kontrast Potu

   2×16 Lcd nin kontrast ayarının yapılabileceği bir adet pot.

128×64 GLCD

   Grafik LCD ileri seviyede display uygulamalar yapabilmenizi sağlar. 128×64 pixel çözünülürlükteki displaye çeşitli fontlarda yazı ve grafik gösterimleri yapabilirsiniz.
240×128 GLCD

   Grafik LCD ileri seviyede display uygulamalar yapabilmenizi sağlar. 240×128 pixel çözünülürlükteki displaye çeşitli fontlarda yazı ve grafik gösterimleri yapabilirsiniz.

GLCD Touch Sürücüsü

Dokunmatik filme sahip grafik LCD ler için sürücü devresi ver soketi.

 
GLCD Kontrast Potu

GLCD için gereken kontrast ayarının yapılabileceği bir adet pot.

RS232 Haberleşme

Kitte 2 adet  RS232 haberleşme  portu bulunmaktadır. MAX3232 entegresi üzerinden MCU boarda bağlanılmaktadır.

RS485 Haberleşme

Kitte bulunan RS485 haberleşme devresi ile kitinizi bir baska RS485 kullanan cihaz ile haberleştirebilirsiniz..

PS2 Haberleşme  Klavyelerle heberleşme yapmak için PS2 soketi bulunmaktadır. Böylece klavyeler giriş aygıtı olarak kullanılabilir.

IRDA Haberleşme

   Infrared dalga boyunu kullanan aletlerle haberleşme yapabilmek için bir adet IRDA alıcı soketi.

RF Haberleşme433 Mhz RF alıcıların takılabileceği 1 adet precision soket. ARX34 uyumludur.

RF Haberleşme

  433 Mhz RF vericilerin takılabileceği 1 adet precision soket. ATX34 uyumludur.

LedlerMCU boardundan gelen 32 pin için 32 adet smd led bulunmaktadır. Yazılımda ihtiyaç olabilecek tüm pin çıkışlarının görsel olarak izlenebilmesini sağlar. Led SeçimiLedlerin port kontrol anahtarları. Ledleri port port aktif yada pasif yapılabilir.
ButonlarMCU boardlardan gelen 32 pin için 32 adet buton bulunmaktadır. Her pin için logic 0 veya 1 seviyesinde giriş işareti üretebilmeyi sağlar. Buton Durum Jumperı
Geliştirme kartı üzerindeki butonlara basıldığında logic 0 yada 1 seviyesinden hangisinin etkili olacağını belirleyen jumper.
7 SegmentKitte 4 adet 7 Segment display bulunmaktadır. Tek veya istediğiniz kadarını aynı anda kullanılabilir. Genişleme PortlarıMCU boardlardan gelebilecek 8 port 64 pin için 8 adet 5×2 erkek headerdan oluşan çıkışlar bulunmaktadır. Bu sayede harici devrelere bağlanabilme imkanı elde edilir.
Port Up/Down Seçimi8 adet Port U/D 3 lü jumper seçim headerı bulunmaktadır. Pin Pull Up/Down SeçimiMCU boardlardan gelebilecek 8 port 64 pin için ayrı ayrı pull up/down tanımlanabilir. 8 li dip switchlerden  8 adet bulunmaktadır.
Analog PotlarAnalog voltaj ölçme deneylerinin yapılabilmesi için 2 adet 22kohm pot kitte hazır bulunmaktadır.
 
Servo Motor Soketi

Servo motor sürme tekniğinin öğrenilebilmesi için 1 adet servo motor bağlantı soketi bulunmaktadır.

RöleHarici bir devre kontolünde kullanmak üzere 2 adet 220V 3A röle çıkış devresi. Rölelerin durumunu göstermek üzere 2 adet ledde bulunmaktadır. Opto
Dijital girişlerde kullanılmak üzere 2 adet optocoupler devresi. Girişlerin yalıtılmış olarak piclere ulaşmasını sağlar.
DS18B20Kitte bulunan DS1820 dijital termometre ile  -55 to 125 C aralığında sıcaklık ölçümü yapabilirsiniz. EepromI2C iletişim hattı ile MCU ya bağlı 1 adet harici hafıza entegresi kitte bulunmaktadır.
LDR
Işık şiddetine göre değeri değişen bir tür dirençtir. Üzerindeki voltaj ve dolayısı ile direnç değeri hesaplanarak gece gündüz ayrımı yapılabilir.
Buzzer1 Adet sesli uyarı verebilmek için buzzer bulunmaktadır.
SHT7XXSHT sensörleri ile havdaki nem ve sıcaklığı ölçebilirsiniz. RESETKartta çalışan programın reset edilebilmesi amacıyla bir adet reset devresi bulunmaktadır.
KristallerGeliştirme kartında 6 adet  soket için ayrı ayrı precision headerdan 3 adet kristal headerı bulunmaktadır. PCBKitin üretimi sırasında 1. Sınıf kalitede PCB ve smd malzeme kullanılmıştır.
Kutu İçeriği

        Kutu içerisinde aşağıdakiler bulunmaktadır.

1 adet EX8B geliştirme kartı
1 adet Program CDsi
1 adet USB kablosu
1 adet 20 Mhz kristal
1 adet 4 Mhz kristal

– CD içerisinde ürünün türkçe kullanım kılavuzu, exprog yazılımı, demo program hexleri, örnek  programlar, pic programlama dilleri anlatım kitapları, çeşitli dillerdeki pic programlama yazılımları (deneme sürümleri) , net frame work 2.0 yazılımı bulunmaktadır.

– 2×16 LCD, GLCD, DS1820, SHT7 ve Servo Motor geliştirme kartı ile beraber verilmemektedir. Ayrı olarakmağazadan  temin edilmelidir. Diğer özelliklere ait tüm özellikler kart üzerinde bulunmaktadır. Bu malzemeleri ayrı olarak satış sayfasındaki bilgilerden bakarak temin edebilirsiniz.

– Kit altına takılan pleksiglas koruyucu geliştirme kartı ile beraber verilmemektedir. Ayrı olarak mağazadan temin edilmelidir.

 

Kit Karşılaştırmaları

Özellik

EX8B2

EASYPIC7

EASYPIC6

EX8L

DEKAV2

TEKOPIC2

DELAB

  USB 2.0 Programlayıcı Evet Evet Evet Evet Seri Evet Seri
  MCU Soketleri 6 8 8 3 4 4 5
  ZIF Soket 40-28 X X 40 X X 40
  Ethernet Evet X X X X X X
  4×4 Keypad Evet X Evet Evet X X X
  Menü Keypad Evet X Evet Evet X X X
  Mini Joystick Evet X X X X X X
  SD – MicroSD Evet X X X X X X
  IO Expander X X Evet X X X X
  2X16 LCD Evet Evet Evet Evet 8*2 Evet Evet
  128×64 GLCD Evet Evet Evet X X X X
  240×128 GLCD Evet X X X X X X
  2×16 COG X X Evet X X X X
  Touch Sürücüsü Evet Evet Evet X X X X
  2×16 LCD Kontrast Potu Evet Evet Evet Evet Evet X X
  GLCD Kontrast Potu Evet Evet Evet X X X X
  7-Segment 4 4 X 4 4 4 4
  USB Haberleşme Evet Evet Evet X X X X
  UART USB Konverter (FT232) X Evet X X X X X
  RS232 Haberleşme Evet Evet Evet Evet Evet Evet Evet
  RS485 Haberleşme Evet X X Evet X X X
  PS2 Haberleşme Evet X Evet X X X X
  DS1820 sıcaklık ölçümü Evet Evet Evet Evet NTC X Evet
  SHT ısı nem ölçümü Evet X X X X X X
  LM35 ısı nem ölçümü X Evet X X X Evet S
  Analog Giriş Potu 2 2 1 2 3 2 2
  Buzzer Evet Evet X Evet Evet Evet X
  Röle Çıkış Evet (2) X X X X X X
  Opto Giriş Evet (2) X X X X X X
  Servo Motor Soketi Evet X X X X X X
  IRDA Soketi Evet X X X X X X
  433MHz RF TX Evet X X X X X X
  433MHz RF RX Evet X X X X X X
  Fotosel (LDR) Evet X X X Evet X X
  Eeprom Evet Evet X Evet Evet X X
  Usb Besleme Evet Evet Evet Evet X Evet X
  Harici Güç Kaynağı Evet Evet Evet Evet Evet Evet Evet
  Güç Kaynağı Seçimi Evet Evet Evet Evet X Evet X
  Harici Pin Çıkış Portları Evet Evet Evet Evet X Evet Evet
  Pin Ledleri 32 36 36 32 8 8 32
Bu karşılaştırma tablosu bilgi vermek amaçlı hazırlanmıştır. Özellikler ilgili ürünlerin internet sayfalarından alınmıştır. Eksik yada hatalar var ise farkedildiğinde düzeltilecektir. Doğru olmadığını düşündüğünüz kısımları lütfen bildiriniz

Merhaba Sevgili Okurlarim;

PIC nedir az once biraz copy-paste ile bir seyler paylastim 🙂 ama asil kendi belirtmek istedigim bir seyler ki PIC programi yazma ve PIC’i programlama zamaninda neler kullanildigini inceliyordum. ben hep “ebem dedem usulu” seklinde bread board uzerine kur devreyi programla basit usb devresi ile sonra kullanda kullan. Ama gunumuzde bu sekilde kullanilmiyor. Deneme araclar (test kit) cok yogun olarak kullanilmakta hatta devreler artik direk onlar uzerinde duzenlenip ona gore pic’in sistemi dizayn edilmekte. Tabi kullanacaginiz deneme ortami ve cihaziniz kalitesi kararligi islevseligi ile gelistirme ortaminizin rahatligi hizi dogru orantida yukselmektedir. bu islemlerin incelendigi zaman

Bu yazimda 3 farkli deneme kartini sizin onunuze sunacagim. maddi imkansizliklardan dolayi [:)] hepsini elime alip test edemeyecegim bu yuzden bu iyidir bu kotudur diye bir sey soylemiyorum. Karar sizden olsun.

ilk basta dELAb’in PIC Gelistirme Karti V3
http://www.delab.net/PIC-Gelistirme-Karti-3,PR-8.html

ikinci gostermek istedigim kart EX8B2 ise
http://www.expkits.com/?s=ex8b2.htm

ucuncu gosterecegim gelistirme – deneme karti ise yabanci bir ureticinin (EasyPIC)
http://www.mikroe.com/eng/products/view/757/easypic-v7-development-system/
Turkiyeden Teymin icin : http://www.elektrovadi.com/EASY-PIC7-FULL,PR-1093.html

incelemenizi oneririm hepsini. Hepsi iyidir; ben kendim dELAb’n artik bir urununu kullanmak istemiyorum. cunku ogrencilik zamanimda cok basimi agritmisti onlarin urunleri. EasyPIC guzel ama fiyati yuksek. Kendim kullanmak icin EX8B2 alacagim. Bundan sonraki paylasacagim Mikrodenetliyici hakkindaki yazilardada bu kartin uzerinde gosterecegim.

Merhaba Sevgili okurlarim;

Hobi olarak programladigim mcu (micro control unit: turkcesi daha hos bence “mikro denetliyici”) hakkinda biraz bilgi paylasmak istedim.

Kullanimi en kolay ve ekonomik olan mcu’muz PIC adi ile anilan MicroChip firmasinin urunudur. Biraz copy paste ile dokuman paylasayim once.

PIC’in açılımı Peripheral Interface Controller olup; Microchip firması tarafından logic uygulamalarının hızlı, ucuz ve bir programa bağlı çalıştırılabilmesini sağlamak amacıyla geliştirilip üretilmektedir.

İlk zamanlar bir kez yazılabilir (C serisi) olarak üretilen PIC’ler artık F(lash) belleğe sahip olduklarından birden fazla defa yazılıp silinebilmektedirler. ( Editörün Notu: Yaklaşık 10.000 kere.Fakat hiç bir pici fiziksel olarak bu kadar çok programlayamazsınız.Çünkü programlayıcıya tak çıkar muhakkak meftaa olur. :) ) PIC’in model numarasındaki C ve F’nin de ne anlama geldiğini öğrendik.

Geliştirmede F serisi kullanmak gereklidir, çünkü çok defa program yazılabilir. Programınızı kesinleştirdikten ve uzun uzadıya tüm testlerini yaptıktan sonra üretime geçeceğinizde (!) C serisi PIC’lerden kullanıp maliyetten tasarruf edebilirsiniz. Fakat hatırlatmam gerekir ki C serisi PIC’leri tekrar programlayamazsınız, sonsuza kadar ilk yazdığınız programla kalırlar.

PIC ailesi oldukça geniştir, o kadar büyüktür ki kendinizi kaybedebilirsiniz. Ancak yapılacak uygulamaya göre kullanılacak malzemeyi seçtiğiniz gibi, PIC’i de yapılacak uygulamaya göre seçmelisiniz. LED yakıp söndürmek için 40 kusür I/O ( input / output ) ( giriş çıkış demektir ) pini olan USB destekli 48MHz’de çalışabilen bir PIC seçmeniz, israf olacaktır. Buna el memleketinde “overkill” derler. Yani kısaca yapacağınız işe göre malzeme seçin. 40$’a bile PIC var! Lazım olanını alın, başınız ağrımasın. Bu geniş aile içerisinden seçim yapmak içinhttp://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=74 adresini kullanabilirsiniz.

Ben -büyük olasılıkla bu yazı dizisinin sonuna kadar- PIC16F684A kullanacağım. Sebebini sorarsanız, elimde o var ve en azından şu ana kadar tüm uygulamalarıma yetti. Ne zaman ki yetmemeye başladı, o zaman “yetenini” almayı düşünürüm. Peki nasıl birşey bu PIC16F648A?

Bir PIC’i çalıştırmak için ne gerekir?

İçinde dahili osilatörü bulunan bir PIC’e sadece +5V yeterlidir! …ama bu PIC’lerin önce programlanması lazım.

PIC’leri satın aldığınızda boşturlar, yani bir işe yaramazlar. Onu programlayarak hayat vermeniz gereklidir. Bu ayrı bir konu.

Niye PIC, ben Atmel kullanmak istiyorum?

Buyurun kullanın sonuçları buraya da yazın. Türkiye şartlarında bulması en rahat mikrokontrolcü PIC serisi olduğundan bunu kullanıyoruz, Türkiyeden pek Atmel işi çıkmaz. Ayrıca Atmelleri programlamak PIC kadar kolay değildir.. Elinizde bilgisayar, havya ve lehim varsa, “başka hiçbirşey yoksa”, sadece 25 yKr maliyetle PIC programlayabilirsiniz. Atmelde böyle değil malesef.

Mikrokontrolcülerle ne yapılır?

En önemlisi, LED yakıp söndürebilirsiniz, böyle bir teknoloji yok biliyorsunuz başka yerde. :D

Bu her zaman PIC’e başlayanların ilk projesidir, ben istisnayım. Ben direk olarak ADC, LCD, seri port vs. gibi yerlerinden daldım, zor oldu ama hallettim. Tavsiye edilmez, saç baş yoldurtabilir.

Şakayı bir yana bırakırsak, mikrokontrolcülerle “bir programa bağlı olarak kontrol etmek istediğiniz her şeyi” yapabilirsiniz. Bunlara otomasyon ve kontrol dahildir. “Şu olunca şunu yap” cümlesini mikrokontrolcüler haricinde bir şeye yaptıramazsınız.