21 Ocak 2014 Salı

EEE3205 Microprocessor Project

Bu proje okuldaki mikroişlemci dersinin projesidir. Bir odanın içindeki cihazların kontrol edilmesi için bir simülasyondur aslında. Bu projede amacımız odanın sıcaklığını ölçüp istenen sıcaklık değerlerin dışına çıktığında otomatik bir şekilde müdahale edilmesidir. Bu sıcaklık verisini LM35Z sıcaklık sensörü ile okuyoruz. Sıcaklık 32 santigrat derecenin üzerine çıktığı zaman tavan aspratoru çalışmaya başlar  ,23 derecenin altıda düştüğü zaman ise temsili Infrared ısıtıcılar çalışmaya başlar.



Işık sisteminde ise bir hareket sensoru birde LDR sensor bulunmakta .Işıklar için butonla ayarlanan  üç mod oluşturdum ; 1)Kapalı 2)Açık 3)Otomatik olmak üzere.Aklınıza gelen şey zaten böyle şeyler yapı marketlerde satılıyor olacaktır ama bu sistemin en büyük avantajı isterseniz tam acık olduğu bir modun bulunması ışık siz bilgisayarın başındayken gereksiz sönmeyecektir .Otomatik mod ise ışık siddeti algılayıp güneşli havada hareket olsa dahi ışığı yakmaz .


Başta bahsettiğin sıcaklık ve ışık (ldr) sensorunun verilerini Lcd ekran ile hocalara sunmaya karar verdim 16x2 mavi bir ekran kullandım .Bu ekranda 2 farklı lm35 den sıcaklık okuduk biri onanın üstü tarafından biri altı tarafından olmak üzere sonrasında bu iki değerin ortalaması alıp işlemleri bu son ortala değere göre yaptırdık. Ldr den okuduğumuz analog değeride direk olarak ekrana yazdırdık .


Bu bahsettiklerim dışında devrenin 5v ile calıştığı için güç regülatörü koyduk 7805 ,aspratoru temsil eden motoru çalıştırmak için L293d motor sürücü kullandık. Pic olarak 16f88 ihtiyaçlarımız karşıladı dışardan kristal bağlamadan internal 8Mhz kullandık

Parça listesi;
R1,2,4,5,6 10K
R3 10K  Pot
C1 100nf polyester
C2 470nf polyester
U1 7805
U2 L293D
U3 16F88
U4,5 LM35Z
Q1,2 BC547
B1,2 Buton(2 bacaklı)
J5 16x2 Lcd ekran

J3 Led işik çıkışı
J2 Ir ısıtıcı
J6 asprator

Bu devreyi tam ölçekli uygulamak isteyen arkadaşlar çıkışlardan direk röle sürebilirler (5v ile çalışan)
Devreyi yaptınız farz ederek anlatıyorum. devreyi ilk çalıştırdığınızda hiç bir otomatik fonksiyon çalışmaz,
B1'e basarsanız sıcaklık ile çalışanları aktif edersiniz , tekrar ayni tuşa basmanız halinde deaktif olur.
B2'e ilk basışta ışık açılır ,2.de otomatik moda geçer ,3.de deaktif olur.
Ekte ihtiyacınız olan hex ares pdf dosyalarını bulabilirsiniz.
INDIR
Lcd'ye degeri yazdırmak için kullandığımız fonksiyon;

void ShowADC1(int x, int y, unsigned int adcvalue)      {
car = adcvalue / 1000;
LCD_Chr(x,y,48+car);
adcvalue=adcvalue-1000*car;
car = (adcvalue / 100);
LCD_Chr_CP(48+car);
adcvalue=adcvalue-100*car;
car = (adcvalue / 10);
LCD_Chr_CP(48+car);
adcvalue=adcvalue-10*car;
car = adcvalue;
LCD_Chr_CP(48+car);
delay_ms(30);
}

analog okuma, derece hesabi;
temp1=ADC_Read(0);
 sc1= (5.0*temp1*100/1024);





4 Ekim 2013 Cuma

Oda Otomasyon

