avatar_ete

Projeler Hakkında

Başlatan ete, 28 Ağustos 2011, 12:49:14

ete

Burada yayınlanmış olan projeler daha önce başka sitelerde yayınlamış olduğum projelerden oluşmaktadır. Ancak bunlara kısa zamanda yenileri eklenecektir. Bu nedenle siteyi izlemeye devam etmenizi öneriyorum.


Unutmayın Simulasyonda çalıştırılmış bir projenin gerçek devrede çalıştırılması için bazı şartlara uyulması gerekiyor. Bir çok arkadaşımız bu konuda hata yapıyor ve sonunda devrelerin çalışmadığına kanaat getiriyorlar. Sizinde hataya düşmemeniz için aşağıda belirtilen husulara dikkat etmenizi öneririm.






a) Simulasyon programları bazı varsayımlar ile çalışırlar. Bunların başında besleme voltajını siz bağlamasanızda işlemci çalışır. Bunun nedeni işlemciye besleme voltajı verilmiş kabul edililir. O halde sizin kendi gerçek devrenizde ilk dikkat edeceğiniz husus uygun bir besleme voltajının işlemciye verilmesi olmalıdır. Gerçek devre yapılırken  şayet büyük akım çekilmeyecek ise (LCD ışığı bağlanmayacak ise) normal şartlarda 7805 kullanılarak 5V luk regüle devresi hazırlanabilir. Ancak 7805 yinede büyükçe bir soğutucuya bağlanmalıdır. Çekilen akım yüksek ise, önerim devrede LM2575 kullanılması yönündedir. Bu regülatör anahtarlamalı çalıştığından ısınma oranı çok daha düşüktür ve stabiliteside daha iyidir. Özellikle motor ve birden fazla röle kullanılan devrelerde kesinlikle besleme katını LM2575 veya LM2576 ile yapmanızı öneririm.
b) İkinci husus İşlemcilere bağlı olması gereken kristal ya da rezonatörler genelde devrelerde gösterilmemiştir. Çünki bunuda simulasyon programları bağlanmış kabul eder. Bu nedenle gerçek devrenizde kristal yada rezonatör kullanılıyor ise onu bağlamanız veya işlemcide dahili osilatör kullanılıyor ise programdan bunun aktif edilip edilmediğini kontrol etmelisiniz. Kısaca projeyi yapmadan önce programdaki sigorta ayarlarına bakılmasını ve şayet orada;

@ DEVICE pic16F628, XT veya XT yerine HC gibi ifadeler kullanılmış ise bu işlemcilere mutlaka programlarda belirtilen frekanslarda kristal Ya da rezonatör bağlanması gerekir.
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT şeklinde ifadeler yer alan işlemciler ise dahili osilatörleri kullandıklarından herhangi bir şey bağlanması gerekmemektedir.
c) Üçüncü önemli husus, her işlemcinin bir MCLR (reset) pini bulunmaktadır. Normal şartlarda bu pin bir adet 1K-10K arası bir dirneç ile +5V ta bağlanmalı (pullup) dır.

Ancak 16F628 gibi bazı işlemcilerde bu pin giriş pini olarak kullanılabileceği için RESET özelliği iptal edilebilmektedir. Bu nedenle programın yine sigortalar kısmına bakılıp;

@ DEVICE pic16F628, MCLR_off şeklinde bir ifade var ise bahsi geçen direncin bağlanmaması ama bunun yerine ;

@ DEVICE pic16F628, MCLR_on gibi bir ifade var ise pullup direncininbağlanması gerekir.


