PIC ile devre kurmaktan anlayan üstadlarım lütfen geliniz. (:

Muster

Üye
Katılım
24 Eyl 2013
Mesajlar
4
Puanları
1
Yaş
31
Merhabalar. :) Bu sene Micro Denetleyiciler dersi görüyorum ama konuya yeni girdiğimiz için pek fazla bir bilgim yok hocamız ödev olarak bir sistem verdi ama internet üzerinden anlaşılabilir bir kaynak bulamadım amacım ödevimi sizlere yaptırmak değil ama ilk ödevim olduğu için elimden bir şey de pek gelmiyor. :) Uzman olan abilerim yardımcı olurlarsa sevinirim. :) uzatmadan ödevime geçeyim.

16F84 PIC ile 220V'luk lamba yakan bir devre şeması gerekiyor sadece.

Kullanacağım malzemeler;
1-) 16F84
2-) Kristal
3-) MCLR
4-) A- Kısmı Giriş, B- Kısmı Çıkış
5-) Buton ile çalışma olucak

Sizlerden son ricam devrenin nasıl çalıştığı ile ilgilide ufak bir bilgi verirseniz çok sevinirim. :)
 
Değerli öğrenci arkadaşım öncelikle belirtmem gereken kullanacağın malzemelerin içinde 3-) maddede bulunan mclr bu bir malzeme değildir pic16F84 entegresinin reset ayağıdır... Kesinlikle bu farkı bilmeniz pic ve hocanızın gözünde güzel yer ettirecektir ;)

Pic dediğimiz eleman 5V DC ile çalışır mclr ayağına bir tane 4,7k - 10k arası direnç bağlar ve direncin diğer ucunu da artı 5v a bağlarız bu sayede pic çalışması için sinyali almış olur mclr ayağının ucuna bi buton bağlar butonun diğer ucunu da eksiye bağlarız butona bastığımızda pic resetleme işlemini gerçekleştirir bunu size çizip yolluyacağım.
Buton ile yakıp söndürme olayı ise şöyle açıklayayım:

Buton tek mi olacak yani butona bir defa bastığımızda lamba yanacak ikinci bastığımızda sönecek mi ? yoksa iki adet buton olacak birinci buton lambayı yakmak ikinci buton ise söndürmek için mi kullanılacak ?

220v lambayı yakacağım demişsiniz bu lambayı triyak ile mi yoksa sadece basit bir röle ile mi kontrol edeceksiniz ?

Bana bu açıklamaların cevaplarını verin devreyi çizip açıklamalarını yapıp yollayayım ;)
 
Merhabalar üstadım.
İlk hocamız anlattığı sırada mclr ayrı bir malzeme gibi dediğini hatırlıyorum ama anlaşılan dalgınlığımdan dolayı olsa gerek o noktayı kaçırmışım. :)

Buton tek olacak ilk dediğiniz gibi bir defa bastığımız da yanacak, ikinci basışta sönecek; 220V lambayı röle ile kontrolünü sağlanması gerekli üstadım. :)

Ayrıca; açıklamanız için çok teşekkür ederim üstadım bu konularda yeni olduğum için biraz zorluk çekiyorum anlamakta ama kurban bayramından sonra konulara artık yavaş yavaş hakim olurum. Çok teşekkürler tekrar hocam. :)
 
tctu7.bmp


Resimi yüklediğim şekilde devreyi kurucaksınız hocam.Sonra iş program yazmaya kalacak program yazma işi ise ben en çok proton basic dilini kullanıyorum bu yüzden size programı proton ile yazacağım umarım işinizi görür...

Şimdi ise size yazdığım basit program parçacığını veriyorum...

'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2013 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 07.10.2013 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device 16F84A
TRISB=0' B portunu çıkışa yönlendir
TRISA=255' A portunu girişe yönlendir
XTAL=4' 4 mhz kristal ile çalışacağını bildir.
PORTB=0' B portundaki bütün çıkışları 0 yap yani söndür.