Bu projenin amacı siz odadan ışıkları kapamadan çıktığınızda niye bu ışık açık gibi şeyleri her zaman duymuşuzdur artık duymamak için ve tabi ki daha akıllı bir odaya sahip olmak için . Yapmış olduğum bu projede 433Mhz frekansını kullanan 4 tuşlu uzaktan kumandalı, 2 adet normal kullanım için butonu bulunan , hareket ve ses sensörü bulunan bir röle kontrol sistemi aslında.Amaç uyurken ışığı acık unutursanız sensor 30 dakika veri almazsa ışıkları kapatıyor yada uzaktan kumanda ile odada yalnız olan birini korkuta bilirsiniz , yataktan kumanda ile ışıkları kontrol edebilirsiniz .Devremizde 4 adet röle kullandık bunların 3 tanesi hepimizin bildiği elektro mıknatıslı olanlar diğeri ise katı hallı 40A akıma dayanan güçlü bir röle , bu röleyi tavan aspiratörü için kullandım daha güvenli olması için .2 röle direk 220v üzerinden odamda olan ışıkları kontrol ediyor kalan röle ise 12v led şeritleri kontrol ediyor.


     


 Devrede microcontroller olarak 16F628A kullandım çok yaygın bir entegre zaten.



Malzeme listesi;
D1,D2,D3,D4: 1N4001
Q1,Q2,Q3,Q4: BC547
R1,R2,R3,R4 : 10K Ohm
C1 : 100nF Poli.
C2: 330nF Poli.
U1: 7805
RL1,RL2,RL3: 12V Röle

Hareket sensoru ile 30 dakika saydırıcız dedik bunun için microcontroller'in içindeki timer1'i kullanıcaz, timer bize her saniye bir atma gondericek bu atmalar kaydedilecek ve hareket sensoru veri yolladığı zaman kaydedilen atmalar sıfırlanacak ve tekrar 30'a kadar saymaya çalışacak ne zaman değer 30dk ye ulaşırsa o zaman ışıklar otomatik sönecek açmak için kumanda yada butonları kullanmak gerekecek.(şuanda kodda ekli değil)


Kumandanın A kuşuna basıldığında butun röleler devreye girer RL4 hariç / B tuşu RL1 / C tuşu RL2 ve RL3 D tuşu RL4 kontrol ediyor .Resimde görmüş olduğunuz kırmızı buton kumandanın A tuşu ile aynı işi yapıyor ilk basmada bütün ışık röleler devreye giriyor 2. basmada hepsi kapanıyor.Mavi tuş ise sadece tavan aspiratörünü kontrol ediyor.
Sesle kontrol sensörün de sorun yaşadım devre bulunduğum noktaya uzak olduğu için alkışlarımı algılayamıyor , normalde ilk alkış ile işikların açılması gerekiyor ama başarısız oldu mikrofonu daha yakına almak gerek.

Ekte; Rapidshare-Oda.Otomasyon
1-Ares .lyt dosyası
2-baskı devre için
3- MikroC kodları
4- program dosyası .Hex

Kullanmış olduğun ürünleri alabileceğiniz linkler;
PIR Sensör
433Mhz Kumanda
Solid Relay



11 Mart 2013 Pazartesi

LED Akvaryum Aydınlatması

 Kısa bir aradan sonra yine yeni bir projeyle sizlerleyim. Bu projede akvaryumun yetersiz olan aydınlatmasını değiştirdim bunu sizlerle paylaşacağım bu sefer Çok fazla teknik bilgi yok direk topla birleştir şeklinde .
Malzeme listesi;
1) 18 x 1Watt Power LED
2) 18 x 45 Derece Tekli Lens
3) Power LED Driver
4) 2 x 9'lu düz Alüminyum Pcb
5) 2 x 30cm Alüminyum Soğutucu
Kullandığım Power Ledler 90LM* ışık vermekte 18 tanesi 1620LM ışık vermekte buda 4 adet Tasarruflu ampulün verdiği ışığa eşdeğer bir rakam elde etmiş olduk .Burada da parçaların Resimlerini görebilirsiniz.























*LM: Lümen fizikte birim zamanda bir kaynaktan çıkan ışık miktarı olan ışık akısının birimidir

25 Şubat 2013 Pazartesi

3 Watt Led Masa Lambası

Bu projemizde eski kullanmadığımız çok ısınan ve fazla elektrik harcayan masa lambamızı nasıl değerlendırdığımızı göreceğiz.
Malzeme Listesi ;
1)3x1 Watt Power LED Driver

2)1 Watt Cool White Power LED

3) 3x1 Pcb
4) 3x1 lens
5)Eski bir masa lambası
Resim yazısı ekle

6)Buton  -7)Duvarda Buat Deliği




