d) Devrede LCD kullanılıyor ise bacak bağlantılarına çok dikkat etmelisiniz. Ayrıca devrelerde LCD nin 3 nolu bacağına bağlanması gereken kontrast ayar trimpotu genelde çizilmez. Ama gerçek devrede bunun yer alması gerekir. 1 adet 10K -22K arası bir ayarlı direnç kullanılmalı direncin gezinen ucu (orta uç) LCD nin 3 nolu bacağına bağlanmalı , trimpotun kalan uçlarından birisi +5V ta diğeride GND ye bağlanmalıdır. İlk çalıştırmada ekranda karekterler belirinceye kadar bu trimpot ayarlanmalı ve uygun ayardan sonra bir daha bu trimpota dokunulmamalıdır.  En çok yapılan hatalardan biriside LCD arka plan ışığının direk bpic beslemesine bağlanmasıdır. LCD ışıkları genelde 4,1 yada 4,2V ile çalışırlar. Ortalama çektiklari akım 100 ma dolayındadır. Bu tip ışıklar +5V ta 10 Ohmluk yarım waatlık dirneç ile bağlanmalıdır. SOn zamanlarda Led ışıklı LCD lerde çıkmıştır. Şayet ekran aydınlatması led ise  1 adet 47 Ohmluk direnç ile +5V ta bağlanmaları daha uygun olacaktır.
e) Gerek devrelerde Pic in besleme bacaklarına en yakın yere ve mümkünse direk üstlerine 100nf kondansatör bağlanmalıdır. Pek çok projede sırf bu kondansatörün olmaması nedeni ile abuk subuk çalışan devreler gözlemlediğim için önemli bir uyarı olarak kulağınızın bir köşesine bu bilgiyi mutlaka sabitleyin.
f) Picler maksimum 5V ile çalışırlar. Buna bağlı olarak genel bir kaideden söz edebiliriz.  Pic bacaklarına ister ADC olsun ister başka bir analog sinyal olsun ve isterse digital sinyalolsun seviyesi 5V dan daha yüksek bir sinyal bağlayamayız. Bağlar isek pic derhal bozulacaktır. Bağlamak zorunda kalırsak gerilim bölücü (bilemeyenler gerilim bölücü Ya da voltaj bölücü terimlerini internetten araştırsın) kullanarak gelen voltaj seviyesini 5V seviyesine düşürmek gerekir.
g) ADC okuması yapılan piclerde genelde referans voltajı olarak picin beslemesi kullanılır. Ancak devrede akım çeken bri takım elemanlar var ise anlık da olsa voltajda yaşanan düşmeler ADC okumlarının sürekli oynamasına sebep olurlar. Bu gibi durumlarda ya akım çeken elemanları devreden ayırmak yada pcin referans voltajını stabil bir kaynaktan vermek lazımdır.

ferhatcomert

Merhaba ete hocam 7 segment nem göstergesini kapatmışınız ama bunun baskı devre şeması varmı acaba?

ete

Konuyu yeniden açıyorum.
Projenin baskılı devresi yoktur maalesef.

Ete

TB2NHS

Alıntı yapılan: ete - 28 Ağustos 2011, 12:49:14
Burada yayınlanmış olan projeler daha önce başka sitelerde yayınlamış olduğum projelerden oluşmaktadır. Ancak bunlara kısa zamanda yenileri eklenecektir. Bu nedenle siteyi izlemeye devam etmenizi öneriyorum.


Unutmayın Simulasyonda çalıştırılmış bir projenin gerçek devrede çalıştırılması için bazı şartlara uyulması gerekiyor. Bir çok arkadaşımız bu konuda hata yapıyor ve sonunda devrelerin çalışmadığına kanaat getiriyorlar. Sizinde hataya düşmemeniz için aşağıda belirtilen husulara dikkat etmenizi öneririm.






