![]() |
#1 | |||
![]() Transistörlü Basit Fan Hız Kontrol Devresi Fan hız kontrol devresinde 4 adet BC639 transistör kullanılıyor devre üzerinde ki 47k Trimpot ile hız ayarı yapılabilir. Devre testlerinde intel CPU fanı kullanılmış devre pertinaks üzerinde ve düşük maliyetli basit bir devre. ![]() ![]() ![]() ![]() BC639 ![]() DEVRE ELEMANLARI C1 100µ 16v M1 FAN P1 47K *R1 140 1w * 4X560OHM 1/4W T1 BC639 T2 BC639 T3 BC639 T4 BC639
![]() Konu OTTOMAN tarafından (11-01-2011 Saat 15:07 ) değiştirilmiştir.. |
||||
![]() |
![]() |
|
Sayfayı E-Mail olarak gönder |
![]() |
#2 |
![]() ![]() Metalleri eritmek için kullanılan indüksiyon fırınlarınında ki sisteme benzer bir devre. Kontrol katında HIP6601 mosfet sürücü kullanılmış devrenin çalışma voltajı 12 Volt DC yazar sürücüyü, mosfetleri eski bir ana kart hurdasından sökmüş bobinin şaseye bağlanan ucuna 820nf 400v kondansatörü seri bağlamış ek olarak akım trafosu kullanarak ledli basit bir gösterge yapılmış. HIP6601 sürücünün 3 numaralı giriş bacağına 74HCT4046 ile oluşan 1 Hz – 10 MHz arası osilatör çıkışı bağlanıyor. Bunun yerine 555 li osilatörde kullanılabilir. ![]() ![]() |
|
![]() |
![]() |
![]() |
#3 | ||||||
![]() MSP430 ASM 74HC595 ile 2X16 LCD Ekran Ekranlar 8/4 bit modunda iki farklı yöntem ile oluşabilir. Biz 8 bit modunda ekleyeceğiz bunun için daha önce yayınlanış olan 74hc595 sürücü kodlar üzerine kodlar ekleyeceğiz. Kısaca 8 bitlik bilgiyi 74hc595 üzerinden geçip konfigrasyon bitlerinide mcu tarafından kontrol edip kodların işlenmesini sağlıyacağız. Öncelikle iiki satırdada yazı görünecek ve belli süre sonra ekrandaki yazılar silinecek ve 2. satırda belirli aralıklarda saymaya başlayacak sayma işlem 99.999 sayısından sonra başa döner ve buton yardımıyla sayma işlemi resetlenebiliyor. ![]() Kaynak Kodlar: Kod:
#include "msp430g2231.h" ; #kulanılan mcu yu tanımlıyoruz ;*******74595 PİNLERİ*********** #define R_PIN EQ 00010000B;BIT4;10h; #define E_PIN EQ 00100000B;BIT5;20h;00100000b; #define D_PIN EQ 01000000B;BIT6;40h;01000000b; #define C_PIN EQ 10000000B;BIT7;80h;10000000b; ;************LCD PİNLERİ******** ;#define RW_PIN BIT2;lcd RW okuma yazma modu pinin #define EN_PIN EQ 0000100B;BIT2;lcd enable data portlarındaki bilgiyi lcdyeyazdırma pini #define DI_PIN EQ 0000001B;BIT0;Data komut pini göndeilen pinin datamı yoksa komutmuoldugunu belirler ;***************************** #define KOMUT_MODU bic.b BIT0,P1OUT #define VERI_MODU bis.b BIT0,P1OUT #define YAZDIR_1 bis.b BIT2,P1OUT #define YAZDIR_0 bic.b BIT2,P1OUT ;#define OKUMA_MODU bis.b BIT2,P1OUT ;#define YAZMA_MODU bic.b BIT2,P1OUT #define PN DATA1 EQU 0x0200;R15;shift regestiriye gönderilen veri bu değişkende VERI EQU 0x0202;#define VERI 0x0210;R9 ;veri değişkeni ise şift regestiriye gönderilmek CNT1 EQU 0x0204; #define CNT1 0x0202;şift regestiriye gönderilen veri 16 bit LCD_INFO EQU 0X0206 LCD_1 EQU 0X0208 LCD_2 EQU 0X0210 LCD_3 EQU 0X0212 LCD_4 EQU 0X0214 LCD_5 EQU 0X0216 ;LCD_CNT EQU 0X0210 ;LCD_CHR EQU 0X0212 ;LCD_STR EQU 0X0206 ;***********MAKROLAR******************** SHIFTOUT MACRO SENT_DATA ; MOV.W #SENT_DATA,&R7 MOV #SENT_DATA,DATA1 CALL #SHIFTREG ENDM LCD_INIT MACRO PIN_CNT,SATIR_CNT,FONT CLR.W LCD_INFO BIS.B #BIT5,LCD_INFO IF PIN_CNT=4;LCD 4BİT MODUNDAMI YOKSA 8 BİT MODUNDAMI ÇALIŞTIRILACAK BIC.B #BIT4,LCD_INFO;4 BİT MODUNDA ELSE BIS.B #BIT4,LCD_INFO;8BİT MODUNDA ENDIF IF SATIR_CNT=1;KULLANILAN LCD 1 Mİ 2 Mİ SATIR İÇERİYO BIC.B #BIT3,LCD_INFO;1 SATIRLIK LCD ELIF SATIR_CNT=2;ELIF SATIR_CNT=1 BIS.B #BIT3,LCD_INFO;2 SATIRLI LCD ENDIF IF FONT=1;FONT 5X7 Mİ 5X10 MU OLACAK BIC.B #BIT2,LCD_INFO;5X7 FONT ELSE;ELIF SATIR_CNT=1 BIS.B #BIT2,LCD_INFO;5X10 FONT ENDIF MOV.W LCD_INFO,DATA1 CALL #KOMUT_YAZ ENDM LCD_KOR MACRO RW,CLM IF RW=1 MOV #007fH+CLM,DATA1 ELIF RW=2 MOV #00BFH+CLM,DATA1;ELSE ELIF RW=3 MOV #008FH+CLM,DATA1;ELSE ELIF RW=4 MOV #00CFH+CLM,DATA1;ELSE ENDIF CALL #KOMUT_YAZ ENDM LCD_KARAKTER MACRO TXT REPTC C_TXT,TXT;"MUJDAT" MOV.W #'C_TXT',DATA1;LCD_CHR CALL #VERI_YAZ;LCD_KARAKTER #LCD_CHR ENDR ENDM LCD_TEMIZLE MACRO RW IF RW=1 MOV #007fH+1,DATA1 ELIF RW=2 MOV #00BFH+1,DATA1;ELSE ELIF RW=3 MOV #008FH+1,DATA1;ELSE ELIF RW=4 MOV #00CFH+1,DATA1;ELSE ENDIF CALL #KOMUT_YAZ CALL #TEMIZLE ENDM LCD_OUT MACRO LCD_DATA,ROW,COLM IF ROW=1 MOV #007fH+COLM,DATA1 ELIF ROW=2 MOV #00BFH+COLM,DATA1;ELSE ELIF ROW=3 MOV #008FH+COLM,DATA1;ELSE ELIF ROW=4 MOV #00CFH+COLM,DATA1;ELSE ENDIF CALL #KOMUT_YAZ MOV.B LCD_DATA,DATA1 CALL #VERI_YAZ ENDM LCD_ON MACRO KURSOR,EFEK CLR LCD_INFO BIS.B #BIT3,LCD_INFO BIS.B #BIT2,LCD_INFO IF KURSOR=0; BIC.B #BIT1,LCD_INFO; ELIF KURSOR=1;ELSE BIS.B #BIT1,LCD_INFO; ENDIF IF EFEK=0; BIC.B #BIT0,LCD_INFO; ELIF EFEK=1;ELSE;ELIF SATIR_CNT=1 BIS.B #BIT0,LCD_INFO; ENDIF MOV LCD_INFO,DATA1 CALL #KOMUT_YAZ ENDM LCD_KOMUT MACRO KMT MOV KMT,DATA1 CALL #KOMUT_YAZ ENDM LCD_SIL MACRO MOV #01H,DATA1 CALL #KOMUT_YAZ ENDM ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NAME Mainloop ; module name PUBLIC Mainloop ; make the main label vissible RSEG CSTACK ; pre-declaration of segment RSEG CODE init: MOV #SFE(CSTACK), SP ; set up stack MOV.W #WDT_ADLY_1000,&WDTCTL;WDT_ADLY_1000 WDT Yİ KULLANARAK 1000MS GECİKME YARATIR BIS.B #10001B,IE1 ;IE1 REGESTİRİSİ GENEL KESME KAYNAKLARINI KONTROL EDN REGESTİRİ ; BURDAN NMIIE VE WDTIE BAYRAKLARINI KURUYORUZ WDT KESMESİ OLUŞMASI İÇİN mov.b #11110111b,P1DIR ; P1 portunun 0 ve 6 bitleri çıkış gerisi giriş olarak ayarlandı mov.b #00001000b,P1IE ;P1 PORTUNUN HANGİ PİNİNDEN KESME OLUŞACAĞINI BLİERLER mov.b #00001000b,P1IES ; KESMENİN DÜŞEN KENARMI YOKSA YÜKSELEN KENARMI OLDUGUNU BELİRLER. LCD_SIL ;LCD Yİ TAMAMEN SİLER LCD_INIT 8,2,1 ;1. PARAMETRE 4/8 BİTMİ ÇALIŞTIRILICAĞINI SEÇMEYE YARAR. ;2. PARAMETRE KULLANILAN LCD NİN KAÇ SATIR OLDUĞUNU BELİRTİR. ;3. PARAMETRE LCD_ON 0,0 ;LCD YE AÇMA KOMUTU GÖNDERİR BUNU YAPRKEN2 ADET PARAMETRE ALIR ;1. PARAMETRE İMLECİ GÖRÜNÜR/GİZLİ YAPMAYA YARAR(0/1) ;2. OARAMETRE İMLECİN KIRPMA EFEKTİ AÇMA/KAPAMAYA YARAR (0/1) LCD_SIL MOV #'0',LCD_1 MOV #'0',LCD_2 MOV #'0',LCD_3 MOV #'0',LCD_4 MOV #'0',LCD_5 EINT ;Genel interput kaynaklarını etkinleşirir. Mainloop ;Ana program bloğu ; LCD YAZDIRMAK İÇİN 2 ADET MAKRO YAZDIM ,LCD_OUT BELİRTİLEN KORDİNATLARA 1 KAREKTER YAZAR. ; 1. MAKROMUZ LCD_OUT BU MAKRODA 3 ADET PARAMAETRE VAR 1. PARAMETRE YAZILACAK KAREKTERİ BELİRTİR. ; 2.PAREMETREDE SATIR 3.PARAMETREDE SUTUN BELİRTİLİREK İSTENİLEN SATIR VE SUTUNDA İSTEDİĞİMİZ ; KAREKTERİ GÖSTEREBLİRSİNİZ. LCD_OUT #'M',1,5 LCD_OUT #'U',1,6 LCD_OUT #'J',1,7 LCD_OUT #'D',1,8 LCD_OUT #'A',1,9 LCD_OUT #'T',1,10 LCD_OUT #'T',2,6 LCD_OUT #'E',2,7 LCD_OUT #'K',2,8 LCD_OUT #'E',2,9 jmp $; Mainloop ;herhangibi bir kesme oluşana kadar sonsuz döngüye girer. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;**********************74595 entegresine veri gönderen komut*************** SHIFTREG ;74595 regestiri bitleri yazdıracak gönderecek program CALL #SRESET ;Regestiriyi resetle( tüm bitleri sıfırla) mov.w #10h,CNT1 ;Sayac regestirisin 16 sayısını yükle SRG RLA DATA1 ;DATA1 deişkeninideki değeri bir sola kaydır.kaydırma işleminde Değişkenini 16. biti herzaman Status regestirisinin C (Caeryy)bitinde gösterilir. ; bizde bu özelliği kullanrak C floğındaki değere göre 74hc595 entegresindeki Data pininin değerini ayarlamak suretiyle bitlerin yazdırılmasıın sağlıyacağız. jc SETPIN ;SR nin C bitinin değeri Set(1) ise SETPIN etiketine git jnc CLRPIN ;SR nin C bitinin değeri reset(0) ise CLRPIN etiketine git SETPIN ;74595 entegresinin data(DS 14 nolu pini) değerini set(1) yap. BIS.B #BIT6,&P1OUT jmp CLOCK CLRPIN BIC.B #BIT6,&P1OUT ;74595 entegresinin data(DS 14 nolu pini) değerini reset(0) yap. CLOCK ; clock palsi göndererek data pinindeki değeri şift regestiriye yazdırır. ; clock işlemi portlardaki bitleri bir sola kaydırarak data(ds 14.)pinindeki değeri 0. bite yazdırarak 8bitlik veriyi portlara gönderir. BIC.B #BIT7,&P1OUT ;clock pinini resetle NOP ;bir saykıl bekle BIS.B #BIT7,&P1OUT ;clock pinini Set et. dec CNT1 ;göndrilen veriyi say 16 ya ulaştığında işlemi bitir. jnz SRG ;sayma işlemi 16 dan küçükse başa dön. E_ ;veri gönderme işlemi bitti ise gönderilen verileri 74595 entegresine yazdır ve işlem portlardan görünsün BIC.B #BIT5,&P1OUT NOP BIS.B #BIT5,&P1OUT ret ;veri gönderme prosödürü bitti. kaldığın yerden çalışmak için geri dön. ;******************************************************************************************************** SRESET ;74595 entegresinini reset pinine bir pals göndrir ve entegrenin resetlenerek portların değerini sıfırlar. BIC.B #BIT4,&P1OUT NOP BIS.B #BIT4,&P1OUT ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;***********LCD KOMUTLARI******************* TEMIZLE MOV #10H,R7 TEMIZLE_ MOV.B #00010000B,DATA1 CALL #VERI_YAZ DEC R7 JNZ TEMIZLE_ RET KOMUT_YAZ ; YAZMA_MODU bic.b #BIT0,P1OUT;KOMUT_MODU bis.b #BIT2,P1OUT;YAZDIR_0 MOV.W DATA1,R5 CALL #SHIFTREG;SHIFTOUT #DATA1; CALL #SHIFTREG CALL #GECIKME bic.b #BIT2,P1OUT;YAZDIR_1 RET VERI_YAZ ; YAZMA_MODU bis.b #BIT0,P1OUT;VERI_MODU bis.b #BIT2,P1OUT;YAZDIR_0 MOV #DATA1,R5 MOV DATA1,R5 CALL #SHIFTREG;SHIFTOUT DATA1 CALL #GECIKME bic.b #BIT2,P1OUT;YAZDIR_1 RET GECIKME MOV #0FFFH,R6 DLY1 DEC R6 JNZ DLY1 RET ;************SAYDIRMA PROGRAMI********************* SAYAC ; ;1. SAYI CMP #'9',LCD_1 JGE SAYI_2 INC.B LCD_1 RET;JMP SAYI_2_ ;2. SAYI SAYI_2 MOV #'0',LCD_1;CLR LCD_1 CMP #'9',LCD_2 JGE SAYI_3 INC.B LCD_2 RET;JMP SAYI_3_ ;3. SAYI SAYI_3 MOV #'0',LCD_2;CLR LCD_2 CMP #'9',LCD_3 JGE SAYI_4 INC.B LCD_3 RET;JMP SAYI_4_ ;4. SAYI SAYI_4 MOV #'0',LCD_3;CLR LCD_3 CMP #'9',LCD_4 JGE SAYI_5 INC.B LCD_4 RET;JMP SAYI_5_ ;5. SAYI SAYI_5 MOV #'0',LCD_4;CLR LCD_4 CMP #'9',LCD_5 JGE SAYI_0 INC.B LCD_5 RET SAYI_0 MOV #'0',LCD_5;CLR LCD_5 RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BTN_KESME ;buton kesmesi oluştuğunda WDT kesmesinin oluşması için gerekli(IE1 Reg. 0. biti) bitin değerini tersleyerek WDT kesmesinin durumunu değiştiri (AÇ/KaPA) xor.b #1h,IE1 ;Genel kesme ayarları için gerekli Regestirinin WDT kesmesi için ayrılmış bitinin durumunu tesrle BIC.B #WDTIFG,IFG1 ;kesme kaynaklarını gösteren regestirinin WDt ileilgili bitini sıfırla BIC.B #00001000b,P1IFG ;buton kesmesinin hangi butondan olluştuğunu göstren regestirirni ilgili bitin sıfırla. EINT ;genel kesme bayrağını etkinleştir (herhanigbi bir kesme oluştuğunda algıla) RETI ;kesmeden dön ve kaldığın yerden işlemlerin yapmaya devam et. WDT_KES ;WDT kesmesi oluştuğunda bu etikete dallan. LCD_KOR 1,3;YAZIYI YAZACAĞI KORDİNATLARI BELİRTİYORUZ LCD_KARAKTER "CIZGI-TAGEM";YAZIYI BİR DÖNGÜ İLE LCD YE YAZDIRIYORUZ CALL #SAYAC ;LCD DEKİ SAYILASRI BİRER BİRER ARTIRMAYA YARAYAN KODDU ÇAĞIRIYORUZ. MOV #LCD_1,R8;LCD DEKİ 1LER BASAMAĞINI R8 REG. ALIR LCD_OUT @R8,2,10;R8 DEKİ SAYIYI LCD DE GÖSTER MOV #LCD_2,R8 LCD_OUT @R8,2,9 MOV #LCD_3,R8 LCD_OUT @R8,2,8 MOV #LCD_4,R8 LCD_OUT @R8,2,7 MOV #LCD_5,R8 LCD_OUT @R8,2,6 BITIR BIC.B #1H,IFG1 ;IFG1 REGESTİRİSİ OLUŞAN KESMENİNİ KAYNAĞINI GÖSTEREN rEGESTİRİDİR. ;WDTIFG (0 BİTİ) WDT KESME KAYNAĞINI GÖSTERİR. KESME OLUŞTUĞUNDA BU BAYRAK 1 OLUR YENİDEN WDT KURMAK İÇİN BU BAYRAĞIN SIFIRLANMASI GERKLİDİR. EINT ; (GIE) GENEL KESME BAYRAĞINI AKTİFLEŞTİRİR RETI COMMON INTVEC DINT ;GIE KESME BAYRAĞINI TEMİZLE (0 YAPAR) ORG WDT_VECTOR;0FFFEh WDT KESME VEKTÖRÜ DW WDT_KES ; KESME OLUŞUNCA BU ETİKETE DALLAN ORG RESET_VECTOR;0FFFEh; İLK ENERCİ GELDİĞİNDE VEYA RESET EDİLDİĞİNDE BU ETİKETE DALLAN DC16 init ORG PORT1_VECTOR;0xFFE4;buton kesme vektörü DW BTN_KESME;kesme butondan oluştuğunda gidilecek kesme etiketi END Mainloop
Konu OTTOMAN tarafından (11-01-2011 Saat 15:33 ) değiştirilmiştir.. |
|||||||
![]() |
![]() |
![]() |
#4 | |||
![]() LM3915 Entegresi ile Mikrofon için Vumetre LM3915 İle yapılan bir çok vumetre devresi var bu devrenin farkı ortamdaki seslere göre ledlerin yanması konuşma, müzik, televizyon vs. gibi dış seslere göre vumetre devresi çalışıyor mikrofonun çıkışı TDA2822 anfi entegresi ile yükseltiliyor. LM3914, 50k trimpot ile hassasiyet ayarlanabiliyor. LM3915 yerine LM3914 ve LM3916 kullanılabilir. Baskı devre sprint layout ile hazılanmış 10 adet parlak mavi led diyot kullanılmıştır. ![]() ![]()
|
||||
![]() |
![]() |
![]() |
#5 |
![]() Valla hepsi birbirinden güzel.
Siyaset Bilimi okumasaydım... Ya genetik mühendisliği okurdum yada elektronik mühendisliği. Çok anlamasamda herzaman bu tarz şeylere ilgi duymuşumdur. Orta okulda birinci ile ilgili bişey yapmıştım proje denilemez bile potansiyonometreyle basit motor kullanımı birde hız arttıkça ışık yanıyordu filan...o ödevden az puan almamıştım yani... gine birde fotoselli gece lambası yapmıştım.Sadece gece olunca yanıyordu.Tabi bu yaptıklarım çok basit şeyler...buradaki çalışmalar çok güzel gerçekten... En sonuncuyu denemek isterim... paylaşım için teşekkrüler ++++++ |
|
![]() |
![]() |
![]() |
#6 | |
![]() Alıntı:
Pot ile kontrol devresi, ışığa duyarlı LDR devreleri ve bunlara benzer bir çok basit devre var. İlgi çekiyor devreler ![]() |
||
![]() |
![]() |
![]() |
#7 |
![]() Saolasın şems belki işime yarar bi gün
![]() |
|
![]() |
![]() |
![]() |
#8 |
![]() Bahsettiğim devreleri orta okulda yapmıştım.Heleki fotoselli gece labbasına bütün arkadaşlarımın ağzı açık kalmıştı.Lisedede yapsam gine ağızları açık kalırdı eminim.Aslında uzak duruyoruz bu tarz şeylere küçüklükten merak duygusunu aşılamak gerekiyor...
|
|
![]() |
![]() |
![]() |
#9 |
![]() Lisede az yapmadık...
![]() Aklım da kalan şuan binalar da kullanılan hareket sensörlü lambaydı ![]() |
|
![]() |
![]() |
![]() |
#10 |
![]() Örneğin; 220 V LDR li Karanlık Dedektörü Devresi ![]() |
|
![]() |
![]() |
![]() |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
Seçenekler | |
Stil | |
|
|