Elimizdeki LED'leri aldığımız alüminyum pcble lehimledikten sonra lensleri de üzerine oturtup vidasını takıyoruz ve bir butun haline geliyorlar  . Power LED'leri led driver ile kullanmamızın sebebini de açıklayalım Power Ledler ısınır ısındıkça daha çok akım çeker daha çok akım çektikçe daha çok ısınırlar ve olay kısır döngüye girerek Ledlerin omru kısıtlar . Led driverlar 350mA sabit akım vererek Ledlerin fazla akım çekip ısınmasını önler  Power Ledlerin soğutucuya ihtiyaçları vardır ama bu sıcaklık hiçbir zaman bir halojen ampul kadar olmaz .





















Eski masa lambamızı çerçevesi metal olduğu için alüminyum folyoyu buruşturup pcb levha ile lambanın kasasının arsına koyuyoruz böylece Ledlerin ürettiği sıcaklığı dağıtıyoruz.






























Güneş Enerjisi ile Gece Lambası

Geceleri güvenli ve tasarruflu şekilde odanıza bir gece lambası istiyorsanız doğru yazıyı okuyorsunuz. Bu projede 2 adet güneş paneli ile pilleri şarj edip gecede bu elektriği kullanıyoruz ve diyotlada güneş panellerine tersten elektrik gitmesini ve oluşabilecek problemleri minimuma indiriyoruz. Kullandığımız direnç ise LED'nin parlaklığını ayarlamak için farklı parlaklıklar için farklı değerler kullanılabilir yada potansiyometre takılarak istediğiniz zaman değiştirebilirsiniz.
2 Güneş panelini birbirine paralel bağlayarak 4.2V 200mA elde ediyoruz bu değer pilimizi şarj etmek için yeterli oluyor. fotoğraflarda da görüldüğü gibi topraklar ortak güneş panelinden gelen pozitife direk diyot bağlı sonrasında pil ile LED bağlantıları mevcut. Son olarak pilden aldığımız pozitife direnç bir ucunu diğer ucunuda LED'in pozitif ucuyla birleştiriyoruz





Malzeme listesi;
1)  4.2V 100ma Güneş Paneli x2
2) 1.2v sarj edilebilir pil x3(seri baglantı =3.6)
3)  270 ohm Direnc 0,6W( 
4)1n4007 diyot 
5)Mavi mantar Led x2
6) Strafor 
7)Switch








3'lü pil





2'li Güneş Paneli
















Diyotlu sistem





































Gündüz Görünüşü
















Gece Görünüşü





























                                                      

2 Şubat 2013 Cumartesi

Elektrik Kesintisinde Part-3

Tekrar herkese merhaba diyelim . Daha öne paylaşacağım dediğim kodlar bitti ama Pic'i değiştirme kararı aldım bir önceki kullandığımız 16F877A fiyat ve boyut anlamadın buyuk bi Pic'di  onun yerine 16F628A kullanarak yeniden bir baskı devre oluşturdum .Eski Pic'de 3 tane boş port kalıyordu . 16F628A nın kendi içinde osilatörü oldugun için bu Pic'e osilatör bağlamamıza gerek kalmadı için dahili olarak 4Mhz bulunmakta. Bu devrede fazla bakırları eritmekle uğraşmamak için boşlukları doldurdum .Sol tarafta gördüğünüz 9 pin butonlar içindir.En üsteki +5v bağlıdır diğerleri iste pic'in inputlarıdır.Sağ usteki 2pin ise +12v DC girişidir( 1. bacak negatif , 2. bacak ise +12 olmalı). Rölelerin cıkısı +12v dir serit Led sürmek veya herhangi başka birşey için kullanılabilirler.




Linkte( Indir ) kodların hazır olduğu .hex dosyası ve baskı devrenin hazır olduğu .Pdf dosyalı bulunmaktadır . Şimdi kodları verelim o zaman ;