a) Simulasyon programları bazı varsayımlar ile çalışırlar. Bunların başında besleme voltajını siz bağlamasanızda işlemci çalışır. Bunun nedeni işlemciye besleme voltajı verilmiş kabul edililir. O halde sizin kendi gerçek devrenizde ilk dikkat edeceğiniz husus uygun bir besleme voltajının işlemciye verilmesi olmalıdır. Gerçek devre yapılırken  şayet büyük akım çekilmeyecek ise (LCD ışığı bağlanmayacak ise) normal şartlarda 7805 kullanılarak 5V luk regüle devresi hazırlanabilir. Ancak 7805 yinede büyükçe bir soğutucuya bağlanmalıdır. Çekilen akım yüksek ise, önerim devrede LM2575 kullanılması yönündedir. Bu regülatör anahtarlamalı çalıştığından ısınma oranı çok daha düşüktür ve stabiliteside daha iyidir. Özellikle motor ve birden fazla röle kullanılan devrelerde kesinlikle besleme katını LM2575 veya LM2576 ile yapmanızı öneririm.
b) İkinci husus İşlemcilere bağlı olması gereken kristal ya da rezonatörler genelde devrelerde gösterilmemiştir. Çünki bunuda simulasyon programları bağlanmış kabul eder. Bu nedenle gerçek devrenizde kristal yada rezonatör kullanılıyor ise onu bağlamanız veya işlemcide dahili osilatör kullanılıyor ise programdan bunun aktif edilip edilmediğini kontrol etmelisiniz. Kısaca projeyi yapmadan önce programdaki sigorta ayarlarına bakılmasını ve şayet orada;

@ DEVICE pic16F628, XT veya XT yerine HC gibi ifadeler kullanılmış ise bu işlemcilere mutlaka programlarda belirtilen frekanslarda kristal Ya da rezonatör bağlanması gerekir.
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT şeklinde ifadeler yer alan işlemciler ise dahili osilatörleri kullandıklarından herhangi bir şey bağlanması gerekmemektedir.
c) Üçüncü önemli husus, her işlemcinin bir MCLR (reset) pini bulunmaktadır. Normal şartlarda bu pin bir adet 1K-10K arası bir dirneç ile +5V ta bağlanmalı (pullup) dır.

Ancak 16F628 gibi bazı işlemcilerde bu pin giriş pini olarak kullanılabileceği için RESET özelliği iptal edilebilmektedir. Bu nedenle programın yine sigortalar kısmına bakılıp;

@ DEVICE pic16F628, MCLR_off şeklinde bir ifade var ise bahsi geçen direncin bağlanmaması ama bunun yerine ;

@ DEVICE pic16F628, MCLR_on gibi bir ifade var ise pullup direncininbağlanması gerekir.


d) Devrede LCD kullanılıyor ise bacak bağlantılarına çok dikkat etmelisiniz. Ayrıca devrelerde LCD nin 3 nolu bacağına bağlanması gereken kontrast ayar trimpotu genelde çizilmez. Ama gerçek devrede bunun yer alması gerekir. 1 adet 10K -22K arası bir ayarlı direnç kullanılmalı direncin gezinen ucu (orta uç) LCD nin 3 nolu bacağına bağlanmalı , trimpotun kalan uçlarından birisi +5V ta diğeride GND ye bağlanmalıdır. İlk çalıştırmada ekranda karekterler belirinceye kadar bu trimpot ayarlanmalı ve uygun ayardan sonra bir daha bu trimpota dokunulmamalıdır.  En çok yapılan hatalardan biriside LCD arka plan ışığının direk bpic beslemesine bağlanmasıdır. LCD ışıkları genelde 4,1 yada 4,2V ile çalışırlar. Ortalama çektiklari akım 100 ma dolayındadır. Bu tip ışıklar +5V ta 10 Ohmluk yarım waatlık dirneç ile bağlanmalıdır. SOn zamanlarda Led ışıklı LCD lerde çıkmıştır. Şayet ekran aydınlatması led ise  1 adet 47 Ohmluk direnç ile +5V ta bağlanmaları daha uygun olacaktır.
e) Gerek devrelerde Pic in besleme bacaklarına en yakın yere ve mümkünse direk üstlerine 100nf kondansatör bağlanmalıdır. Pek çok projede sırf bu kondansatörün olmaması nedeni ile abuk subuk çalışan devreler gözlemlediğim için önemli bir uyarı olarak kulağınızın bir köşesine bu bilgiyi mutlaka sabitleyin.
f) Picler maksimum 5V ile çalışırlar. Buna bağlı olarak genel bir kaideden söz edebiliriz.  Pic bacaklarına ister ADC olsun ister başka bir analog sinyal olsun ve isterse digital sinyalolsun seviyesi 5V dan daha yüksek bir sinyal bağlayamayız. Bağlar isek pic derhal bozulacaktır. Bağlamak zorunda kalırsak gerilim bölücü (bilemeyenler gerilim bölücü Ya da voltaj bölücü terimlerini internetten araştırsın) kullanarak gelen voltaj seviyesini 5V seviyesine düşürmek gerekir.
g) ADC okuması yapılan piclerde genelde referans voltajı olarak picin beslemesi kullanılır. Ancak devrede akım çeken bri takım elemanlar var ise anlık da olsa voltajda yaşanan düşmeler ADC okumlarının sürekli oynamasına sebep olurlar. Bu gibi durumlarda ya akım çeken elemanları devreden ayırmak yada pcin referans voltajını stabil bir kaynaktan vermek lazımdır.

