algoritma öneriniz.

Başlatan ByTEK, 29 Eylül 2013, 12:34:27

ByTEK

Arkadaşlar Merhaba;

Bir kaç sorum var fikirlerinizi sunarsanız memnun olurum.

1- çapı yaklaşık olarak 10mm olan bir borudan damlalar şeklinde yada akan bir su şeklinde su akmaktadır. bunları daha önce ağırlığını hesaplayıp ne kadar su birikmiş buluyordum fakat loadcell'lerde problem yaşadğım için başka bir yol arıyorum. mesela damla sayıcı olabilir. 10 tane boru var ona göre ucuz yöntem bakıyorum.

2- siemens bulaşık makinelerinde su giriş ventilinden hemen sonra bir mini türbin var. giren su miktarını sayarak alınan suyu hesaplıyor. bu türbin aklıma geldi ve bir tane çıkma temin ettim. incelediğimde türbin kısmında mıknatıs olduğunu ve karşısında reed anahtar olduğunu gördüm. türbin hassastı ve işe yarayacak gibi. daha önce kulllanan varmı ? yada önerebileceğiniz birşey

sözünü ettiğim türbin  : http://www.online-yedekparca.com/1956-arcelik-bulasik-makinesi-turbin-satinal.html

3- türbini kullandığımı farz ediyorum. geçen suyu saymam gerekli sayma ve hesaplama işlemini PIC ile yapabilirim sıkıntı yok fakat 10 tane türbini tek PIC ile saydırabilirmiyim ? sonuçta kesme kullanmam gerekiyor. Eğer saydıramazsam mecburen 10 tane PIC12F675 kullanmam gerekiyor. Birde devre ile bilgisayarın haberleşmesini sağlayan ana işlemleri yapan PIC var tabiki. yani toplam 11 tane kullanmış olmama gerek. fikirleriniz nedir ?

4- Eğer 11 tane PIC kullanırsam şöyle bir sıkıntım oluşuyor. verileri ortak bir epromda tutmam gerekiyor. bu eprom 24C16 olabilir. peki bu eproma 11 tane PIC ile ileşim kurdurabilirmiyim. yani 24c serisi 1 den fazla PIC ile bağlantı yapılırsa sıkıntı yaşamadan veri okuyup yazdırabilir mi ?

ofk58

#1
16f877a da rb0  degısıklık kesmesı ve rb4-rb7 portunda olan degısıklık kesmesı var 5 tane ordan gelır .2 tanede sayıcı  tımer var .3 tanede yazılımsal saydır .10 tane pıc sıkıntı olur bence .

omereliusuk

#2
(28veya 40 pinli çipler işinizi görür)mesela 16f877a  işinizi görür(20mhz). b0 int olarak kullanılacak. rx tx(bilgisayar haberleşmesi). 10 adet pin her biri sensör için ayrı ayrı. bütün sensörler diyotla b0 pinine. ayrıca diyot un sensör tarafından da sensör pinlerine bağlantı yapıp hepsini ayrı ayrı okuyabilirsin (yine de denemek lazım). eeprom için de i2c bağlantısı donanımsal olarak var. hatta usb (becerebilirsen) veya rxtx de olabilir daha küçük ve yeterli hıza ve hafızaya sahip 18f2550 daha iyi olur. ayrıca bağlantı için harici bir materyal kullanmazsın(usb kullanacak olursan).

mesaj birleştirme:: 29 Eylül 2013, 14:53:33


ByTEK

Verdiğiniz fikirler için teşekkürler arkadaşlar. Evet fazla PIC sıkıntı olabilir. PIC18F2550 mantıklı gözüküyor. saydırma işleminde sıkıntı olmaz inşallah elimde 2550 yok elime geçince denemeler yapabilirim.

hasankara

void buton1_kontrol(void){
static unsigned char mlt=0;
switch(mlt){
case 0: if(btn0){mlt=1;}break;
case 1: if(btn0==0){mlt=0; reed1++;}break;
}}
void buton2_kontrol(void){
static unsigned char mlt=0;
switch(mlt){
case 0: if(btn1){mlt=1;}break;
case 1: if(btn1==0){mlt=0; reed2++;}break;
}}
...

istediğin kanal kadar aynı tipte fonksiyon oluşturursun. bu fonksiyonların yanında tüm reedx değişkenlerini ortak bir şekilde işleme katacak başka bir fonksiyon oluşturursun. tüm fonksiyonları sonsuz döngüde çağırırsın. interrupt la yapsan da aynı şekilde interrupt geldikten sonra hangi kanalın aktif olduğunu görmek için yine tüm kanalı kontrol etmen gerekecek. interrupt ile yapmak zorunda değilsin.