Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

Picle ilgili sorun

Başlatan Okan12345, 05 Mart 2014, 14:11:23

Okan12345

Iyi Günler Arkadaşlar.

Aşağıda resmini ve kodunu görmüş oldugunuz devrede sorun var daha doğrusu picde.

Proteusde denediğimde hiç bir sorun yoktur. Buttona bastığımda yanıyor bırakınca sönüyor.

Ama Breadboard üzerinde deniyorum. Pice enerji verdikte led butona basmadan yanıyor ama butona bastığımda parlaklığı bir az daha artıyor. Bir türlü anlamadım.
Devrede yanlışlık yok Picin vss vdd basağına 100nf kondansator bagladim ve 4.7v çalıştırıyorum.

Lütfen yardımcı olurmusunuz. Acaba kodda unuttuğum komutmu var? Nedir?

Devre resmi



Buda kodu
'****************************************************************
'*  Name    : Robot Projesi.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 24.02.2014                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ DEVICE PIC12f675, intrc_osc_noclkout, wdt_on, pwrt_on, mclr_off, protect_off, intrc_osc_noclkout

define OSCCAL_1K 1
CMCON = 7    ' Tum komporator pinleri kapatildi hepsi giris cikis
ANSEL = 0    ' Tum Analog pinleri kapatildi hepsi IO
option_reg.7=1

TrisIO.0=1 ' I giris 0 cikis sayilir
TRisIO.1=1
TrisIO.2=0
TrisIO.3=1
TrisIO.4=1
TrisIO.5=1
GPIO = %00000000


Basla:       
PAUSE 1
if GPIO.3=1 THEN 
high GPIO.2
else 
low GPIO.2
endif
goto basla
end


ferit06

Başka bir mesajında da PIC12F675 kullanmışsın. Onda da GP3 te problemin var.   Buton bağlama şeklin yalnış. Butona basılı değilken GP3 te 0 mı var yoksa 1 mi buna nasıl karar vereceksin?
Butona basılı değil iken senin göremeyeceğin hızda LED yanıp sönüyor(50Hz) bu nedenle parlaklığı butona basılmamış duruma göre daha az. Buton nasıl Bağlanır? Onu da araştır.
O kadar giriş var iken GP3 ü kullanma amacın nedir? MCLR_OFF ve  Dahili osilator kullanımında  bu PIC i tekrar programlayamabilirsin.

mustafa_cmbz



Şemanı gerçekte böyle düzenle ve koduda aşağıdaki gibi derleyip pic'ine yükle düzelme olacaktır.

Bu tarz şeylerde şayet diğer pinler boş ise mclr ucunu kullanmanızı tavsiye etmem..



DEVICE = 12F675
XTAL = 4 

CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_OFF, BODEN_OFF, CP_OFF, MCLRE_OFF
define OSCCAL_1K 1
CMCON = 7    ' Tum komporator pinleri kapatildi hepsi giris cikis
ANSEL = 0    ' Tum Analog pinleri kapatildi hepsi IO
OPTION_REG.7=1

TRISIO.0=1 ' I giris 0 cikis sayilir
TRISIO.1=1
TRISIO.2=0
TRISIO.3=1
TRISIO.4=1
TRISIO.5=1
GPIO = %00000000


Basla:       
PAUSE 1
IF GPIO.3=1 THEN 
HIGH GPIO.2
ELSE 
LOW GPIO.2
ENDIF
GOTO Basla
END

kudretuzuner

Merhaba,
MCLR pinini,kontrol pini olarak kullanmayınız.Uygun bir direnç ile 5v bağlayın buton ile de şaseye bağlayın.Her butona basışınız PIC'i reset edecektir.Yazılımda da buton ile ledi kontrol etmek isterseniz ayrı bir pini kontrol pini olarak kullanırsanız çalışacaktır.Kullandığınız pic programlama diline pek hakim değilim.
Amatör

Okan12345

#4
Peki Hocam. Mclr_off komutunu verdigimizde Mclr iptal edilmiyormu? Ayrıca Preteusda neden sorunsuz calisiyor? Yoksa Proteus kendisi automatik pull_up mu yapıyor?

mesaj birleştirme:: 05 Mart 2014, 22:07:10

Alıntı yapılan: ferit06 - 05 Mart 2014, 14:21:21
Başka bir mesajında da PIC12F675 kullanmışsın. Onda da GP3 te problemin var.   Buton bağlama şeklin yalnış. Butona basılı değilken GP3 te 0 mı var yoksa 1 mi buna nasıl karar vereceksin?
Butona basılı değil iken senin göremeyeceğin hızda LED yanıp sönüyor(50Hz) bu nedenle parlaklığı butona basılmamış duruma göre daha az. Buton nasıl Bağlanır? Onu da araştır.
O kadar giriş var iken GP3 ü kullanma amacın nedir? MCLR_OFF ve  Dahili osilator kullanımında  bu PIC i tekrar programlayamabilirsin.

GPIO=0 komutunu verdigimizde giris 0 olmuyormu?

ferit06

GPIO.x=0 dediğinizde x li pin çıkış konumuna gelir(basicte Trisio.x=0 olur,  diğer dillerde olurmu bilmem)ve   çıkış 0 olur. 