Sayın hocam iyi çalışmalar altı çizili kısım ile ilgili yaptığım bir devrede size bir kaç sorum olacak,
ben  pic 16f628 in pb.5 ve 6 numaralı bacaklarına ayrı ayrı 78l05 bağladım pic pini ve 78l05 in arasınada 670 ohm dirençele bağladım
programada  "if pb.5=1 and pb.6=1 then goto git" gibi bir konut yazdım amaç portb.5 ve 6 ya 1 (5v) olunca işlem yapması ancak istediğim gibi bir stabilite yakalayamadım, sizin bir öneriniz varmı? bu duruma iyi çalışmalar 

kartal_0689

#4
Arkadaşım,

Sanırım yeni uğraşmaya başladın bu işlerle.
Basit olarak 1 ya da 0 mantığı oluşturmak için pull-up ya da pull down yöntemleri kullanılır.
Bu da ya dirençle olur ya da işlemcinin dahili pull-up ları var sa onları aktif etmekle olur.
Bence internetten bu bahsettiğim yöntemlere bir bak. Ayrıca yazdığın yazılım ve devre şeması olsun bağlantı şeması olsun
vermemişsin, kimse bu şekilde yardım edemez.

TURKEY/ANK

ete

Stabilite yoksa pinler float yani boşta geziniyordur. Bu durumda bir high tarafına bir low tarafına geçer ve yanlış algılamaya sebep olurlar.
Tarifine bakılırsa PortB.5 ve PORTB.6 pinlerine HIGH veriyorsun ve high olunca bir iş yapmasını istiyorsun. Bu durumda aynı pinler LOW da (PULL_DOWN) beklemesi gerekiyor ki HIGH olunca işlemci aradaki farkı anlayabilsin yoksa müneccim değil işlemci nasıl anlayacak kimin ne zaman high olduğunu. Fark yaratman gerekiyor. Muhtemelen bu farkı yaratamamışsındır.
Ortada ne program var ne şema var havaya konuşuyoruz işte.
Bacaklara voltaj regülatöründen bağlantı yapmak bence son derece gereksiz. O işlemciye zaten bir yerden bir 5V vermen gerekiyor. AYnı yerden HIGH versen aynı işi görürdü. Ayrıca voltaj regülatörü bağlamanın bir mahsuru yok ama tehlikesi var. Olurda ters bir şeyler bağlarsan her şey berbat olur yanar elemanların. Bu nedenle devreyi karışık hale getirmenin bir anlamı yok.

Ete

kartal_0689

"TB2NHS" arkadaşım,

senin öğrenmen için birkaç birşey söyleceğim.
Bu tarz işler öyle pat diye öğrenilmiyor ne yazıkki.
Belli ki öğrenmek istiyorsun ama çaba göstermiyorsun gibi hissediyorum.
öncelikle biraz araştır. Bi bak bakalım pic ile giriş çıkış işleri nasıl yapılıyor.
Sağlıklı olarak pic nasıl kontol edilir. Bunları öğren ve sonra bir led yakıp söndür.
Çünkü aslında bütün iş bitleri 1 ve 0 yapmaktır.

