Picproje Elektronik Sitesi

DERLEYİCİLER => PIC C => Konuyu başlatan: punks_spawn - 30 Mart 2017, 22:15:49

Başlık: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: punks_spawn - 30 Mart 2017, 22:15:49
Arkadaşlar Merhaba,
Özel Bir şirkette Makine-Enerji Şefliği görevi üstlenmekteyim. Mevcut bir makineyi aşağıdaki gibi çalıştırmak istemekteyim.
Konu ise tam olarak şudur;
Simülasyonda çalışan bir devre breadboard'da da çalışmıyor.
Gerekli tüm bağlantıları yaptığımı düşünüyorum ve internette bununla ilgili araştırma yaptım fakat sonuç alamadım.
Bu arada arkadaşlar çıkışları bağlamadım devreye,
potans ayarı yaptığımda da ekranda görüntü alamıyorum.
Bilgi : Windows 10 SerPIC USB 2.0 PIC PROGRAMLAYICI Kullanıyorum. Proteus 8 Professional

Konu ile ilgili yardımlarınızı bekliyorum.

(http://i.hizliresim.com/j8QWOW.jpg) (http://hizliresim.com/j8QWOW)

(http://i.hizliresim.com/BryAQL.jpg) (http://hizliresim.com/BryAQL)

#include <16F877A.h>
#device ADC=10
#FUSES HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#USE delay (clock=20000000)

#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#define use_portb_lcd TRUE
#define kapak1 pin_d6
#define kapak2 pin_d7
#include <lcd.c>

float bilgi;
int vakum_zamani;
int isitici_zamani;
float vakum;
float isitici;



void main()
{
   setup_psp(PSP_DISABLED);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_CCP1(CCP_OFF);
   setup_CCP2(CCP_OFF);
   setup_adc(adc_clock_div_32);
   setup_adc_ports(ALL_ANALOG);
   lcd_init();
   
output_d(0x00);
output_c(0x00);
set_tris_a(0x0F);
set_tris_c(0x00);
set_tris_d(0b11000000);
delay_ms(2000);
output_high(pin_d0);
output_high(pin_c5);
    delay_ms(100);
   output_high(pin_c6);
    delay_ms(100);
   while(1)
   {
    basla:
   set_adc_channel(5);
   delay_us(20);
   bilgi=read_adc();
   vakum=0.0048828125*bilgi;
   vakum_zamani=vakum*12;
   if ( vakum_zamani<15)
   { vakum_zamani=15;
   }
   else {
   vakum_zamani=vakum_zamani;
   }
   printf(lcd_putc, "\fVAKUM = %d Sn. ",vakum_zamani);
   delay_ms(100);   
   
   set_adc_channel(6);
   delay_us(20);
   bilgi=read_adc();
   isitici=0.0048828125*bilgi;
   isitici_zamani=isitici*0.65;
   if ( isitici_zamani<1)
   { isitici_zamani=1;
   }
   else {
   isitici_zamani=isitici_zamani;
   }
   printf(lcd_putc, "\nISITICI = %d Sn. ",isitici_zamani);
   delay_ms(100);
   
   if(input(kapak1)==1)
    {output_high(pin_c6);
    delay_ms(200);   
    output_high(pin_d1);
    delay_ms(vakum_zamani*1000);
    output_low(pin_d1);
    delay_ms(1500);
    output_high(pin_d3);
    delay_ms(1500);
    output_high(pin_d5);
    delay_ms(isitici_zamani*1000);
    output_low(pin_d5);
    delay_ms(1000);
    output_low(pin_d3);
    delay_ms(1000);
    output_high(pin_d2);
    delay_ms(5000);
    output_low(pin_d2);
    delay_ms(1000);
    output_low(pin_c5);
    delay_ms(100);}
   
   if(input(kapak2)==1)
    {output_high(pin_c5);
    delay_ms(200);
    output_high(pin_d1);
    delay_ms(vakum_zamani*1000);
    output_low(pin_d1);
    delay_ms(1500);
    output_high(pin_d4);
    delay_ms(1500);
    output_high(pin_c4);
    delay_ms(isitici_zamani*1000);
    output_low(pin_c4);
    delay_ms(1000);
    output_low(pin_d4);
    delay_ms(1000);
    output_high(pin_d2);
    delay_ms(5000);
    output_low(pin_d2);
    delay_ms(1000);
    output_low(pin_c6);
    delay_ms(100);
    }
   
   } 
   
}

(https://s29.postimg.cc/gwx7jeakz/20170330_220019.jpg) (https://postimg.cc/image/gwx7jeakz/)

(https://s29.postimg.cc/tplbjbm6r/20170330_220107.jpg) (https://postimg.cc/image/tplbjbm6r/)
Başlık: Ynt: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: 30f4011 - 30 Mart 2017, 23:38:50
bence ilk önce LCD çalışıyor mu onu dene çünkü LCD dide lehim sorunları oluyor bide bendede böyle bir şey olmuştu ilk önce LCD çalışıyor mu onu dene
#include <16f877a.h>
##fuses xt
#use delay (clock=4000000)
#define use_portb_lcd true
#include <LCD.c>

void main()
{
LCD_init();

delay_ms(100);
printf(LCD_putc,"\f LCD deneme");
}
ya da fuses a sadece xt yaz ben biraz daha inceliyecem kodlarını ondan sonra sana cevap veririm
Başlık: Ynt: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: aboo67 - 31 Mart 2017, 01:30:59
hocam yanlış görmediysem lcdnin 1 numaralı ucu +ya gitmiş VSS ucu değilmiydi o VCC +5 VSS GNDye(1 numarayı -ye 2 numarayı +ya) bağlayıp bir denermisin tabi önce lcdnin datasheetinden veya arkasında yazar ordan bir bakarmısın 1 ve 2 numaralı uçlar nelermiş
Başlık: Ynt: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: mehmet - 31 Mart 2017, 03:15:29
Kullandığınız şemayı da paylaşınız.

LCD 3. uç da, potun orta ucuna gitmeli. Potun bir ucu +5V.,
diğer ucu da GND olmalı.
Başlık: Ynt: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: overlok - 31 Mart 2017, 08:05:34
Lcd bir numaralı pin gnd olmalı, 2. pin artıya. 3 numaralı pin potun orta bacağına, potun kenarlarda kalan pinleri gnd ve artıya bağlanmalı.  Birde besleme kaynağınız nedir?
Başlık: Ynt: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: vitruvius - 31 Mart 2017, 11:12:42
#use fast_io(b) kullanmissiniz ama lcd'nin bagli oldugu B portunun tris ayari yapilmamis.
Başlık: Ynt: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: punks_spawn - 31 Mart 2017, 12:23:23
Merhaba, şu an işyerinde olduğum için istediğiniz cevapları veremiyorum fakat akşama devre şemasını ve diğer fotoğrafları da paylaşacağım.
Tavsiyelerinizi deneyeceğim. Bu arada LCD çalışmadığı için 19 numaralı bacak ta çıkış vermiyor olabilir mi? pic enerjilendiğinde 19 numaralı çıkış sabit bir şekilde hep çalışacak diye ayarlamıştım.


LCD için kullandığım datasheet görüntüsünü paylaşıyorum.
Başlık: Ynt: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: kimlenbu - 31 Mart 2017, 17:45:31
PIC değil ARM kullanıyorum ama böyle durumlarda bir kaç yöntem izlersin. Eğer gerçek zamanlı debug şansın varsa, program hangi satıra kadar geliyor izlersin. Yoksa belli noktalara seri porttan veri gönderecek kod ekler, terminalden bunu izlersin. Daha basiti bağlı ledi bir kaç kere yakıp söndürecek bir kod eklersin belli bölgelere. İşlemcinin çalıştığından emin olduktan sonra çevre birimlere doğru yönelirsin.

Ledi direkt yanık kalacak şekilde ayarlarsan hata yaparsın, nerede takılıyor kalıyor göremezsin, ya da port kontrolsüz bir şekilde çıkış veriyor olabilir, gene yanıltır.
Başlık: Ynt: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: punks_spawn - 31 Mart 2017, 19:26:50
Merhabalar Devre Şeması Görüntüsüde budur arkadaşlar.
Değerli yorumlarınız için teşekkür ederim. Deneyeceğim dediklerinizi.

Başlık: Ynt: PIC C simülasyonda çalışan, pratikte çalışmayan devre
Gönderen: punks_spawn - 31 Mart 2017, 19:52:44
Arkadaşlar LCD ve Kontrast ayarındaki potans bağlantılarını dediğiniz gibi yaptım.
LCD 1 numaralı uç GND 2 numaralı uç +5V
Çalıştı Sonunda...
Yorum yapan, destek veren sizlerden Allah razı olsun.
2 Gündür uyuyamadım adam akıllı.

(http://i.hizliresim.com/W0GvQQ.jpg) (http://hizliresim.com/W0GvQQ)

(http://i.hizliresim.com/R0OZPn.jpg) (http://hizliresim.com/R0OZPn)

(http://i.hizliresim.com/p0G3Wn.jpg) (http://hizliresim.com/p0G3Wn)