Mclr_off dediğinizde Harici reset kullanmayacağım demiş olursunuz ve mclr ye ait pini giriş olarak kullanabilirsiniz ancak, dahili osilatorü de kullandığınızda eğer programlayıcınızda engelleyici bir seçeneğiniz yoksa programlama sırasında PIc çalışmaya başlar ve  progranızı tam olarak yükleyemezsiniz ve PIC i tam olarak silmeden(bu arad cod protect te aktif olabilir) yeniden program yükleyemezsiniz.

Okan12345

Alıntı yapılan: ferit06 - 06 Mart 2014, 08:47:24
GPIO.x=0 dediğinizde x li pin çıkış konumuna gelir(basicte Trisio.x=0 olur,  diğer dillerde olurmu bilmem)ve   çıkış 0 olur. 

Mclr_off dediğinizde Harici reset kullanmayacağım demiş olursunuz ve mclr ye ait pini giriş olarak kullanabilirsiniz ancak, dahili osilatorü de kullandığınızda eğer programlayıcınızda engelleyici bir seçeneğiniz yoksa programlama sırasında PIc çalışmaya başlar ve  progranızı tam olarak yükleyemezsiniz ve PIC i tam olarak silmeden(bu arad cod protect te aktif olabilir) yeniden program yükleyemezsiniz.
Yani Böylece Mclr pinine 0v vermeye gerek vramı? Vede dahili pull-down yapılamıyormu?

ferit06

"Yani Böylece Mclr pinine 0v vermeye gerek vramı? Vede dahili pull-down yapılamıyormu?"

Pinin giriş/çıkış özelliğini bilmeniz gerekir.

Siz ilk devrenizde giriş olarak tanımladığınız Mclr(GPIO.3)  pinini   GPIO.3=0 demekle bunu ben dışarıdan müdahele etmediğim sürece bu pinin başlangıç tanımı 0 seviyesinde olsun diyemezsiniz.  GPIO.3=0 demekle  bu pini hem çıkış olarak ayarlamış olursunuz( GPIO.3=1 demekle de çıkış olur) hemde çıkışın 0 seviyesinde olmasını söylesiniz. Dahili pull down diye bir kavram olduğunu zannetmiyorum( en azından 8 bit PIC ler için).


Okan12345

#8
Nasıl yanı anlamadım.

GPİO=0 komutu ne anlama geliyor????

Yani o zaman pull-down yapmama ne gerek var? 

Mclr_off komutu ne anlama geliyor? Bu komutu verdiğimizde Mclr iptal olmuyormu yani?


bayelektronik

mclr yi kapattığında o pini giriş olarak kullanabilirsin sıkıntı yok.fakat dışardan programlama yapıyorsan icsp ile bazen programlamada sıkıntı çıktığı oluyor o yüzden kullanılması tavsiye edilmiyor.senin yaptığın devrede hatalı.isiste çalışır fakat gerçekte sıkıntı çıkarır. butona basmadığın anlarda pin boşta kalıyor.bir dirençle pull down yapmalısın.ve lede de direnç bağlamalısın yukarda mustafa arkadaşın devresi uygun.bazı picler pinlerini yazılım ile pull up çeker fakat senin devren buna uygun değil sen pull downa bir direnç ile çekmelisin

kudretuzuner

#10
"Peki Hocam. Mclr_off komutunu verdigimizde Mclr iptal edilmiyormu? Ayrıca Preteusda neden sorunsuz calisiyor? Yoksa Proteus kendisi automatik pull_up mu yapıyor?"
Merhaba,
Proteus bazı eksik bilgileri gözardı eder ve sistemi çalıştırır.İsiste simule ettiğiniz projeyi protobordta her zaman çalıştıramayabilirsiniz.Özetle,isiste de çalışırken sanki protobordta çalışıyormuş gibi tüm elemanları yerli yerine uygun değerlerde kullanınız.Ayrıca PIC projelerinde boş pin bırakmayınız.Boş kalan pinleri yazılımınız gereği ne ise ya pull up veya pull down yapınız.Kolay gelsin.
Amatör

ete

Basit bir olayı büyüttünüz ve olay amacından uzaklaştı sanki.
Devrede hata yok eksik var. Programda da hata yok.
GPIO.3 pini aynı zamanda MCLR bacağıdır ve sigorta ayarlarından MCLR özelliği iptal edilebilir.
Bu durumda o pin yalnızca giriş olarak kullanılabilirki arkadaşta öyle yapmış zaten.

Şekilde görüleceği üzere zaten o pinin Pull-down da beklemesi gerekiyor. Bu nedenle bir direnç ile GND ye çekilmesi gerekir.
Aksi halde float denilen kararsız konumda kalır ve bir HIGH bir LOW olarak programı meşgul ederki burada anlatılanda odur.

Pic çıkış voltajı 5V dur ve led bu voltajda çalışmaz. Sİmulasyon da olsa seri 220-470 ohm arası bir direnç bağlanması gerekir.
Eski versiyon İsis ler buna pek önem vermiyordu ama yeni nesil versiyonlar artık bunu önemsemekte ve devreyi abuk subuk çalıştırmaktadır.

Sonuç olarak MCLR bacağı seçimli olan işlemcilerde bu bacağın MCLR özelliği iptal edilerek yalnızca giriş olarak rahatlıkla kullanılabilir.
Bazı işlemcilerde bu bacağın dahili Pullup özelliği olmasına rağmen pek çoğunda da yoktur. Kullanırken bunlara dikkat edilirse sorun çıkmaz.

Ete



Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Okan12345

Çok Teşekkür ederim Ete Hocam arkadaşlar Sizede çok teşekkür ederim