Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Temel Elektrik/Elektronik => Konuyu başlatan: sımışka - 29 Eylül 2020, 09:30:33

Başlık: Stm32 external interrupt parazit
Gönderen: sımışka - 29 Eylül 2020, 09:30:33
Merhaba,

Optokuplorler ve stm32f103 ile tasarlamış oldugum bir devre var, opto girişinde direnç , kapasitör , ve paralel hızlı bir direnç var , çıkışı 74hc14 ile alıp işlemciye bağlıyorum. Çok yüksek hızlarda gayet güzel sayıyor, fakat şöyle bir sorun var. Kart makineye bağlı ve makinede ki sensorden üretilen ürün sayısını sayıyor. Stm de harici interrupt ile saydiriyorum, makine kapatılıp açıldığında sapıtıyor, ürün geçişi olmadığı halde ürün varmış gibi parazit 50, 100 vs sayıyor. Giriş 5-24v arasını sayabiliyor, sensorumuzde 24v sinyal üretiyor. Bu durumu yazılımsal nasıl yönetebilirim ?
Başlık: Ynt: Stm32 external interrupt parazit
Gönderen: Erol YILMAZ - 29 Eylül 2020, 09:49:02
Giriste 1 zamaninin min x sn olmasini set ederseniz glitchlerden etkilenmeden sayarsiniz.
Başlık: Ynt: Stm32 external interrupt parazit
Gönderen: sımışka - 29 Eylül 2020, 09:54:04
Ne sıklıklarla 1 geldigine göre mi yoksa 1 de kalma süresi mi hocam ?
1 de kalma süresini nasıl ölcebilirim  ?
Başlık: Ynt: Stm32 external interrupt parazit
Gönderen: Erol YILMAZ - 29 Eylül 2020, 13:21:41
1 de kalma süresine bakarak   gerçek sinyalle paraziti ayırmak mantıklı.

1'de kalma süresini nasıl ölçebilirsin?
Yazılımına uygun bir algoritma oluşturman lazım.
Başlık: Ynt: Stm32 external interrupt parazit
Gönderen: z - 29 Eylül 2020, 13:57:48
Sensorun onunden gecen nesnelerin hizi nedir?

Semani cizersen basit bir kac eklenti ile de halledilebilir.
Başlık: Ynt: Stm32 external interrupt parazit
Gönderen: sımışka - 29 Eylül 2020, 21:15:31
Alıntı yapılan: Erol YILMAZ - 29 Eylül 2020, 13:21:411 de kalma süresine bakarak   gerçek sinyalle paraziti ayırmak mantıklı.

1'de kalma süresini nasıl ölçebilirsin?
Yazılımına uygun bir algoritma oluşturman lazım.
Sensör CNC makinesine bağlı, parça bittiğinde 1 puls veriyor. Makine ortamını aslında tam bilmiyorum yurt dışında şu an, puls in periyodunu ölçemiyorum o yüzden tam olarak.1 de kalma süresine göre arayüz programına  ms cinsinden filtreleme için zaman girilmesi için bir alan koydum. Ordakiler deneyerek doğru değeri bulup set ettirmeye çalıştıracağım. Harici kesme ile bir değişkeni arttırıyorum, aynı zamanda pinin 1 veya 0 olmasını bir timer içerisinde okuyarak 1 de kalma süresini bulabilirim diye düşünüyorum. Bu değerin altındaki durumlarda harici interupt altındaki değeri arttırmayacağım. Timer altındaki girişin 1 olma süresi boyunca external interrupt ta pasifte kalmalı sanırım.
Başlık: Ynt: Stm32 external interrupt parazit
Gönderen: sımışka - 29 Eylül 2020, 21:17:56
Alıntı yapılan: z - 29 Eylül 2020, 13:57:48Sensorun onunden gecen nesnelerin hizi nedir?

Semani cizersen basit bir kac eklenti ile de halledilebilir.
Tam bir bilgi yok ama 1 saniye cıvarında nesne sensör önünden geçmekte hocam. Aslında geçmekte mi onu da bilmiyorum, CNC makinesi içerisindeki 1 sensörden bu değer alınıyor, ürün bittikten sonra 1 veriyor, düzeneği ben kurmadım, firmada makine ile ilgili bilgi vermiyor.
Başlık: Ynt: Stm32 external interrupt parazit
Gönderen: z - 30 Eylül 2020, 03:42:08
Ext interrupt i kullanma, timeri saniyede 1000 kez int uretecek sekilde kur.

A senin okumak istedigin portun pininden aldigin bilgi olsun.

Gerekli kod parcacigini yazarak ilgili pin 1 ise A=1, ilgili pin 0 ise A=0 olsun.

unsigned int a, sayildi, sayac, MalzemeSayisi;

Timer interrupt rutininde asagidaki isleri yapacaksin.

if (a==1)
  {
    if (sayac<255) sayac++;
  }
else
  {
    if (sayac>0) sayac--;
  }

if (sayac>200)
  {
    if (sayildi==0)
       {
         sayildi=1;
         MalzemeSayisi++;
       }   
  }

if (sayac<50) sayildi=0;

Bu hem digital bir filitreleme yapar hem de hysteresiz.

Parcanin gecis hizina bagli olarak karsilastirma degerleri yada int cakma hizi ile oynaman gerekir.
Başlık: Ynt: Stm32 external interrupt parazit
Gönderen: JOKERAS - 30 Eylül 2020, 15:55:41
Capture Compare İnterruptı Kullan.