basla:
If PORTA.0=1 Then' butona basılmış mı yani butondan pic'e lojik 1 geliyor ise
While PORTA.0=1' Butondan lojik bir geldiği müddet beprogram wend'e gitsin
Wend ' Butondan lojik bir geliyor ise while ile bu wend arasında döngüye gir
Toggle PORTB.0 ' Rölenin bağlı bulunduğu çıkışı lojik olarak tersle yani 1 ise 0 ve 0 ise 1 yap
EndIf ' Döngüden çık
GoTo basla ' Başlaya geri git
End ' Programın bitiş satırı.


'''''''''''''''''ÇOK ÖNEMLİ NOT'''''''''''''''''''''''''''
' iF EĞER ANLAMINA GELİR THEN İSE ANLAMINA GELİR BU DURUMDA EĞER PORTA.0=1 İSE ŞEKLİNDE ANLAM KAZANIR.
'ENDİF İSE İF DÖNGÜSÜNÜN BİTİŞİDİR
' WHİLE İLE WEND KOMUTLARI İSE VERİLEN KOŞUL DOĞRU OLDUĞU MÜDDET BU İKİ KOMUT ARASINDAKİ İŞLEMİ ÇALIŞTIRIR.
' bU DURUMDA WHİLE PORTA.0=1 OLDUĞU YANİ BUTONUN BASILI OLDUĞU MÜDDET PROGRAM WHİLE İLE WEND ARASINDA HİÇ BİR İŞLEM YAPMADAN
' DÖNGÜYE GİRER VE ELİMİZİ BUTONDAN BIRAKMAMIZI BEKLER ELİMİZİ BUTONDAN ÇEKİNCE...
'TOGGLE PORTB.0 KOMUTU İLE EÖLE ÇEKİLİ İSE BIRAKIR BIRAKMIŞ İSE ÇEKER
' ENDİF İLE ANA DÖNGÜ OLAN İF DÖNGÜSÜNÜN BİTTİĞİ ANLAŞILIR GOTO BASLA İLE BAŞLA ETİKETİNE AKTARILIR
' END KOMUTU DA PROGRAMI SONLANDIRIR FAKAT PROGRAM BASLA İLE GOTO BASLA ARASINDA ENERJİ KESİLİNCEYE DEK DEVAM EDER !!!


Bu arada çizimi yaparken röleye paralel olarak Bir tane 1N4007 diyotunu ters olarak bağlamayı unutmuşum o da artık ellerinizden öper...
 
hocam elleriniz dert görmesin gerçekten çok yardımı dokunacak bana. :) bize sadece çizimi gerekiyordu kodlama kısmına daha geçemedik henüz ama yazmış olduğunuz kodlar işime çok yarayacak çok teşekkür ederim gerçekten. :)

Yalnız üstadım tek ufak bir soru soracağım hocamız kodlamaya geçeceğimiz zaman proteus (ISIS-ARES) kullanıcaz demişti ve C kod dilinden devam edeceğimizi söyledi acaba sizin kullandığınız program ile bizim kullanıcak olan diller arasındaki fark var mı? Varsa hangisini tavsiye edersiniz.? :)
 
delay konulmadan kapılmış bu döngüler sağlıklı çalışmayabilir. Araya bekleme eklemek gerekir Artvinli. Buton kontak sıçramaçı olduğunda hep hata yapacaktır
 
delay konulmadan kapılmış bu döngüler sağlıklı çalışmayabilir. Araya bekleme eklemek gerekir Artvinli. Buton kontak sıçramaçı olduğunda hep hata yapacaktır


Ustam ben bu komutu daha önce realde de kullandım burada ki While wend komutu zaten o dediğiniz işlemi engellemek için konuldu elbette bir miktar delayms koysak daha da güzel olurdu ama gerek olacağını zannetmiyorum sıkıntı çıkmıyor...

