Picproje Elektronik Sitesi

DERLEYİCİLER => PIC C => Konuyu başlatan: yavuz - 24 Haziran 2011, 10:34:42

Başlık: çift Kontaklı Termometre Yaptım yazılımı yazımın içindedir.
Gönderen: yavuz - 24 Haziran 2011, 10:34:42
12F877A ve lm35 ısı sensörlü BreadBoard da çift kontaklı termometre yaptım çalıştırdım sizlerle paylaşmak istiyorum.
kullandığım yazılımın txt görünümü aşağıdadır. İlgilenenlere sunulur:

#include "16F877A.H"
#device ADC=10  // 10 bitlik ADC kullanılacağı belirtiliyor.

// Denetleyici konfigürasyon ayarları
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#use fast_io(a) //Port yönlendirme komutları A portu için geçerli

#DEFINE use_portb_lcd TRUE   // LCD B portuna bağlı

#INCLUDE <lcd.c>   // lcd.c dosyası tanıtılıyor

unsigned long int bilgi; // İşaretsiz 16 bitlik tam sayı tipinde değişken tanımlanıyor
float voltaj,sicaklik;   // ondalıklı tipte değişkenler tanıtılıyor

//********** ANA PROGRAM FONKSİYONU*******
//unsigned char sonuc[]="SICAKLIK="; //ORJİNAL
void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   set_tris_a(0x01);  // RA5 Giriş olarak yönlendiriliyor

   setup_adc(adc_clock_div_32);   // ADC clock frekansı fosc/32
   setup_adc_ports(AN0); //RA0/AN0 girişi analog

   lcd_init();   // LCD hazır hale getiriliyor
   
   set_adc_channel(0); // RA0 / AN0 ucundaki sinyal A / D işlemine tabi tutulacak
   delay_us ( 20 );  // Kanal seçiminde sonra bu bekleme süresi verilmelidir
   
  While(1)   // sonsuz döngü
   {
      bilgi=read_adc();  // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor

      voltaj=(0.0048828125*bilgi)*1000;   // Dijitale çevirme işlemine uğrayan sinyalin mV olarak gerilimi hesaplanıyor
      sicaklik=(voltaj/10)-0.96;    // Her 10mV'ta 1 derece artma
     
      bas:
     
      delay_ms(1500); // 2000 msn gecikme //ORJİNAL
       
   {
 
int i; //ORJİNAL

//char karakter1[8]={0x00,0x00,0x0e,0x10,0x10,0x11,0x0e,0x04};  //ç
//char karakter2[8]={0x00,0x00,0x0e,0x10,0x0e,0x01,0x1e,0x04};  //ş
//char karakter3[8]={0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x00};  //ı
char karakter4[8]={0x0f,0x10,0x10,0x0e,0x01,0x01,0x1e,0x04};  //Ş //ORJİNAL
char karakter5[8]={0x04,0x0e,0x04,0x04,0x04,0x04,0x0e,0x00};  //İ// ORJİNAL
//char karakter6[8]={0x0e,0x00,0x0f,0x11,0x11,0x0f,0x01,0x0f};  //ğ
char karakter6[8]={0x0e,0x00,0x0f,0x10,0x13,0x11,0x0f,0x00};  //Ğ
//char karakter7[8]={0x04,0x0e,0x1f,0x00,0x06,0x04,0x0c,0x0c};  // zil sekli//çalışıyor
char karakter7[8]={0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00}; // Derece //Çalışıyor
//char karakter8[8]={0x0a,0x00,0x0e,0x11,0x11,0x11,0x11,0x0e};  //Ö

{

lcd_init(); //ORJİNAL

//lcd_send_byte(0,0x40); //ilk karakter hafızasının adresi /çalışıyor
// for (i=0;i<=8;++i)
//{
//lcd_putc(karakter1[i]);
//}


//lcd_send_byte(0,0x48); //2. karakter hafızasının adresi /çalışıyor
//for (i=0;i<=8;++i) 
//{
//lcd_putc(karakter2[i]);
//}
  //lcd_send_byte(0,0x64);//cgram'de 3.karakteri göndereceğimiz yolu açıyoruz
//lcd_send_byte(0,0x50); //3. karakter hafızasının adresi /çalışıyor
//for (i=0;i<=8;++i) 
//{
//lcd_putc(karakter3[i]);
//}
  lcd_send_byte(0,0x60); //4. karakter hafızasının adresi //ORJİNAL
    for (i=0;i<=8;++i) //ORJİNAL
  {
  lcd_putc(karakter4[i]); //ORJİNAL
  }
    lcd_send_byte(0,0x68); //5. karakter hafızasının adresi
    for (i=0;i<=8;++i)
{
  lcd_putc(karakter5[i]);
  }

  lcd_send_byte(0,0x70); //6. karakter hafızasının adresi /çalışıyor
    for (i=0;i<=8;++i) //çalışıyor
  {
  lcd_putc(karakter6[i]); //çalışıyor
  }

lcd_send_byte(0,0x78); //7. karakter hafızasının adresi /çalışıyor
//lcd_send_byte(0,0x60); //7. karakter hafızasının adresi /çalışıyor
for (i=0;i<=8;++i)
{
lcd_putc(karakter7[i]);
}

//lcd_send_byte(0,0x70); //8. karakter hafızasının adresi /çalışıyor
//for (i=0;i<=8;++i) //çalışıyor
//{
//lcd_putc(karakter8[i]); //çalışıyor
//}

//{

   // for(;;) //ORJİNAL
 
   delay_ms(6);
   lcd_gotoxy(1,1);
   //lcd_putc(0);
   //lcd_putc(1);
   //lcd_putc(2);
   //lcd_putc(3);
   lcd_putc(4);
   lcd_putc(5);
   lcd_putc(6);
   lcd_putc(7);
   printf(lcd_putc,"\fTEDA%c B%cM S%cSTEM",4,5,5);
   lcd_gotoxy(1,2);
   printf(lcd_putc,"SUNUCU ODASI");
   


  lcd_gotoxy(8,2);
   delay_ms(150);
   
   //lcd_putc(sonuc);

   delay_ms(550);
 
   //for(;;){}       

 
   IF(sicaklik>30)
{
lcd_init();
delay_ms(6);
lcd_gotoxy(1,1); // Ekranın 1. satırının 1. sütununa gider.
printf(lcd_putc,"\fTEDA%c B%cM S%cSTEM",4,5,5); //Ekrana yazar.
delay_ms(6);
lcd_gotoxy(1,2);//ORJ
printf(lcd_putc,"SICAKLI%cI=",6);
printf(lcd_putc,"\%3.1f%cC",sicaklik,7);
output_high(pin_c0);
delay_ms(100);
} // ölçümü Tekrarla

Else
{
output_low(pin_c0);
delay_ms(6); //ORJ
lcd_gotoxy(1,2); //ORJ
printf(lcd_putc,"SICAKLI%cI=",6);
printf(lcd_putc,"\%3.1f%cC",sicaklik,7);
output_low(pin_c0);
delay_ms(60); //ORJ
} // ölçümü Tekrarla

IF(sicaklik>35)
{
lcd_init();
delay_ms(6);
lcd_gotoxy(1,1); // Ekranın 1. satırının 1. sütununa gider.
printf(lcd_putc,"\fTETA%c B%cM S%cSTEM",4,5,5); //Ekrana  yazar.
delay_ms(6);
lcd_gotoxy(1,2);
printf(lcd_putc,"SICAKLI%cI=",6);
printf(lcd_putc,"\%3.1f%cC",sicaklik,7);
output_high(pin_c1);
delay_ms(100);
} // Ölçümü Tekrarla

Else
{
output_low(pin_c1);
delay_ms(6); //ORJ
lcd_gotoxy(1,2); //ORJ
printf(lcd_putc,"SICAKLI%cI=",6);
printf(lcd_putc,"\%3.1f%cC",sicaklik,7);
output_low(pin_c1);
delay_ms(60); //ORJ
       } // ölçümü Tekrarla
  }} }}



