kızıldev v2 pna sensör devresinin şeması lazım ?

Başlatan datasheet, 21 Ocak 2013, 16:46:46

LukeSkywalker


datasheet

Alıntı yapılan: Ziya - 05 Eylül 2006, 23:11:10
CCS kullanıyorsan cmcon = 7 yapmana gerek kalmıyor. Derleyici senin yerine bunu gizlice yapıyor.

Harici kristal kullanmadan yazdığım çizgi izleyen robot programını aşağıya ekliyorum. Belki işine yarar.
#include <16F628.h>
#fuses NOWDT,NOPROTECT,NOLVP, INTRC_IO, NOBROWNOUT
#use delay(clock=4000000)

#use fast_io(A)
#use fast_io(B)

#byte prt_a = 5
#byte prt_b = 6

Boolean calistir = true;
unsigned int16 timer = 0x0000;

/*
#bit saggoz = prt_a.1 #bit solgoz = prt_a.0 #bit sag_i = prt_b.3
#bit sag_g = prt_b.4 #bit sol_i = prt_b.2 #bit sol_g = prt_b.1 */

struct {
        int bos   : 1; // b0
        int sol_g : 1;
        int sol_i : 1;
        int sag_i : 1;
        int sag_g : 1;
        int hizarttir : 1;
        int kaydet : 1; // b6-b7
        int hizazalt  : 1;
       } motor;
struct {
        int sol : 1;
        int sag : 1;
        int solled : 1;
        int sagled : 1;
        int satir : 4   ;  // b4-b7
       } goz;

#byte goz   = 5
#byte motor = 6

#INT_TIMER1
isr()
{
 if(calistir)
  {
   set_timer1(timer);
   if(!goz.sol && !goz.sag)
    {
     prt_b = prt_b & 0xE1;
    }
   else
    {
     if(goz.sol && goz.sag)
       {
        motor.sol_i = 1;
        motor.sag_i = 1;
        motor.sol_g = 0;
        motor.sag_g = 0;
       }
     if(!goz.sol)
       {
        motor.sol_i = 0;
        motor.sag_i = 1;
        motor.sol_g = 0;
        motor.sag_g = 0;
       }
     if(!goz.sag)
       {
        motor.sol_i = 1;
        motor.sag_i = 0;
        motor.sol_g = 0;
        motor.sag_g = 0;
       }
    }
  }
 else
   {
    prt_b = prt_b & 0xE1;
    set_timer1(0xFF00-timer);
   }

  calistir = ! calistir;
}

#rom  0x2100={00, 00} // ilk timer değeri

main()
{
 port_b_pullups(TRUE);
 set_tris_a(0xf3);
 set_tris_b(0xE1);

 *(&timer+1) = read_eeprom (0);
 *(&timer  ) = read_eeprom (1);

 setup_timer_1 ( T1_INTERNAL ); //| T1_DIV_BY_1 );
 enable_interrupts(GLOBAL);
 enable_interrupts(INT_TIMER1);
 while (1)
 {
  if(!motor.hizarttir)
   {
    if(timer >= 0x00FF)
     {
      timer -= 0x00FF;
      delay_ms(100);
     }
   }

  if(!motor.hizazalt)
   {
    if(timer <= 0xFF00)
     {
      timer += 0x00FF;
      delay_ms(100);
     }
   }

  if(!motor.kaydet)
   {
    write_eeprom ( 0 , *(&timer+1) );
    write_eeprom ( 1 , *(&timer  ) );
   }

  if(!goz.sag) goz.sagled = 1; else goz.sagled = 0;
  if(!goz.sol) goz.solled = 1; else goz.solled = 0;
  // kontrol();
 }
}









hocam ccs c de dijital giriş çıkış  için
setup_comparator(NC_NC_NC_NC); // 16f628 için
setup_adc_ports(NO_ANALOGS);// 16f877 için


kullanılıyor cmcon yok  ,hocam sizin açtığnız bu konuda sorunu nasıl çözdünüz ?
https://www.picproje.org/index.php?topic=32257.0

yazılımsal olarakmı donanımsal olarak mı ? eklediğiniz devre gayet kararlı çalışıyor fakat  günlerdir pice bilgi gönderemiyorum ,çoğu forumda arkadaşlar bu noktada takılmış ve hep yarım kalmış projeleri

LukeSkywalker


datasheet

ledde bir değişim olmuyor dijital ayarlarını yaptığımda ,ayar yapmadığım zaman sadece titreme oluyor pic çıkışındaki ledde

536aa3p kullanıyorum ır devresi sıkıntılı değil çalışıyor

LukeSkywalker

Peki PIC beslemesi ile devrenin beslemesi aynı mı? Aynı ise PIC2in bacağına devrenin hangi ucunu bağlıyorsunuz? Şema paylaşın.

datasheet

#20
iki devreyide ayrı güç kaynaklarıyla besliyorum ,tsop out bacağını picin  pin_b0 ına bağlıyorum


şemada bişey yok logic state ile b0 pinine giriş yapıyorum bunu a0 pininde görmek istiyorum
buyrun hocam ;

http://g1302.hizliresim.com/16/h/k4szd.png

LukeSkywalker

Şaselerini birleştirin devrelerin. İkisi de aynı kaynaktan beslense daha iyi olur.

datasheet

Sn. LukeSkywalker  çok teşekkür ederim sorunsuz çalışıyor :)