Bizler de ilk başlarda hiçbir şey bilmiyorduk. Kimse bilemez. Belki hala tam olarak
bilemiyordur. Çünkü pic işlerinin en zevkli yanı sürekli araştırmaktır.
Sende biraz araştır, sonra zevkine sende varacaksın.
TURKEY/ANK

TB2NHS

#7
Alıntı yapılan: kartal_0689 - 25 Nisan 2014, 10:39:21
"TB2NHS" arkadaşım,

senin öğrenmen için birkaç birşey söyleceğim.
Bu tarz işler öyle pat diye öğrenilmiyor ne yazıkki.
Belli ki öğrenmek istiyorsun ama çaba göstermiyorsun gibi hissediyorum.
öncelikle biraz araştır. Bi bak bakalım pic ile giriş çıkış işleri nasıl yapılıyor.
Sağlıklı olarak pic nasıl kontol edilir. Bunları öğren ve sonra bir led yakıp söndür.
Çünkü aslında bütün iş bitleri 1 ve 0 yapmaktır.

Bizler de ilk başlarda hiçbir şey bilmiyorduk. Kimse bilemez. Belki hala tam olarak
bilemiyordur. Çünkü pic işlerinin en zevkli yanı sürekli araştırmaktır.
Sende biraz araştır, sonra zevkine sende varacaksın.

Arkadaş bilip bilmeden tanımadan etmeden bir mesaj okuyup keyfe keder yargılama yapma olurmu?
Benim sorduğum kısım koskoca bir programın bir kesiti sağdece ve oda bazen olan belli belirsiz bir stabilizasyon sıkıntısı , ama yinede cevapların için saol bana olmasada gerçekten yeni başlayan birine belki bir yardımı olur. Ayrıca led yakıp söndürmemiş (bilmeyen) birisi seninde söylediğin gibi çaat diye benim sorduğum gibi gelsin bu soruyu sorsun ben adımı değiştiririm.

TB2NHS

#8
Alıntı yapılan: ete - 25 Nisan 2014, 09:13:56
Stabilite yoksa pinler float yani boşta geziniyordur. Bu durumda bir high tarafına bir low tarafına geçer ve yanlış algılamaya sebep olurlar.
Tarifine bakılırsa PortB.5 ve PORTB.6 pinlerine HIGH veriyorsun ve high olunca bir iş yapmasını istiyorsun. Bu durumda aynı pinler LOW da (PULL_DOWN) beklemesi gerekiyor ki HIGH olunca işlemci aradaki farkı anlayabilsin yoksa müneccim değil işlemci nasıl anlayacak kimin ne zaman high olduğunu. Fark yaratman gerekiyor. Muhtemelen bu farkı yaratamamışsındır.
Ortada ne program var ne şema var havaya konuşuyoruz işte.
Bacaklara voltaj regülatöründen bağlantı yapmak bence son derece gereksiz. O işlemciye zaten bir yerden bir 5V vermen gerekiyor. AYnı yerden HIGH versen aynı işi görürdü. Ayrıca voltaj regülatörü bağlamanın bir mahsuru yok ama tehlikesi var. Olurda ters bir şeyler bağlarsan her şey berbat olur yanar elemanların. Bu nedenle devreyi karışık hale getirmenin bir anlamı yok.

Ete

Bu bahsettiğim pinlere dışarıdan 12volt gelecek 5.1v zeneer diod + direnç ile denediğimde 78l05 e nazaran daha büyük sorunlar çıktı high low değerleri okumada, 12 volt geldiği ve pic in pinderine de max 5v girebildiğimiz içi 78l05 kullandım. 78l05 kullanmamın sebebide pic pin i herhangibir yüksek akım çekmeyip yaklaşık ölçümlerimde 10ma gibi bir değer çıkmasıdır. havaya konuşmuyorsunuz şemayıda gönderirim. Benim sormak istediğim yukarıda da yazdığım gibi bir başka öneriniz varmı.

kartal_0689

Arkadasim oncelikle sinirlenme, burada kimse kimseyi bilmiyo diye asagilamaz. Yazdiklarindan bu sonuc cikiyo bende bu sekilde cevap verdim.

