05-18-2019 03:53 AM
Pic18F4550 ve Pic18F877A kullanarak sıcaklık ve nem sensöründen , titreşim sensöründen ve iki farklı akım sensöründen bilgi alıp ekrana yazdırmamız gerekiyor. Fakat sıcaklık ve nem bilgisindeki sürekli değişimi yine ekranda görmek istiyoruz. Diğer sensörler için aradaki zaman farkı önemsiz. yapılması istenen önce 1.akım sensöründeki bilgiyi alsın ekrana yazsın sonra bulunduğu döngü dursun bir sonraki akım sensörü için o sensör döngüsü başlasın yine veriyi alıp ekrana yazdıktan sonra o döngüde sonlansın, ardından sıcaklık ve nem bilgisini alalım ekrana yazsın ve o döngü sonlansın en son titreşim içinde aynı şekilde. LabVİEW de çok yeni olduğumuz için bir kaç döngü denedik fakat bir türlü önceki döngüyü sonlandıramadık. Sonlandırmak istememizin sebebi bir önceki döngü sonlanmadıkça usb bağlantı blokları aktif kalıyor ve veri çekmeye devam ediyor sürekli hata alıyoruz. tüm sensörlerden aynı anda veri almayı denedik bunu da gerçekleştiremedik. bu sorunu çözmemiz için kullanmamız gereken blok veya döngü hakkında bilgi verebilir misiniz ?
05-19-2019 02:39 PM
nasıl bir döngü kullandınız acaba resim formatında paylaşır mısınız?
05-20-2019 02:03 PM
State machine yapisini kullanin. Bir while loop yaratin ve icerisine bir adet case structure koyun. Ayrica case ler arasi bilgi transferi icin bir adet cluster olusturup while loop uzerinden shift register kullanarak bu cluster i dolastirin. Herbir sensor icin case yaratin mesela sensor 1, sensor 2 gibi. Bu case dongusunun en basina initialize case ekleyip tum sensorlerin USB baglantilarini yaratin (initialize dongusu sadece bir kere run edilmeli) ve yarattiginiz referanslari clusterin icerisine aktarinki diger dongulerde bu cluster dan bilgi cekebilsinler. Ayrica her bir sensoru taradiginizda da okunan degerleri bu clusterin icerisine aktaracaksiniz. program sonlandirilana kadar bu yaratilan baglanti referanslarini kapatmayin cunku while dongusunde initialize yapildiktan sonra surekli olarak sensorleri tarayip guncel bilgi transferi yaparken initialize da yarattiginiz baglanti referansini kullanacaksiniz. Bu case dongusune ayrica front paneldeki degerleri guncellemek icin "UpdateIndicators" gibi bir case daha ekleyebilirsiniz. Ayrica kullanici Programdan cikis icin ekrandaki cikis dugmesine bastiginda program sonlandirmak icin "Exit" case I de eklemeniz gerekecek. Exit yaparken Initialize da yarattiginiz referanslari kapatmayi unutmayin.State machine Program dongusunu asagidaki gibi programlayabilirsiniz.
1. Initialize (sadece 1 defa run edin)
2. Sensor1 oku
3. Sensor2 oku
4. UpdaeIndicators
Ilk donguden sonra surekli olarak 2,3,4 u run edin taki kullanici Exit e basip programdan cikana kadar.
Ekteki ornegi inceleyin lutfen ve kendi ihtiyaclariniza gore modifiye edin.
05-23-2019 11:37 AM
ekte yapmış olduğumuz iki farklı programı gönderiyorum.Neden istediğimiz gibi olmadığını şu şekilde anlatayım.
Paralel bağlı olan da her döngünün usb bağlantısını tek bir bloğa indirmiştik.program çalıştığında sadece sıcaklık ve nem sensöründen birde titreşimden bilgi alabiliyoruz döngü devam ettiğinde hata veriyor sıcaklık ve titreşimde bu sefer de bi anlık iki akım sensöründeki veriyi görüyoruz ama anında hata veriyor programı bile durduramıyoruz. aralarına süre koymayı da denedik fakat olmadı.
Seri bağlı da ise hepsinin usb bağlantısı farklı ve case dosyaları içindeler case dosyalarının true falselarını kendimiz birini açıp diğerini kapatarak ilerlediğimizde sıkıntı olmuyor ama bunu biz elimizle yapmak istemiyoruz. Buna da bir çare bulamadık malesef
05-23-2019 11:39 AM
Hemen bunu deniyeceğim. İlginiz ve örneğiniz için çok teşekkürler
05-23-2019 12:51 PM
Ekledigin vi lar acilmiyor.
05-23-2019 01:10 PM - edited 05-23-2019 01:12 PM
Yüklememe izin vermiyor. Virüs uyarısı alıyorum
05-23-2019 03:03 PM
Birkactane Screenshot koyabilirsin block diagramdan.
05-23-2019 03:40 PM - edited 05-23-2019 03:43 PM
picten veriyi alırken ttl to usb çevirici gibi birşey kullandıgınızı varsayıyorum o zaman standart read,write fonksiyonları işinizi görür böyle while loop içinde portu sürekli aç kapa yapmanıza gerek yok. pic içinde değerleri aralarında virgül koyarak string halde labviewe gönderin labviewde değerleri ayrıştırın termination char da kullanın ki daha sağlıklı iletişim olsun bu kadar karmaşaya hiç gerek yok.