Kusura bakmayın 12f877a değil doğrusu 16f877a olacaktı.

Bu da şeması
http://postimg.cc/image/luk5gc9w

(http://s4.postimg.cc/luk5gc9w/ema.jpg) (http://postimg.cc/image/luk5gc9w/)
şema bu sitededir.

Bu da çalışan uygulamanın video görüntüsü hayırlı olsun.
http://hotfile.com/links/132646914/f144e9e/PICileKontakl_Termometre_Tantm.mp4

30 santigrat derecede yeşil LED yanıyor.
35 santigrat derecede ise kırmızı LED yanıyor.

http://www.youtube.com/watch?v=hw1VPTFv-HU
Bu da başka bir link





   
Başlık: Ynt: çift Kontaklı Termometre Yaptım yazılımı yazımın içindedir.
Gönderen: OG - 18 Ekim 2011, 16:58:38
Yavuz, ardı ardına 5 yazmak yerine tek mesaja hepsi sığdı bak. Chat odası değiliz.
Başlık: çift Kontaklı Termometre Yaptım yazılımı yazımın içindedir.
Gönderen: yavuz - 19 Ekim 2011, 14:19:51
Teşekkürler hocam sağolun istemeden zahmet verdim.
Tüm bu işlemleri tek bir süreçte planlama zamanım olmadı.
Sitenizi chat odası olarak hiç algılamadım.
Hakkını, emeğini helal edersen sevinirim.
Saygılarımla.
Başlık: Ynt: çift Kontaklı Termometre Yaptım yazılımı yazımın içindedir.
Gönderen: t2 - 19 Ekim 2011, 15:14:48
gevv hocamın dikkatine,
Kod içeren sayfaları açtığımda sayfa donuyor 15-20sn sonra kendine gelebiliyor. internet explorer 7 kullanıyorum. kod parlatma eklentisi nedeniyle olabilir.
Başlık: Buhar Kazanlı Ütü Elektriksel Prensip Şeması
Gönderen: yavuz - 24 Ağustos 2015, 14:16:39
Buhar Kazanlı Ütü tamiri yaptım. Elk. Prensip şemasını internette bulamadım. İhtiyacı olanlara sunulur. (http://[url=http://postimg.cc/image/tdfor5ybn/%5D%5Bimg%5Dhttp://s13.postimg.cc/tdfor5ybn/Buhar_Kazanl_t_Elk_Prensip_emas.jpg)[/url][/img]
Başlık: Buhar Kazanlı Ütü Elk. Prensip Şeması
Gönderen: yavuz - 25 Ağustos 2015, 08:43:36
(http://s12.postimg.cc/izon1ijax/Buhar_Kazanl_t_Elk_Prensip_emas.jpg) (http://postimg.cc/image/izon1ijax/)

(http://s14.postimg.cc/gg5df5c7h/Ar_zal_Selenoid_bobin_1.jpg) (http://postimg.cc/image/gg5df5c7h/)

(http://s14.postimg.cc/w0cr5ombx/Ar_zal_Selenoid_bobin_2.jpg) (http://postimg.cc/image/w0cr5ombx/)
Arızalı olan bu selenoid bobin değiştirilince arıza giderildi.
Başlık: Zener Diyot veya Normal Diyot Test Cihazım Yeni
Gönderen: yavuz - 28 Mart 2016, 11:06:30
(http://C:%5CUsers%5Cyavuz.demir%5CDesktop%5CDiyot%20Zener%20Diyot%5CDiyot%20Zener%20Diyot%20Test%20Cihaz%C4%B1%20(1).jpg)
(http://C:%5CUsers%5Cyavuz.demir%5CDesktop%5CDiyot%20Zener%20Diyot%5CDiyot%20Zener%20Diyot%20Test%20Cihaz%C4%B1%20(6).jpg)
(http://C:%5CUsers%5Cyavuz.demir%5CDesktop%5CDiyot%20Zener%20Diyot%5CDiyot%20Zener%20Diyot%20Test%20Cihaz%C4%B1%20(7).jpg)
(http://C:%5CUsers%5Cyavuz.demir%5CDesktop%5CDiyot%20Zener%20Diyot%5CDiyot%20Zener%20Diyot%20Test%20Cihaz%C4%B1.jpg)

Başlık: TT T-ECHNI-C DT830D Dijital Multimetre arızası
Gönderen: yavuz - 18 Nisan 2016, 15:33:14
Çin malı bu multimetre 220 v ac gerilimini yanlışlıkla 320 v ac olarak ölçüyordu.
Resimde görülen smd direnç 147,5 ohma olarak değer değiştirdiğinden yanlış ölçüyordu.
100 ohm sağlamıyla değiştirdim devredeki potansiyometre ile de voltaj ayarı yaptım. Düzeldi.
(//)