Disardan harici sabit 12 volt vereceksen direncle gerilimi bolebilirsin,bu sekilde ister gerilim oku istersen 1-0 durumuna bak.

Harici baglayacagin bu 12 volt eger riskli bir gerilim olusturursa yada daha buyuk gerilimleri pic ile (1-0) durumuna bakmak istersen o zaman opto coupler ile kontrol en temizidir. Ayrica seni kizdirdigim icin kusura bakma.
TURKEY/ANK

fero

hocam ii günler. picbasic ile joystick modülünü (yukarı aşağı bir pot, sağa sola bir pot) nasıl kullnabilrim?? örnek verebilrimisiniz??

ete

#11
Joystick tipi pot modüllerde yukarı aşağı bir pot sağa sola ise diğer bir pot çalışır.
Her bir pot'un alt uçlarını GND ye ve üst uçlarınıda +5V ta bağlamak gerekir.
Joystick orta konumda dururyorken pot ADC karşılık değerleri 511-512 dolayındadır.
Öncelikle yukarı aşağı pot'unu ele alırsak,
Kolu yukarı ittirdiğinizde pot ADC karşılığı 511-1023 arasında potun pozisyonuna bağlı olarak bir değer verir.
Kolu aşağı çektiğinizde ise pot ADC karşılıkları 511-0 arasında değerler verirler. Bu değerlerden kolun nerelerde olduğunu kolaylıkla anlayabilirsiniz.

Benzer şekilde sağa - sola hareketde ise bir yanda pot 0-511 aralığında diğer yönde ise 511-1023 aralığında değerler üretir.
Kolu her iki pota da değer verdirecek şekilde Sağa -yukarı konuma alırsanız her iki pot dan da konuma göre değer okursunuz. Kısaca 511 civarı birdeğerden farklı bir değer okuduğunuzda kola hareket verildiğini anlamış olursunuz.

ADC okumanın örenği olmaz artık. Bir sürü projede bunun örneğini verdim ayrıca Basic derslerinde de detaylı anlatıldı.
Geriye kontrol ettiğin mekanizma ne ise ona uygun bir kodu yukarıdaki mantığa göre yazmak kalıyor. İşin bu kısmına sen girmelisin ve takıldığın yerde yardım istemelisin. Hep söylerim işin geneli için örnek istemeyin. İşin ucundan tutun sıkıştığınız noktada spesifik yardımlar isteyin böylece daha kolay cevap alırsınız.

Yinede örnek olsun diye bir iki karalama yapayım.
Yukarı aşağı potu analog-0 da ve sağa sola potu da Analog-1 de bağlı olsun.
ADCIN 0,HAMA
ADCIN 1,HAMB
IF HAMA>511 AND HAMB=511 THEN KOL YUKARIDA
IF HAMA<511 ABD HAMB=511 THEN KOL AŞAĞIDA
IF HAMA=511 AND HAMB>511 THEN KOL SOLDA
IF HAMA=511 AND HAMB<511 THEN KOL SAĞDA
IF HAMA>511 AND HAMB>511 THEN KOL YUKARIDA-SOLDA
IF HAMA>511 AND HAMB<511 THEN KOL YUKARIDA-SAĞDA
....

Gerisinide artık kendin bulabilirsin sanırım.
Bir konuya dikkat çekmek isterim. Bazı modullerde joystick yayları yeterince kuvvetli olmuyor ve bunlar potu tam ortada tutamıyorlar. Bu durumda pot hareketsiz iken okunması gereken 511 değeri yerine 508-511 yada 511-514 aralığında değerler okunabiliyor. Bu nedenle boşta tespiti için IF HAMA=511 demek yerine IF HAMA>509 and HAMA<514 THEN POT ORTADA şeklinde bir aralık kullanmak uygun olacaktır.

Ete

fero

#12
Hocam cok teşekkürler cok faydalı oldu. İyi calışmalar.

edit:yazım kurallarına dikkat lütfen!!!!!!!!!!!!!!!!!!

Powered by EzPortal