Tek sıkıntı butona bastık mı ilk anda 1 komutunu görüyo elimiz butonda olduğu müddetçe while ile wend arasında çalışıyo elimizi butondan çekince toggle komutunu çalıştırıyor başka da bir sorun olduğunu görmedim ama ilginiz için ayrıca teşekkür ederim....

hocam elleriniz dert görmesin gerçekten çok yardımı dokunacak bana. :) bize sadece çizimi gerekiyordu kodlama kısmına daha geçemedik henüz ama yazmış olduğunuz kodlar işime çok yarayacak çok teşekkür ederim gerçekten. :)

[URL="https://www.kontrolkalemi.com/forum/uyeler/muster-294922.html"' Alıntı:
Muster[/URL];516196] Yalnız üstadım tek ufak bir soru soracağım hocamız kodlamaya geçeceğimiz zaman proteus (ISIS-ARES) kullanıcaz demişti ve C kod dilinden devam edeceğimizi söyledi acaba sizin kullandığınız program ile bizim kullanıcak olan diller arasındaki fark var mı? Varsa hangisini tavsiye edersiniz.? :)


Evet hocam C kodlama dili ile bu kodların arasında çok fark var ama C dili daha güzel bir dildir proteus ares isis olarak hiç sıkıntı çekmessiniz zaten gerektiğinde forum sitemize yazın konu ile alakalı olan çok değerli ustalarımız var elimizden geldiğince yardımcı olacaklardır yeter ki ruhumuz paylaşımdan yana olsun....
 
Son düzenleme:
arkadaşlar benimde proje ödevim var ama pıc kullanmayı bilmiyorum proje otomatik kapı(avm girişindeki kapıların prototipini yapıcam)yardımcı olursanız sevinirim şimdiden teşekkürler.
 
arkadaşlar kolay gelsin ,öncelikle ilk defa yazıyorum.Çalıştıgım iş yerinde s7 300 ile bir program oluşturmam gerekiyor.bi kaç değişik programla yaptım uyguladım fakat sağlıklı çalışmadı.senaryo şöyle:bir yerde vision kamera var ,bu kamera bozuk ürünü gördüğünde plc ye input gönderiyor,kamera sinyali plc ye gönderdiği andan itibaren 92 veya 101 ürün saydıktan sonra bozuk ürünü bir valf selenoid hava valfi ile bozuk ürün kasasına atması isteniyo.Fakat ard arda bozuk ürün sinyali geldiğinde hava valfi bozuk ürünleri sağlam ürünlerin olduğu kasaya gönderiyo,yani valf açmıyor ard arda geldiği için ,biz bu senaryoyu kaydırma yöntemiyle yaptık olmadı.Lakin bu sistemin sağlıklı çalışması için fifo lifo ve table komutuyla çalışacağını ümit ediyorum fakat bu komutlara yabancıyım ,yardım edebilecek arkadaşlar varmı
 
Kadirli, konuyu yanlış yere yazmışsınız. Ama öncelikle bilinmesi gereken ürün akış hızı. Mümkünse fotoğraf falan koyabilirseniz daha iyi olur. Benzer uygulama bizde var. Bu işi sayıcı ile yapamazsınız. Encoder kullanmanız gerekli ve encoderin her turunda bir adım ilerletmeniz ve hatalı ürün reject istasyonuna geldiğinde valfinizi ya açısal olarak, ya da bir sensörle hatalı ürünün varlığını algılatıp enerjilemelisiniz. Ayrıca eğer ürün hızı ve üretim hızınız yüksekse tüm bu işleri hızlı giriş/çıkışlarla yapmalısınız.
 

Yeni mesajlar

Forum istatistikleri

Konular
127,966
Mesajlar
913,956
Kullanıcılar
449,611
Son üye
ramazansanli@

Yeni konular

Geri
Üst