Devre Şeması:
LDR , Ortamdaki ışığın şiddetine göre üzerine düşen direnç değerini
ters orantılı olarak ayarlayabilen bir
optik sensör çeşididir. Yani
aydınlıkta az direnç, karanlıkta yüksek direnç gösteren devre
elemanlarıdır. Devrede 555 entegresi kullanılmıştır. RV1 potansiyometresi ile aydınlık-karanlık sınırı ayarlanıp LDR nin analog değişimine karşılık 555 entegresinden lojik değerler elde edilmiştir. LDR nin yüksek direnç gösterdiği durumda 555 entegresinin çıkışı (3. bacak) lojik-1, düşük direnç gösterdiği durumda ise lojik-0 seviyesindedir. Elde edilen bu değerler PIC'in RA0 pinine girilmiştir.
Panjurun açılıp kapanması 4 uçlu (bipolar, iki kutuplu) Step Motor ile sağlanmaktadır. Motoru sürmek için şekildeki yöntem kullanılmıştır. 16F628A PIC'inin kendi iç osilatörü olduğu için harici bir osilatör devresi yapılmamıştır.
Panjurun tam açıldığını veya tam kapandığını anlayabilmek için düzeneğin en aşağısına ve en yukarısına manyetik switch (Reed Switch) koyulmuştur. Panjurun alt kısmında ise bir mıknatıs vardır. Panjur aşağı indiğinde bu mıknatıs aşağıdaki manyetik switch'i kapatacak ve motor durdurulacaktır. Aynı şekilde yukarı çıktığında yukarıdaki switch'i kapatacak ve motor PIC tarafından durdurulacaktır.
Program C
Kodu
/*************************************************************
**************************************************************
********* LDR ile
Otomatik Panjur Programı *********
**************************************************************
*************************************************************/
#include <16f628A.h>
#fuses
NOPROTECT,NOBROWNOUT,NOLVP,NOMCLR,NOPUT,NOCPD,NOWDT,INTRC_IO
#use delay(clock=4000000) // Çalışma frekansı 4MHz
#use fast_io(a) //Port yönlendirme komutları A portu için
geçerli
#use fast_io(b) //Port yönlendirme komutları B portu için
geçerli
int k,i; // i ve k isimli byte cinsinden değişken belirleniyor
//=====================================================================
void main() //Ana
Program başlangıcı
{
set_tris_a(0xff); // A
portu komple giriş
set_tris_b(0x00); // B
portu komple çıkış
//***********************************
output_b(0);
basla:
//****** yukurı çık
güneş yok ****
if ((input(pin_a0))
&& (input(pin_a1)) && (!input(pin_a2))) //aşağıdaki
switch
{
while(TRUE)
{
output_high(pin_b0);
delay_ms(100);
output_low(pin_b0);
output_high(pin_b1);
delay_ms(100);
output_low(pin_b1);
output_high(pin_b2);
delay_ms(100);
output_low(pin_b2);
output_high(pin_b3);
delay_ms(100);
output_low(pin_b3);
if (input(pin_a2))
break;// yukardaki switch
}
if (input(pin_a2))
{
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b3);
}
}
//****** asağı in ****
if ((!input(pin_a0)) &&
(input(pin_a2)) && (!input(pin_a1)))
{
while(TRUE)
{
output_high(pin_b3);
delay_ms(100);
output_low(pin_b3);
output_high(pin_b2);
delay_ms(100);
output_low(pin_b2);
output_high(pin_b1);
delay_ms(100);
output_low(pin_b1);
output_high(pin_b0);
delay_ms(100);
output_low(pin_b0);
if (input(pin_a1))
break;// yukarıdaki switch
}
if (input(pin_a1))
{
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b3);
}
}
goto basla;
}
yusuf bey koddaki switch manyetik uçlarının pic'e giren pinlerinin yerinin alt switch'inkini üst'e üst switch'inkini alta yazmışsınız. kolay gelsin
YanıtlaSilyusuf bey kim?
SilPardon yanlış olmuş, Mehmet bey .
YanıtlaSilPardon yanlış olmuş, Mehmet bey .
YanıtlaSilbu nun baskı devre cızımı varmı varsa atarmısnz bıde motoru nerden temın edebılırm
YanıtlaSilDevre küçük boyutta olduğu için baskı devre çizimi mevcut değil. Step motorları ise elektronik malzeme satan veya bilgisayar, yazıcı hurdaları satan yerlerden temin edebilirsiniz.
SilMustafa akbaş devre hakkında yardiminiza ihtiyacım var Facebook adresinizi verebilirsiniz sevinirim
Silbaskı devresı yokmu yani
YanıtlaSilbı turlu cızemedm
lutfen yardım ednn
motorun ozellıklerı nedır nasıl bişe almalıyım
YanıtlaSilMrb bn soma meslek lisesinde okuyorum ve bu projeyi yapmaya karar verdim bna yardımcı olabilirseniz sevinirim lütfen bnmle iletişime geçin...
YanıtlaSilMrb bn soma meslek lisesinde okuyorum ve bu projeyi yapmaya karar verdim bna yardımcı olabilirseniz sevinirim lütfen bnmle iletişime geçin...
YanıtlaSilHocam bu devre arduinolu nasil yaparız ?
YanıtlaSilBiz PIC kullanarak yaptık. Arduino ile yapılmış buna benzer uygulamaları internette bulabilirsiniz.
SilİYİ GÜNLER BU PROJE HAKKINDA SORU SORA BİLECEĞİM KİMSE VAR MI ?
YanıtlaSilBuradan sorabilirsiniz.
Silmplab IDE ' yazılmış kodu var mı yardımcı olur musunuz ?
Silmplab IDE ' de yazılmış kodu var mı acaba ? yardımcı olur musunuz
YanıtlaSil