16f877 ile pic ileri geri sayıcı

armi49

Üye
Katılım
17 Eyl 2012
Mesajlar
33
Puanları
1
aşağıda pic c ile yazdığım 0-99 ileri geri sayıcı kodları var.ama bunu geliştirmek istiyorum.buton yerine sensör kullanmak istesem ve sensöründe zaman ayarı olsa.örneğin:bir otopark projesinde kullanılan bir sensörle otoparka giren araç sayısı sayılsa ama aynı zamanda sayac önünden bir insan geçtiğini varsaysak ve onu saydırmasak. bunun için sensöre düşen ışığın kesilmesi 2 saniyenin altındaysa saymasın diğer türlü saysın bunu nasıl yapabilirim acaba?


#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)


#use fast_io(a)
#use fast_io(b)
#define arttir pin_a0
#define azalt pin_a1


char birler=0,onlar=0,sayi=0;
const int digit[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);


set_tris_a(0x03);
set_tris_b(0x00);




while(1)
{output_b(digit[birler]|(0b00010000));
delay_ms(5);
output_b(digit[onlar]|(0b00100000));
delay_ms(5);
if(input(arttir))
{sayi++;
birler=sayi%10;
onlar=sayi/10;
while(input(arttir))
{output_b(digit[birler]|(0b00010000));
delay_ms(5);
output_b(digit[onlar]|(0b00100000));
delay_ms(5);
}
}
if(input(azalt)&&(sayi!=0))
{sayi--;
birler=sayi%10;
onlar=sayi/10;
while(input(azalt))
{output_b(digit[birler]|(0b00010000));
delay_ms(5);
output_b(digit[onlar]|(0b00100000));
delay_ms(5);
}
}
if (sayi==100)
sayi=0;
}
}
 
arac hızlı geçer insan yavaş geçerse aracı insan sanabilir, insanı da araç sanabilir. tek optik sensörle zaman ayarıyla yapman ne kadar doğru olur biraz düşünmek gerekiyor. boy farkıyla yapman daha doğru olacak gibi. mesela; 2 sensör kullansan ve aralarına mesafe koysan( mesela 1,5 metre gibi) aracın giriş mi çıkış mı yaptığını da sayabilirsin. otoparkdan bahsedecek olursak otoparkdaki araçların sayısını bilirsin yani. yada boşda olan yer sayısını.
 
ya insan sensorun ununde 2 sny den fazla beklerse :=))
 
O halde şunu yapacaksınız. 2 tane sensör. aralarındaki mesafe 1m oldugunu düşünelim. İlk sensorden geçti(aktif), ikinci sensorden geçti(aktif). Bu arada her iki sensorde aktif oldugu zaman bu durumda geçenin min 1m uzunlugunda bir araç oldugunu anlarsın. Ve sayarsın. araçların giriş yada çıkış yönü için ise önce hangi sensörün aktif olduguna bakarsın.
 

Forum istatistikleri

Konular
129,836
Mesajlar
930,619
Kullanıcılar
452,665
Son üye
Murat açıkel

Yeni konular

Geri
Üst