int oldstate[7];
void main() {
  PORTA = 0;
  PORTB = 0;
  TRISA = 0xFF;                                           //A portunun giriş oldugunu beliriler
  TRISB = 0x00;
  CMCON =0x07;                                            //Anolog portları kapatır
while(1){
if (oldstate[0]==1 && PORTA.F0==0) {                     // tuş basılı degil ama ilk basmadan sonrada yanmasını sağlar
PORTB.F0=1  ;}
if (oldstate[1]==1 && PORTA.F1==0) {
PORTB.F1=1 ;}
if (oldstate[2]==1 && PORTA.F2==0) {
PORTB.F2=1 ;}
if (oldstate[3]==1 && PORTA.F3==0) {
PORTB.F3=1 ;}
if (oldstate[4]==1 && PORTA.F4==0) {
PORTB.F4=1 ;}
if (oldstate[5]==1 && PORTA.F5==0) {
PORTB.F5=1 ;}
if (oldstate[6]==1 && PORTA.F6==0) {
PORTB=0xFF ;}

if (Button(&PORTA, 0, 1, 1)) {                                  // tuşa basatıktan sonra röle vs ısıgın yanmasını saglar
oldstate[0] = 1;  }
if (oldstate[0] && Button(&PORTA, 0, 1, 0)) {                  //tuşa 2. kez basılınca  röle vs ısıgın kapanmasını saglar
PORTB.f0=~PORTB.f0;
oldstate[0]=0;}

if (Button(&PORTA, 1, 1, 1)) {
oldstate[1] = 1;  }
if (oldstate[1] && Button(&PORTA, 1, 1, 0)) {
PORTB.f1=~PORTB.f1;
oldstate[1]=0;}

if (Button(&PORTA, 2, 1, 1)) {
oldstate[2] = 1;  }
if (oldstate[2] && Button(&PORTA, 2, 1, 0)) {
PORTB.f2=~PORTB.f2;
oldstate[2]=0;}

if (Button(&PORTA, 3, 1, 1)) {
oldstate[3] = 1;  }
if (oldstate[3] && Button(&PORTA, 3, 1, 0)) {
PORTB.f3=~PORTB.f3;
oldstate[3]=0;}

if (Button(&PORTA, 4, 1, 1)) {
oldstate[4] = 1;  }
if (oldstate[4] && Button(&PORTA, 4, 1, 0)) {
PORTB.f4=~PORTB.f4;
oldstate[4]=0;}

if (Button(&PORTA, 5, 1, 1)) {
oldstate[5] = 1;  }
if (oldstate[5] && Button(&PORTA, 5, 1, 0)) {
PORTB.f5=~PORTB.f5;
oldstate[5]=0;}

if (Button(&PORTA, 6, 1, 1)) {                                                           //butun ışıkları yakar
oldstate[6] = 1;
PORTB=0xFF;  }
if (oldstate[6] && Button(&PORTA, 6, 1, 0)) {
PORTB.f6=~PORTB.f6;
oldstate[6]=0;}

if (Button(&PORTA, 7, 1, 1)) {                                                         // hepsini sondurur
oldstate[6] = 0;
PORTB=0x00;  }







 }
}













25 Ocak 2013 Cuma

Ipod Video 5.5G Kulaklık Jack Değişimi

Uzun zamandır cızırtı ve parazit yapan kulaklık jackı değiştirmeye karar verdim ve Ebay'den(Link) gerekli parçayı temin ettim. paketten yeni flexi parçayla beraber yardımcı elemanlarda cıktı.
 Haydi simidi değiştirme işlemine başlayalım ilk resimde görmüş olduğunuz mavi parça ile ipod'un yan yüzeyinde metal kasa ile on yüz arasını sokuyoruz plastik parçayı  metal kapağı doğru ittirerek açıyoruz ve sonra bu işlemi diğer taraf içinde yapıyoruz. 



Arka kapağı dikkatlice kaldırdıktan sonra sol atta gördüğünnz pilden gelen flexi parçayı çıkarmamız gerekiyor . Kabloyu çekmeden önce bağlı olduğu yerdeki kahve renkli plastiği küçük bir tornavida yardımıyla yukarı kaldırdıktan sonra zaten flexi kablo rahatlıkla yerinden çıkıyor . Daha sonra Hard Diski kaldırıyoruz ve  kulaklık flexi kablosunun takılı olduğu diğer soketi görüyoruz onuda tornavida yardımıyla kaldırdıktan sonra arka metal kasa tamamen gövdeden ayrılmış oluyor.












pil sökmek istediğimiz parçalara engel olduğu için yerinden çekerek çıkarıyoruz çift taraflı bantla o bölgeye tutturulmuştur zaten . Hold tuşunda iki vida jackın olduğu yerde 2 vida bulunmaktadır bunları söktükten sonra yeni parçayı yerleştirebiliriz . Sonrasında çıkardığımız parçaları geri yerine takıp metal kasayı kapata biliriz