pic12f675 ve mq2

Başlatan yolcu27, 12 Aralık 2017, 17:21:23

yolcu27

12f675 ve mq2 kullanarak sensor kartı yapmaya çalışıyorum ama başaramadım sizce nedir hatam?  mq2 kartımda 4 bacak var  analog cıkıs dijital cıkıs  vcc ve gnd mevcut.

ben an0 a analog cıkısı baglıyorum. dijital çıkışı boşa bırakıyorum ama olmuyor bir türlü. Arduino ile denedim sorun yok sensörde orada çalışıyor.

kodlarım

@ DEVICE pic12F675                                                    
@ DEVICE pic12F675, WDT_ON             
@ DEVICE pic12F675, PWRT_ON             
@ DEVICE pic12F675, PROTECT_OFF       
@ DEVICE pic12F675, MCLR_off           
@ DEVICE pic12F675, INTRC_OSC_NOCLKOUT
DEFINE  ADC_BITS 8               'A/D çevirim sonucu kaç bit olacak
DEFINE  ADC_CLOCK 3                 'Clock kaynağı (3=rc)
DEFINE  ADC_SAMPLEUS 50               'Şarj  zamanı mikro saniye cinsinden.
ADCON0=%00001110            '7. bit 1  yapıldı 8 bit sonuç almak için.

GPIO=%000001

deger var byte

pause 200

basla:

adcin 0, deger

if deger>180 then gpio.1=1
if deger<180 then gpio.1=0
  pause 50
     
goto basla
                         

çizimi ekliyorum

onurinci

ben bunlarıda ilave ediyorum

CMCON= 7 : ANSEL= %00000001

Maxim

o sensörde dijital çıkış yok benim bildiğim

ete

12F675 iişlemci bilmeyenler için belalıdır. Belası dahili OSC kullanıldığı zaman ortaya çıkar.
Çünki fabrikasyon Dahili OSC kalibrasyon ayarı yapılır ve son program adresine ($3FF 'e) kayıt edilir bu kalibrasyon değeri.
İŞlemciyi direk silerseniz bu bilgide silinir. Yada programda gereken tedbiri almazsanız üzerine program yazılır ve kalibrasyon değeri silinir. Silindikten sonra o işlemciden hayır gelmez. Çünki başlar abuk subuk çalışmaya. OSC si düzgün çalışamadığı için ya hiç çalışmıyormuş gibi olur yada o kadar yavaş çalışırki duruyor anırsınız.
Yapılacak iş şunlar;
1. Öncelikle programa;
DEFINE OSCCAL_1K 1  'bu komut mutlaka olacak OSCCAL değerini yeniden pice yazdırıyor
komut satırını baş tarafa ilave etmek gerekiyor. Bu komut işlemciye program yazılırken önce son adrestekş kalibrasyon değerini okuyup yazılacak programa ekler ve bu bilgiyi yeniden yerine yazar. Bu komut omaz ise kalibrasyon bilgisi silinir.

2.Daha sonra işlemciyi programlayıcıya takıp READ komutu ile içini bir okumak gerek. Son adrese bakıp orada  ne kayıtlı olduğuna bakmak gerek. Şayet 3F34 3F38 gibi rakamlar var ise kalibrasyon bilgisi var silinmemiş demektir. Ama 3FFF bilgisi var ise silinmiş demektir.
Silinmiş ise bir PICKIT2 programlayıcı kullanarak bu kalibrasyon bilgisi yeniden oluşturulabilir.
Ete

yolcu27

hocam brenner8 kart kullanıyorum usburn programı ile pic12f675 i takıp algılatınca kendisi otomatik olarak silip silme butonunu pasif ediyor oscall değerlerini filan yeniden yüklüyor filan sanrım :) daha önce aynı şekilde çok programlayıp üzerine başka program yazdığım oldu onda sorun olduğunu düşünmüyorum. kodlarda bir sorunum var orasını anlamış değilim:)

Powered by EzPortal