Sıvı seviyesini ölçerek lcd ekranda göstermek istiyorum ve aynı zamanda elimi algılayınca 2 sn rölenin çekmesini istiyorum.
aşağı yukarı kafamda birşeyler oluştu mantık hatası varmıdır diye sizlere de sormak istedim açıkcası biraz özetleyeyim
10 tane prop olacak ve sıvının olduğu kapta aralıklarla yerleştireceğim. kaptaki sıvıya +5 v vereceeğim.
her seviyedeki probu pice giriş yapcağım . giriş uçlarını pull down yapacağım.
her seviyede +5 v picin bağlı olduğu ucu tetikleyecek ve bu seviyeden tetikleme geldiğinde bir etikete yönlendirip lcd ekrana yazmasını istedğim değeri yazdıracağım bu etiket içinde yine girişleri kontroıl ederek hangi seviyeden tetikleme geldiyse o etikete yönelip yazı yazdıracağım.
lcd ekranla ilgili şunu sormak istiyorum. bu 10 tane probun 5 tanesini birden sıvı seviyesi geçince bu 5 proptan tetikleme gelecek. pic bunun hangisine göre işlem yapar sizce?
yani örnek olarak bir kod vereyim
if porta.1=1 then a1
if porta.2=1 then a2
if porta.3=1 then a3
if porta.4=1 then a4
bu şekilde kullanırsam ve a1 a2 a3 a4 dediğim etiketlerde lcd ye yazı yazdırma komutu verirsem . bu propların hepsine birde sıvı temas ettiğinden hangisini algılayacaktır.
bence en son yazılan porta4 deki tetiklemeyi işleyecektir.
bunu daha sağlıklı bir şekilde nasıl yapabilirm?
birde elimi algılaması için nasıl bir sensör kullanmalıyım elimde pir sensör var fakat bunun açısı çok geniş her hareketi algılayıp çıkış verir diye düşünüyorum pek sağlıklı olmayacaktır
input ların logic durumunu ayrı ayrı döngülerde kontrol etmektense doğrudan port okuyarak , portun değerine göre işlem yapman bence daha verimli olur, yani varsayalım ki 5 probunuda Pa0 ila P04 arasına bağladın eğer kabın su ile dolarsa Port değerin = 0b00001111 olucak yani dec 15, diğer seneryolarıda aynı şekilde kontrol edebilirsin.
Karşılaştırma işlemi Asm de birkaç mikro saniye sürer..sonuçlar alındıktan sonra bu sonuçlara göre ikinci bir
sorgulama ile ekrana her probun sonucu yazılabilir..
Alıntı yapılan: SysTick - 02 Mayıs 2016, 21:09:21
input ların logic durumunu ayrı ayrı döngülerde kontrol etmektense doğrudan port okuyarak , portun değerine göre işlem yapman bence daha verimli olur, yani varsayalım ki 5 probunuda Pa0 ila P04 arasına bağladın eğer kabın su ile dolarsa Port değerin = 0b00001111 olucak yani dec 15, diğer seneryolarıda aynı şekilde kontrol edebilirsin.
Ozaman sırası ile
if portb=%00001111 then a1
İf portb=%00011111 then a2
Bu şekilde mi kullanmam lazım yoksa illa desimal A çevirip mi kullanmam gerekiyor. Birde nasıl bir sensor kullanmalıyım sizce ir alici verici pir sensor lazer vb.
Bu iş için özel sensörler vardır mutlaka, ben bunları bilmiyorum.Ama sizin yapacağınız çalışma için bir önerim var.Tankın dibinden şeffaf bir hortum çıkarın yukarı doğru.İçine üzerinde mıknatıs olan bir şamandıra gibi bir şey bırakın.Hortumun dışından kaç noktada seviye almak istiyorsanız oralara reed role tespit edin. Bundan sonrasını da yazılımla halledersiniz. Bir de şöyle yapabilirsiniz : Tankın üstünden içine sabit bir mil indirin .Şamandırayı bu milin üzerine takın. Şamandıraya bağlı ince bir mili dışarı sıvıya temas etmeden çıkarın. Bu çubuğun ucunu bir rezistans teline temas ettirerek direnç ölçün. ADC kanalından direnç okuyarak sonuç alabilirsiniz diye düşünüyorum.
İlla desimale çevirmene gerek yok istediğin gibi kullanabilirsin, sensör konusunda ise tamamen bu projeyi niye yaptığınla alakalı eğer ödev ise bence sensöre gerek yok en başta anlattığın sistemin daha önce çalıştığını gördüm,
@mg1980 gayet kullanışlı seçenekler söylemiş bunları da kullanabilirsin.
izafi olarak suya daldırdığınız metal proplara Doğru akım uyguladığınızda,uzun bir müddet sonra bir taraf erime eğilimi gösterecektir..biraz daha olgun devrelerde suya 1khz sinyal uygulanıp diğer proplardan dedekt ediliyor,benim önerim ise dibe kadar inen silikon boru olsun,üst kısmına bir basınç sensoru yerleştir, Case Select komutları ile çalışma bölgeni set et...ticari projelerde kitleye temas arzu edilmez Omron ultrasonik transducer kullanılıyor..
Devre öğrenci odevi ticari bir devre değil normal hayatta kullanılacak bir devre değil aslında otomatik sıvı sabunluk modeli olacak.
Aklıma sensor için mesafe ölçer geldi. Mesela mesafe 10cm nnin altına inince çıkış verecek bir röle olacak. Elimiz sensore yakın olduğu zaman çalışmış olacak diye dusundum.
Seviye kontrolünü de en rahat sanirim port okuyarak yapabilirim..
Dediğiniz basınç sensoru ile gerekli noktalardaki basıncı set edip ona göre yazılım yazmak çok güzel bir fikir.
Reed role ve mıknatıs da güzel bir fikir ama dışarıdan mudahale olabilir bu durumda. Basınç sensoru daha çekici geliyor. Ama dediğim gibi odev olduğu için çok sorun değil.
Fikirler için teşekkürler takıldığım konuda yeniden rahatsız ederim. İyi günler
Ticari ürünlerde (sıvı sabunluk) eli hangi sensörle algılıyorlar?
Bu iş için bildiğiniz ekonomik ama sorunsuz çalışabilecek sensör öneriniz varmıdır?
Sabun bazdır direk dc akım ile tetikleme almanız biraz zor olabilir. Picin hpwm modülü ile 1khz üretip verin derim.
10 prob ta çok gereksiz olur kanımca bunun yerine kapasitif sensör kullanmanı tavsiye ederim
ticari ürünlerde ben genelde gördüğüm IR ALICI VE VERİCİ LEd kullanılıyor . LM393 gibi bir opamp ile karşılatırma yapılıyor. çok basit bir devresi var. Fakat direk güneş gören yada aşırı ışık alan bir yerde çalışmaz.
en hakiki ticari ürünlerde sıvya temas etmeden seviye ne ile ölçülür?
Alıntı yapılan: akkoyunlu74 - 25 Haziran 2020, 00:18:14Ticari ürünlerde (sıvı sabunluk) eli hangi sensörle algılıyorlar?
Bu iş için bildiğiniz ekonomik ama sorunsuz çalışabilecek sensör öneriniz varmıdır?
CNY70 Tarzı sensörler iş görebilir kanımca
Alıntı yapılan: erkan614 - 25 Haziran 2020, 19:27:02en hakiki ticari ürünlerde sıvya temas etmeden seviye ne ile ölçülür?
Çalışacağı yere göre radar yada ultrasonik yöntemle ölçülür.
not: sabunluk seviyesi için ikisi de uygun değildir diye düşünüyorum. Hem çok küçük ve kapalı bir hazne hemde pahallı bir seçenek olur.
Lazer yzicilarda kartusun dar bir yerinde karsilikli iki pencere olur yada atik toner kutulari olan buyuk yazicilarda. Oradan isik sizarsa toner bitmis yada isik algilanmazsa atik kutusu dolmus denir.
Sabunlukta da benzer bir yontem kullanilabilir ama hazne tasarimi ona gore olmali.
Baska bir yontemde de tabanda yalitilmis rezistif pad. Direnc artarsa sabun azalmis demektir.
Cevaplar için sağolun, sorumu biraz daha basitleştireyim; sıvı sabun kutusunun altına elinizi uzattınız, sistem elinizi farketti ve sıvı sabunu gönderdi.
Burada bazen 1 cm'den bazen 3 cm'den el algılanıyor.
CNY70 için 3cm fazla bir değer.
Ultrasonic mesafe sensörü hacimsel olarak sıkıntılı ayrıca uzun süre sağlıklı çalışmayabilir, ir sensörler, güneş ışığı altında sıkıntılı. Hepsi için çözümler üretilebilir ama zorlama çözümler olur.
Tecrübesi olan yada incelemiş olan arkadaşlar; ekonomik ve kararlı çalışması için ne öneririsiniz?
http://www.inventable.eu/2012/11/11/sensor-ir-de-proximidad/
Moduleli IR ile kazanci ayarlanabilen fotodiyotla isi cozersiniz. Elbette ir yansimasi her elde ayni olmaz. Sensoru daha dogrusu ir led ve fotodiyodu birbirine farkli acilarda yerlestirip hassasiyetine bakabilirsiniz. Hassas olsun derseniz verici diyodun akimini yuksek tutarsiniz, yada dar aciyla yollarsiniz yada alici diyoda da mercek koyar genis acidan alis saglarsiniz. Led mercekleri var hatta pir sensor merceklerinden de var o da yansiyan sinyali kolay yakalamayi saglar. Seviye degil yaklasim sensoru olduktan sonra is bence daha kolay.
https://www.alibaba.com/product-detail/icstation-IR-Infrared-Obstacle-Avoidance-Sensor_1600055431540.html?spm=a2700.7735675.normalList.26.4c2629b4KRdOct&s=p (https://www.alibaba.com/product-detail/icstation-IR-Infrared-Obstacle-Avoidance-Sensor_1600055431540.html?spm=a2700.7735675.normalList.26.4c2629b4KRdOct&s=p)
sıvı sabunluklar musluklar bu mantıkla çalışıyor. çok basit devreleri var. elini altına sokacağın için güneş ışığı ortam ışığından etkilenmez. mesafesi ayarlayabiliyorsun. ayrıca IR geçiren siyah cam kullanınca ortam ışığıyla hiç bir işin kalmıyor.
Bu ürünü kullanarak dezenfektan standı yaptık. çalışmasında herhangi bir sorun olmadı. Kullanıcı elini altına soktuğunda ayarladığın süre kadar dezenfektan akıtacak sekilde ayrıca devre yapman gerekiyor. yoksa sensör gördüğü sürece dezenfektan akıtmaya devam eder. bunun için ben 555 entegresi kullandım. sensör elimi gördüğünde düşen kenar oluşuyor. her düşün kenarda 555 ile ayarladığım süre kadar motor çalışıp dezenfektan sıkıyor.
Alıntı yapılan: Sozuak - 25 Haziran 2020, 21:03:18Lazer yzicilarda kartusun dar bir yerinde karsilikli iki pencere olur yada atik toner kutulari olan buyuk yazicilarda. Oradan isik sizarsa toner bitmis yada isik algilanmazsa atik kutusu dolmus denir.
Sabunlukta da benzer bir yontem kullanilabilir ama hazne tasarimi ona gore olmali.
Baska bir yontemde de tabanda yalitilmis rezistif pad. Direnc artarsa sabun azalmis demektir.
Hocam şuan bir kap içersinde suyun bitip bitmediğini kontrol etmeye çalışıyorum, fakat sensör koyacak yerim çok dar. Çeşitli yöntemleri araştırdım, tam bu noktada sizin bahsettiğiniz bu rezistif pad nasıl birşey ilgimi çekti, biraz açabilir misin? ADC converterle mi yapılır? Su dolu olunca resistif padde direnç değişimi mi oluyor? Bu rezistif pad nasıl birşey açıklayabilir misin?
Selamlar bu (https://www.direnc.net/basinc-kuvvet-egim-sensorleri)sayfadaki bu (https://www.direnc.net/basinca-duyarli-iletken-levha-adafruit) ve bunun (https://www.direnc.net/rp-c76-st-ince-film-basinc-sensoru) gibi sensörleri kabın altına koyup direnç değişiminden analog voltaj okuması yapıp sonuç çıkartabilirsiniz. Tabi sıvının ağırlığı vs ne kadar ve ne oranda ayarlanabilir bilmiyorum , çeşitli modelleri var ve /veya ağırlığın temas edeceği noktadan gereken kuvvet pad üzerine aktarılıp ölçüm yaklaşık olarak yaptırılabilir.
Haliyle ped direnci üzerine uygulanan basınçla değişiyor. Kabın ağırlığı da bu pad üzerine düşürüldüğünde meydana gelecek direnç değişiminden sonuç çıkartılabilir. Tabi burada padin üzerine uygulanacak basınç aralığı kabın ağırlığı yada belli noktasındaki (pad üzerine basacak kısım) ağırlık aralığı denk gelmeli. Örneğin kabınıza dolan sıvı yarı seviyede iken pad direnci uygulanan basınç nedeni ile düşebileceği min değere düşmüş olabilir yada ters şekilde kabın doluluğu yarı iken hala direnç değeri anlamlı bir değişim göstermeyebilir.
Bunu uygun boyutta pad ve pad temas noktalarının kabın bir kısmına yada tüm ağırlığına denk gelecek bir mekanik tasarımı yapılması gerekebilir.
Örneğin pad 0-100gr arası min/maks çalışırda siz 0-200gr ağırlık yüklerseniz haliyle belli yere kadar ölçüm alırsınız.
DEFINE OSC 4
#config
__config _FCMEN_OFF & _IESO_OFF & _CP_OFF & _CPD_OFF & _BOD_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
#ENDCONFIG
CMCON0 = 7
ADCON0=%00000000
ANSEL=0 ;ADC ler iptal
GPIO=0
TRISIO= %00101010 ; ************* gpio-5 input yapıldı senkron için 06.8.2015 ********************
DUTY VAR WORD
don var byte
' ============= PWM Ayarları =========
T2CON =%00000101 'Bölücü 1/4 olarak verildi ve TMR2 aktif hale getirildi.
PR2=13 ; 36Khz için geçerlidir. 38Khz için 12 verilmesi yeterlidir.
duty=28 ; 36Khz için geçerlidir. 38Khz için 26 verilmesi gerekir.
CCP1CON.4=DUTY.0
CCP1CON.5=DUTY.1
CCPR1L=duty>>2
CCP1CON.2=1 'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=1
BASLA:
don=don+1
if don>1 then
don=0
CCP1CON.2=1 'bu iki komut ile PWM sinyali açılmış olacaktır
CCP1CON.3=1
else
CCP1CON.2=0 'bu iki komut ile PWM sinyali kapanmış olacaktır
CCP1CON.3=0
endif
pause 10
if gpio.5=0 then ; Giriş portunu kontrol et.
gpio.0=1
pause 750
else
gpio.0=0
endif
goto basla
end
(https://i.ibb.co/Pm21Swf/1602576633143.jpg) (https://ibb.co/Pm21Swf)
https://www.mikrobotik.com/wp2/2019/04/09/ir_sensor_kullan/
orijinal kaynağını yukarıda verdiğim devreyi kurdum.
Devre kendi sinyalini görmüyor fakat tv kumandasıyla aktif oluyordu.
Sorunu sadece DP1838 besleme uçlarına 100nF kondansatör bağlayarak çalıştırdım. Ancak kullandığım besleme bilgisayar güç kaynağı yada lipo pil olduğu için bu durum aklıma yatmadı. Dijital osiloskop ile ir diyot ucundan frekans ölçümü yaptığımda okuduğum değerler;
PR2=13 ; 36Khz için geçerlidir. 38Khz için 12 verilmesi yeterlidir.
duty=28 ; 36Khz için geçerlidir. 38Khz için 26 verilmesi gerekir.
burada yazılanların tamı tamına yarısı çıktı. Yani 38khz için 19 khz, 36 khz için 18 khz.
Bu durumda forumlardan bulduğum picmulticalc hesaplama aracıyla baktım aynı sonuç.
ancak denemeler yoluyla PR2=6
duty=26 değerlerini verdiğimde osiloskopta 38khz ye yakın değerler elde ettim.
Devre hala çok kararlı değil, 100 kere doğru çıkış üretse hala durduk yere çıkış ürettiği oluyor. Bu sıkıntının sebebi ne olabilir?
Not: Kullandığım alıcı göz plastik kılıflı; bu önemli bir sebep olabilirmi?
İpek Hocam verdiğiniz devre harika çalışıyor, üstelik güneşten yada harici güçlü ışık kaynaklarından zerre etkilenmiyor ancak asm bilmediğim için üzerinde ufak değişiklikler yapamadım onun için kullanmadım. Bu mesajı okuyan arkadaşlara fikir vermesi için yazdım bunu.
Merhaba, mz80 kullanabilirsiniz. Gayet hassas ve hızlı bir sensör. 3-80 cm arasında kullanabileceğiniz, oldukça stabil bir algılamaya sahip sensördür. Arkasındaki trimpot ile mesafe ayarlanabilr.