Elektrik Elektronik Teknolojisi Alanı Temrinleri

 
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır . Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz


Mesajlar - Hasan ERTÜRK

Sayfa: 1 2 [3] 4
31
Elektrik Elektronik Ölçme / 8. Gerilim ölçme
« : 03 Mart 2016, 16:01:24 »
<a href="http://temrinlerim.org/pdf/7-gerilim_olcme.pdf" target="_blank">http://temrinlerim.org/pdf/7-gerilim_olcme.pdf</a>
Bu iletiye teşekkür edenler: maximiryan

32
<a href="http://temrinlerim.org/pdf/6-elektrik_akimi_akim_olcme.pdf" target="_blank">http://temrinlerim.org/pdf/6-elektrik_akimi_akim_olcme.pdf</a>
Bu iletiye teşekkür edenler: maximiryan, huseyinhg

33



Bu dersimizde arduino ile 3 fazlı asenkron motoru ileri geri yıldız üçgen çalıştırmayı öğreneceğiz.

Senaryo:
Bir adet 3 fazlı asenkron motor arduino ile ileri geri yıldız üçgen çalıştırılacak.
 
Sol butonuna basıldığında motor 0 ila 30 saniye arasında istediğimiz bir süre sola doğru yıldız bağlantıda yol alacak ve ayarlanan sürenin sonunda üçgen bağlantıya geçip durdurma butonuna basılana dek çalışmaya devam edecek.

Sağ butonuna basıldığında motor 0 ila 30 saniye arasında istediğimiz bir süre sağa doğru yıldız bağlantıda yol alacak ve ayarlanan sürenin sonunda üçgen bağlantıya geçip durdurma butonuna basılana dek çalışmaya devam edecek.

Her hangi bir anda durdurma butonuna basılırsa motor duracak.

Motor her hangi bir yöne dönerken diğer yöne döndürmek için öncelikle motorun durdurulması ve sonrasında diğer yöne döndürülmesi esastır. Motor dönerken sol ya da sağa dönme butonlarına basılması durumunda butonlar işlev görmeyecek.

Sol ya da sağa dönüş başlatma butonu ile beraber durdurma butonuna da basılması durumunda devre stop aktif olarak çalışacaktır.

Motorun kalkınma anında yıldız çalışacağı süre bir potansiyometre ile ayarlanabilir olacak ve ayarlanan busüre lcd ekranda görüntülenecektir.

Motor sola ya da sağa dönerken hangi yöne hangi bağlantıda dönmekte olduğu lcd ekranda yazılı ve görsel olarak görüntülenecektir.

Evet senaryomuz bu şekilde. İhtiyaç halinde güç devresinde değişiklik yapılmadan senaryoda değişiklik yapılabilir.

Fritzing devre şeması:
Fritzing dosyasını konu ekinden indirebilirsiniz. Devre şemasına kontaktörleri sürecek olan 4 adet röle dahil edilmemiştir. Kontaktör bobinleri arduinonun dijital 3, 4, 5 ve 6. çıkışlarına bağlanacak olan transistörler ile birer röle üzerinden beslenecektir.




ISIS devre şeması:
ISIS dosyasını ve isis simülasyonu için hex dosyasını konu ekinden indirebilirsiniz. ISIS çizimine LCD dahil edilmemiştir.



ISIS simülasyonu:
<iframe width="640" height="385" src="//www.youtube.com/embed/1Xx6yjHeo2A?fs=1&start=" frameborder="0" allowfullscreen></iframe>

Kumanda ve güç devresinin birleştirilmiş şeması (LCD hariç)



LCD ilearduino arasındaki bağlantı:


Arduino kodları:
Kod: [Seç]
// GİRİŞLER
int ileri_butonu=A1; // A1 girişine ileri_butonu adı verildi. Bu girişe ileri başlatma butonu bağlanacak.
int geri_butonu=A2; // A2 girişine geri_butonu adı verildi. Bu girişe ileri geri butonu bağlanacak.
int durdurma_butonu=2; // D2 girişine durdur_butonu adı verildi. Bu girişe ileri durdurma butonu bağlanacak.
int potansiyometrePin = A0; // A0 GİRİŞİNE YILDIZ BAĞLANTI ÇALIŞMA SÜRESİNİ AYARLAMAK İÇİN POTANSİYOMETRE BAĞLANACAK
int sensorValue = 0;
// GİRİŞLER BİTTİ

// ÇIKIŞLAR
int ileri_kontaktoru=3; // D3 çıkışına ileri_kontaktoru adı verildi. Bu çıkışa ileri yön kontaktörünü süren röle bağlanacak.
int geri_kontaktoru=4; // D4 çıkışına geri_kontaktoru adı verildi. Bu çıkışa geri yön kontaktörünü süren röle bağlanacak.
int yildiz_kontaktoru=5; // D5 çıkışına yildiz_kontaktoru adı verildi. Bu çıkışa yıldız bağlantı kontaktörünü süren röle bağlanacak.
int ucgen_kontaktoru=6; // D6 çıkışına ucgen_kontaktoru adı verildi. Bu çıkışa üçgen bağlantı kontaktörünü süren röle bağlanacak.
// ÇIKIŞLAR BİTTİ

// GÖRSEL KODLARI BURADA BAŞLADI
#include <LCD5110_Basic.h> // LCD kütüphanesi eklendi
extern uint8_t SmallFont[];
LCD5110 myGLCD(8,9,10,11,12); // CD pinlerinin hangi Arduino pinlerine bağlı olduğunu belirtiyoruz
extern uint8_t sol[]; // Sol ikon projeye dahil edildi
extern uint8_t sag[]; // Sağ ikon projeye dahil edildi
extern uint8_t yildiz[]; // Yıldız ikon projeye dahil edildi
extern uint8_t ucgen[]; // Üçgen ikon projeye dahil edildi
extern uint8_t saat[]; // Saat ikon projeye dahil edildi
// GÖRSEL KODLARI BURADA BİTTİ

void setup()
{
pinMode(ileri_butonu, INPUT); // A1 PİNİ GİRİŞ YAPILDI
pinMode(geri_butonu, INPUT); // A2 PİNİ GİRİŞ YAPILDI
pinMode(durdurma_butonu, INPUT); // A0 PİNİ GİRİŞ YAPILDI
pinMode(ileri_kontaktoru, OUTPUT); // D1 PİNİ ÇIKIŞ YAPILDI
pinMode(geri_kontaktoru, OUTPUT); // D2 PİNİ ÇIKIŞ YAPILDI
pinMode(yildiz_kontaktoru, OUTPUT); // D3 PİNİ ÇIKIŞ YAPILDI
pinMode(ucgen_kontaktoru, OUTPUT); // D4 PİNİ ÇIKIŞ YAPILDI
pinMode(durdurma_butonu, INPUT); // D2 PİNİ GİRİŞ YAPILDI
attachInterrupt(0, pasif, RISING); // 2 NOLU PİN LOJİK 1 İSE PASİF KOMUTLARINA GİT
pinMode(7, OUTPUT); // LCD ekranın arkaplan aydınlatmasına giden pini çıkış olarak ayarlıyoruz
digitalWrite(7,HIGH); // Ekrana aydınlatıldı
myGLCD.InitLCD(); // Ekranı başlatıldı
myGLCD.setContrast(70); //0 ila 127 arası bir değer verilebilir
}

void pasif()
{
// TÜM ÇIKIŞLARI PASİF YAP BAŞLADI
digitalWrite(ileri_kontaktoru, LOW); // İLERİ YÖN KONTAKTÖRÜNÜN ENERJİSİ KESİLDİ
digitalWrite(geri_kontaktoru, LOW); // GERİ YÖN KONTAKTÖRÜNÜN ENERJİSİ KESİLDİ
digitalWrite(yildiz_kontaktoru, LOW); // YILDIZ KONTAKTÖRÜNÜN ENERJİSİ KESİLDİ
digitalWrite(ucgen_kontaktoru, LOW);  // ÜÇGEN YÖN KONTAKTÖRÜNÜN ENERJİSİ KESİLDİ
asm volatile ("jmp 0"); // ARDUINO RESETLENDİ
// TÜM ÇIKIŞLARI PASİF YAP BİTTİ
}

void loop()
{
    // YILDIZ ÇALIŞMA SÜRESİNİ EKRANDA GÖSTERME KODLARI BURADA BAŞLADI
    if (digitalRead(ileri_kontaktoru) == LOW && digitalRead(geri_kontaktoru) == LOW)
   {
    myGLCD.clrScr(); //Ekranı temizliyoruz.
    myGLCD.drawBitmap(0, 0, saat, 30, 32); // saat resmi çizildi.
    myGLCD.setFont(SmallFont);
    myGLCD.print("YILDIZ", RIGHT, 0);
    myGLCD.print("SURESI", RIGHT, 12);
    sensorValue=analogRead(A0);
    sensorValue=map(sensorValue,0,1023,0,30);
    extern uint8_t MediumNumbers[];
    myGLCD.setFont(MediumNumbers);
    myGLCD.printNumI(sensorValue, RIGHT, 20);   
    myGLCD.setFont(SmallFont);   
    myGLCD.print("SANIYE", RIGHT, 40);
    delay(75);
   }
   // YILDIZ ÇALIŞMA SÜRESİNİEKRANDA GÖSTERME KODLARI BURADA BİTTİ
   
   // İLERİ YÖN HAREKETİ BAŞLATMA KODLARI BAŞLADI
if (digitalRead(ileri_butonu) == HIGH  && digitalRead(durdurma_butonu) == LOW && digitalRead(geri_kontaktoru) == LOW && digitalRead(ileri_kontaktoru) == LOW)
    {
    //YILDIZ BAĞLANTI ÇALIŞMA KODLARI BURADA BAŞLADI
    myGLCD.clrScr(); //Ekranı temizliyoruz.
    myGLCD.drawBitmap(0, 0, sol, 24, 24); // sol resmi çizildi.
    myGLCD.drawBitmap(0, 24, yildiz, 24, 24); // yıldız resmi çizildi.
    myGLCD.setFont(SmallFont);
    myGLCD.print("SOLA DONUS", RIGHT, 12);
    myGLCD.print("YILDIZ", RIGHT, 36);
    digitalWrite(ileri_kontaktoru, HIGH);
    digitalWrite(geri_kontaktoru, LOW);
    digitalWrite(yildiz_kontaktoru, HIGH);
    digitalWrite(ucgen_kontaktoru, LOW);
    sensorValue = analogRead(potansiyometrePin); // POTANSİYOMETREDEKİ DEĞER OKUNDU
    delay(sensorValue * 30); // YILDIZ BAĞLANTI İÇİN ÇALIŞMA SÜRESİNİ POT İLE AYARLAYINIZ 0-30 SANİYE
    //YILDIZ BAĞLANTI ÇALIŞMA KODLARI BURADA BİTTİ

    //ÜÇGEN BAĞLANTI ÇALIŞMA KODLARI BURADA BAŞLADI
    myGLCD.clrScr(); //Ekranı temizliyoruz.
    myGLCD.drawBitmap(0, 0, sol, 24, 24); // sol resmi çizildi.
    myGLCD.drawBitmap(0, 24, ucgen, 24, 24); // ucgen resmi çizildi.
    myGLCD.setFont(SmallFont);
    myGLCD.print("SOLA DONUS", RIGHT, 12);
    myGLCD.print("UCGEN", RIGHT, 36);   
    digitalWrite(ileri_kontaktoru, HIGH);
    digitalWrite(geri_kontaktoru, LOW);
    digitalWrite(yildiz_kontaktoru, LOW);
    digitalWrite(ucgen_kontaktoru, HIGH);
    //ÜÇGEN BAĞLANTI ÇALIŞMA KODLARI BURADA BİTTİ
   }
   // İLERİ YÖN HAREKETİ BAŞLATMA KODLARI BİTTİ

   // GERİ YÖN HAREKETİ BAŞLATMA KODLARI BAŞLADI
if (digitalRead(geri_butonu) == HIGH  && digitalRead(durdurma_butonu) == LOW && digitalRead(ileri_kontaktoru) == LOW && digitalRead(geri_kontaktoru) == LOW)
   {
    //YILDIZ BAĞLANTI ÇALIŞMA KODLARI BURADA BAŞLADI
    myGLCD.clrScr(); //Ekranı temizliyoruz.
    myGLCD.drawBitmap(0, 0, sag, 24, 24); // sag resmi çizildi.
    myGLCD.drawBitmap(0, 24, yildiz, 24, 24); // yıldız resmi çizildi.
    myGLCD.setFont(SmallFont);
    myGLCD.print("SAGA DONUS", RIGHT, 12);
    myGLCD.print("YILDIZ", RIGHT, 36);   
    digitalWrite(ileri_kontaktoru, LOW);
    digitalWrite(geri_kontaktoru, HIGH);
    digitalWrite(yildiz_kontaktoru, HIGH);
    digitalWrite(ucgen_kontaktoru, LOW);
    sensorValue = analogRead(potansiyometrePin); // POTANSİYOMETREDEKİ DEĞER OKUNDU
    delay(sensorValue * 30); // YILDIZ BAĞLANTI İÇİN ÇALIŞMA SÜRESİNİ POT İLE AYARLAYINIZ 0-30 SANİYE
    //YILDIZ BAĞLANTI ÇALIŞMA KODLARI BURADA BİTTİ
   
    //ÜÇGEN BAĞLANTI ÇALIŞMA KODLARI BURADA BAŞLADI
    myGLCD.clrScr(); //Ekranı temizliyoruz.
    myGLCD.drawBitmap(0, 0, sag, 24, 24); // sağ resmi çizildi.
    myGLCD.drawBitmap(0, 24, ucgen, 24, 24); // ucgen resmi çizildi.
    myGLCD.setFont(SmallFont);
    myGLCD.print("SAGA DONUS", RIGHT, 12);
    myGLCD.print("UCGEN", RIGHT, 36);   
    digitalWrite(ileri_kontaktoru, LOW);
    digitalWrite(geri_kontaktoru, HIGH);
    digitalWrite(yildiz_kontaktoru, LOW);
    digitalWrite(ucgen_kontaktoru, HIGH);
    //ÜÇGEN BAĞLANTI ÇALIŞMA KODLARI BURADA BİTTİ
   }
   // GERİ YÖN HAREKETİ BAŞLATMA KODLARI BİTTİ
}

Saat iconu kodları (saat.c isimli dosya içeriği):
Kod: [Seç]
#include <avr/pgmspace.h>
const unsigned char saat [] PROGMEM={
0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0xF8, 0xFC, 0x3C, 0x3C, 0x3C,
0xFC, 0xFC, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0x00, 0x00, 0x1F, 0x7F, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
0xF8, 0xF8, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07,
0x0F, 0x1F, 0x1F, 0x3F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x3F, 0x1F,
0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00,
};

Sağ ikon kodları (sag.c isimli dosyanın içeriği):
Kod: [Seç]
#include <avr/pgmspace.h>
const unsigned char sag [] PROGMEM={
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x83, 0xC7, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFC, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};

Sol ikon kodları (sol.cisimli dosyanın içeriği):
Kod: [Seç]
#include <avr/pgmspace.h>
const unsigned char sol [] PROGMEM={
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x3F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF,
0xC7, 0xC3, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xF8,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};

Üçgen ikonu kodları (ucgen.c isimli dosyanın içeriği):
Kod: [Seç]
#include <avr/pgmspace.h>
const unsigned char ucgen [] PROGMEM={
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xFC, 0xFE, 0xFC, 0xF0, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xFC,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x60, 0x78, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x78, 0x60, 0x00,
};

Yıldız ikonu kodları (yildiz.c isimli dosyanın içeriği):
Kod: [Seç]
#include <avr/pgmspace.h>
const unsigned char yildiz [] PROGMEM={
0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x30, 0x78, 0x7C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
0x78, 0x78, 0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFC, 0xF8, 0xF8, 0xF8, 0xF0,
0xE0, 0xC0, 0x01, 0x01, 0x03, 0x01, 0xC0, 0xE0, 0xE0, 0xF0, 0xF8, 0xF8, 0xFC, 0xFE, 0x7E, 0x00,
0x00, 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, 0x1F, 0x3F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x3F,
0x1F, 0x1F, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00,
};

Konuya ait tüm dosyaları konu ekinden indirebilirsiniz.
Bu iletiye teşekkür edenler: burak37, Bera, Remzi kaya

34
Projeler / 5. Sobadan kalorifer yapalım
« : 21 Eylül 2015, 06:22:27 »
Bu dersimizde kömür sobasını kalorifer olarak kullanmayı öğreneceğiz.

Yapacağımız sistemin özellikleri:
1. Sistemin çalışması ve güvenlik tedbirleri arduino ile kontrol edilmektedir.

2. Sistemin elektrik kesilmelerine karşı güvenlik tertibatı mevcut olup, elektrik kesintisi durumunda kesintisiz güç kaynağı ile beslenmektedir.

3. Sistemde suyun aşırı ısınması durumunda suyun buhar basıncı oluşturması önlenmiş böylece kazanın patlama riskinin önüne geçilmiştir. Alışıla gelmiş sistemlerde suyun aşırı ısınması sonucunda buhar basıncı oluşmakta ve bu basınçlı buhar bazı güvenlik tedbirleriyle dışarıya atılmaktadır. Oysa ki bu sistemde kesinlikle buhar basıncı oluşmamaktadır ve daha güvenlidir.

4. Kazan suyunun her hangi bir nedenle eksilmesi durumunda sistem bir selenoid valfi açarak şehir şebekesinden otomatik olarak su takviyesi yapmaktadır.

5. Yapılan gözlemlerde kazanda ısınan suyun 5 dakikada en son peteğe ulaştığı gözlenmiştir. Yapılan denemeler neticesinde su pompasının 5'şer dakika aralıklarla çalıştırılıp durdurulmasıyla peteklerin daha fazla ısındığı gözlendi. Bu nedenle arduino programı pompayı 5'şerdakika aralıklarla çalıştırıp durduracak şekilde hazırlanmıştır.

6. Sistem 100 metrekarelik bir dairede denenmiş ve peteklerin üzerindeki maksimum sıcaklık 70 derece olarak ölçülmüştür.

7. Sistem 1 KASIM - 20 MAYIS aralığında çalıştırılmış olup 2 ton kömür tüketmiştir.

8. Sistem; suyun eksik olması, suyun takviyesinin yapıldığı, pompanın çalıştığı ya da durduğu gibi olası periyotlar lcd ekranda görüntülenmekte olup kullanıcıyı bilgilendirmektedir.

9. Sistem deneme yanılma yoluyla bu halini almıştır. Tuğlalı soba yerine kovalı soba kullanılması durumunda sistemin daha verimli çalışacağı kanaati oluşmuş olup bu durumda üst kazan kullanmaya gerek yoktur.

10. Sistem bu haliyle 100 metrekarelik dairedeki 8 metrelik peteği besleyebilmiştir.

11. İsteğe bağlı olarak petek sıcaklığı lcd displayde görüntülenebilmektedir.

Malzeme ve araç gereç listesi:
1. 2 tabaka sac
2. Yemek kazanı (36 litre)
3. Kesintisiz güç kaynağı
4. Kömür sobası
5. Arduino uno
6. 16 x 2 lcd shild
7. BC 238 transistör
8. BC 307 transistör
9. Devirdaim pompası
10. Selenoid valf
11. Led (2 adet)
12. 470R direnç (2 adet)
13. 1N4148 diyot (2 adet)
14. 5Volt röle (2 adet)
15. 100nF kondansatör
16. Köprü diyot
17. 220/9Volt 4 watt trafo
18. 1M direnç
19. Muhtelif iletkenler, kablolar
20. Born vidası (2 adet)
21. Kutu
22. Kablo kanalı
23. Lehimleme araç ve gereçleri
24. Baskı devre araç ve gereçleri
25. El ve güç aletleri
26. LM35

Arduino kodlarımız:
Bu kodlarla arduinomuzu programlıyoruz. İhtiyaç halinde arduino dosyasını konu ekinden indirebilirsiniz.
Kod: [Seç]
// TASARIM: HASANA ERTURK TRABZON MESLEKI VE TEKNIK ANADOLU LISESI 2015 EYLUL

// ALT PROGRAM SU EKSİK OLDUGUNDA POMPAYI DURDUR BASLADI
void su_kes()
{
  digitalWrite(0, HIGH); 
}
// ALT PROGRAM SU EKSİK OLDUGUNDA POMPAYI DURDUR BITTI

// LIKID KRISTAL KUTUPHANESİ EKLENIYOR
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5
// LIKID KRISTAL KUTUPHANESİ EKLENMESI TAMAMLANDI

int sensor=1;
const int sensorpini = 13;                // 13 NOLU PIN SENSOR PINIDIR
int sensor_durum = 0;
int SicaklikPin = 5;   // LM35 sensöre bağlı pin (Analog 0)
int OkunanDeger;       // Analog 0'dan okunacak değer (0-1023) LM35'in vereceğı en büyük okuma değeri 1V=205 olacak.
int Sicaklik;          //

// PIN TANIMLAMALARI BURADA BASLADI
void setup()
{
  lcd.begin(16, 2);             
  lcd.setCursor(0,0);
  lcd.print("temrinlerim.org");                   // ACILISTA LCDDE OKUNACAK YAZI
  pinMode(0, OUTPUT);                             // 0 NOLU PIN SELONOIDI KONTROL EDER
  pinMode(1, OUTPUT);                             // 1 NOLU PIN POMPAYI KONTROL EDER
  pinMode(2,INPUT);                               // INTERPUT KESME ISLEMI GİRİSİ
  pinMode(13,INPUT);                              // 13 NOLU PIN SENSOR GIRIS PINIDIR
  attachInterrupt(0, su_kes, RISING);             // 2 NOLU PIN LOJIK 1 OLDUGUNDA KESMEYI DEVREYE SOKAR su_kes FONKSIYONU CALISMAYA BASLAR
}
// PIN TANIMLAMALARI BURADA BITTI

// ANA PROGRAM BURADA BASLADI
 void loop()
{
  sensor_durum = digitalRead(sensorpini);
  if (sensor_durum == HIGH)
  {
  sensor = digitalRead(13);                       // 13 NOLU PINDEKI LOJIK SEVİYEYI OKU
  digitalWrite(0, sensor);                        // 13 NOLU PINDEKI LOJIK SEVİYE NE İSE 0 NOLU PINE AKTAR
  digitalWrite(1, sensor);                        // 13 NOLU PINDEKI LOJIK SEVİYE NE İSE 1 NOLU PINE AKTAR
  lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(60000);                                    // 1 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)

    lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(60000);                                    // 1 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)

    lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(60000);                                    // 1 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)

    lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(60000);                                    // 1 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)

    lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(60000);                                    // 1 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)

    lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(60000);                                    // 1 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)

    lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(60000);                                    // 1 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)

    lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(60000);                                    // 1 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)

    lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(60000);                                    // 1 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)

 

  digitalWrite(1, LOW);                        // POMPA DURDU 
  lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA DURDU");                       // IKINCI SATIRA POMPA STOP YAZILDI
  delay(300000);                                    // 5 DAKIKA BEKLE (BU SURE SU ISINIRKEN POMPANIN DEVREDEN CIKACAGI SUREYI BELIRLER
  }
  else
  {
    delay(500);                                   // 500 ms BEKLE
    lcd.clear();                                  // LCD TEMIZLE
    digitalWrite(0, LOW);                         // 0 NOLU CIKIS LOJIK 0 OLDU SELONOID ACTI SU ALMA ISLEMI GERCEKLESIYOR
    lcd.setCursor(0,0);                           // ILK SATIRA YAZ
    lcd.print("SU NOKSAN");                       // ILK SATIRA SU NOKSAN YAZILDI
    lcd.setCursor(0,1);                           // IKINCI SATIRA YAZ
    lcd.print("SU TAMAMLANIYOR");                 // IKINCI SATIRA SU TAMAMLANIYOR YAZILDI
  }
}
// ANA PROGRAM BURADA BITTI

Devre şeması:
ISIS ve hex dosyasını konu ekinden indirebilirsiniz.


Baskı devremiz:
ARES dosyasını konu ekinden indirebilirsiniz.


Montaj aşamaları:














































Montajı tamamlanmış kartın test edilmesi:
Test işlemi sırasında 5'şer dakikalık gecikmeler 3 saniye yapılmıştır.
<iframe width="640" height="385" src="//www.youtube.com/embed/YSjF08ofT68?fs=1&start=" frameborder="0" allowfullscreen></iframe>

<iframe width="640" height="385" src="//www.youtube.com/embed/9Qsc4G-wqmA?fs=1&start=" frameborder="0" allowfullscreen></iframe>

<iframe width="640" height="385" src="//www.youtube.com/embed/RGQUHl9cvmA?fs=1&start=" frameborder="0" allowfullscreen></iframe>



Buraya kadar olan işlem basamakları tamamlandığında elektronik kartımız kullanıma hazır hale gelmiş oluyor.

Displeyde SU SOGUDU ve SU ISINDI şeklinde bilgilendirmeler görüntülenmekte. Bu ifadelerin yerine isteğe bağlı olarak petek suyu sıcaklığını gösterebiliriz. Bunun için programda ve devre şemasında bazı değişiklikler yapmamız gerekmekte. Devreye LM35 ısı sönsörünü aşağıdaki şemada gösterildiği şekilde ekliyoruz ve mevcut programımızı değiştiriyoruz.

Kod: [Seç]
// TASARIM: HASANA ERTURK TRABZON MESLEKI VE TEKNIK ANADOLU LISESI 2015 EYLUL

// ALT PROGRAM SU EKSİK OLDUGUNDA POMPAYI DURDUR BASLADI
void su_kes()
{
  digitalWrite(0, HIGH); 
}
// ALT PROGRAM SU EKSİK OLDUGUNDA POMPAYI DURDUR BITTI

// LIKID KRISTAL KUTUPHANESİ EKLENIYOR
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5
// LIKID KRISTAL KUTUPHANESİ EKLENMESI TAMAMLANDI

int sensor=1;
const int sensorpini = 13;                // 13 NOLU PIN SENSOR PINIDIR
int sensor_durum = 0;
int SicaklikPin = 5;   // LM35 sensöre bağlı pin (Analog 0)
int OkunanDeger;       // Analog 0'dan okunacak değer (0-1023) LM35'in vereceğı en büyük okuma değeri 1V=205 olacak.
int Sicaklik;          //

// PIN TANIMLAMALARI BURADA BASLADI
void setup()
{
  lcd.begin(16, 2);             
  lcd.setCursor(0,0);
  lcd.print("temrinlerim.org");                   // ACILISTA LCDDE OKUNACAK YAZI
  pinMode(0, OUTPUT);                             // 0 NOLU PIN SELONOIDI KONTROL EDER
  pinMode(1, OUTPUT);                             // 1 NOLU PIN POMPAYI KONTROL EDER
  pinMode(2,INPUT);                               // INTERPUT KESME ISLEMI GİRİSİ
  pinMode(13,INPUT);                              // 13 NOLU PIN SENSOR GIRIS PINIDIR
  attachInterrupt(0, su_kes, RISING);             // 2 NOLU PIN LOJIK 1 OLDUGUNDA KESMEYI DEVREYE SOKAR su_kes FONKSIYONU CALISMAYA BASLAR
}
// PIN TANIMLAMALARI BURADA BITTI

// ANA PROGRAM BURADA BASLADI
 void loop()
{
  sensor_durum = digitalRead(sensorpini);
  if (sensor_durum == HIGH)
  {
  sensor = digitalRead(13);                       // 13 NOLU PINDEKI LOJIK SEVİYEYI OKU
  digitalWrite(0, sensor);                        // 13 NOLU PINDEKI LOJIK SEVİYE NE İSE 0 NOLU PINE AKTAR
  digitalWrite(1, sensor);                        // 13 NOLU PINDEKI LOJIK SEVİYE NE İSE 1 NOLU PINE AKTAR
  lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA CALISIYOR");                   // IKINCI SATIRA POMPA START YAZILDI
  delay(3000000);                                    // 5 DAKIKA BEKLE (BU SURE POMPANIN DEVREDE KALACAGI SUREYI BELIRLER)
  lcd.clear();                                    // LCD TEMIZLE
  OkunanDeger = analogRead(SicaklikPin); 
  Sicaklik = map (OkunanDeger, 0, 205, 0, 100);   //ANALOG 5'INCI PINDE OKUNANA VOLTAJI DERECEYE DONUSTURUR
  lcd.setCursor(0,0);                             // ILK SATIRA YAZ   
  lcd.print("PETEK: ");                           // ILK SATIRA PETEK: YAZILDI       
  lcd.print(Sicaklik);                            // DEVAMINA HESAPLANAN SICAKLIK YAZILDI
  lcd.print(" DERECE");                           // DEVAMINA SICAKLIK BİRİMİ YAZILDI
  lcd.setCursor(0,1);                             // IKINCI SATIRA YAZ
  lcd.print("POMPA DURDU");                       // IKINCI SATIRA POMPA STOP YAZILDI
  delay(3000000);                                    // 5 DAKIKA BEKLE (BU SURE SU ISINIRKEN POMPANIN DEVREDEN CIKACAGI SUREYI BELIRLER
  }
  else
  {
    delay(500);                                   // 500 ms BEKLE
    lcd.clear();                                  // LCD TEMIZLE
    digitalWrite(0, LOW);                         // 0 NOLU CIKIS LOJIK 0 OLDU SELONOID ACTI SU ALMA ISLEMI GERCEKLESIYOR
    lcd.setCursor(0,0);                           // ILK SATIRA YAZ
    lcd.print("SU NOKSAN");                       // ILK SATIRA SU NOKSAN YAZILDI
    lcd.setCursor(0,1);                           // IKINCI SATIRA YAZ
    lcd.print("SU TAMAMLANIYOR");                 // IKINCI SATIRA SU TAMAMLANIYOR YAZILDI
  }
}
// ANA PROGRAM BURADA BITTI








Mekanik aksam ve su tesisatı














Yukarıda şeilde verilen ölçülerde kömür sobasının tuğlasının etrafına 14 litrelik bir alt kazan yaptırılır. Üst kazan 36 litredir. Yine yukarıda verilen ölçülerde bir boru yaptırılır.

Sistem üst kazandaki su eksildiğinde selenoid valfi devreye sokarak suyun şehir şebekesinden otomatik olarak tamamlanmasını sağlar.

Isınan suyun izlediği yol:
1. Isınan su şekilde 1 ile gösterilen noktadan üst kazandan devir daim pompasına
2. Devir daim pompasından peteklere
3. Petekleri dolaşan su borunun 2 ile gösterilen noktasına
4. Borunun 3 nolu noktasından alt kazanın 4 nolu girişine
5. Alt kazanın 5 nolu çıkışından üst kazanın 6 nolu girişine gider ve bu durum devir daim pompası çalıştığı sürece sonsuza dek devam eder.
Bu iletiye teşekkür edenler: ozer26

35
1982-1986 yılları arasında ABD'de yayınlanan ve dünyanın birçok ülkesinde popüler olan bir televizyon dizisi olan Kara Şimşek, Türkiye'de de TRT tarafından yayınlanmıştır. Bu dizideki Knight Rider ışık efektini arduino kullanarak yapacağız.
<iframe width="640" height="385" src="//www.youtube.com/embed/ArMJQ8h96uM?fs=1&start=" frameborder="0" allowfullscreen></iframe>

Fritzing çizimi:
Fritzing dosyaları ektedir.


Arduino kodlarımız:
Kod: [Seç]
/* Knight Rider 3
 * --------------
 *
 * This example concentrates on making the visuals fluid.
 *
 *
 * (cleft) 2005 K3, Malmo University
 * @author: David Cuartielles
 * @hardware: David Cuartielles, Aaron Hallborg
 */

int pinArray[] = { 3, 4, 5, 6, 7, 8, 9};
int count = 0;
int timer = 10;

void setup(){
  for (count=0;count<8;count++) {
    pinMode(pinArray[count], OUTPUT);
  }
}

void loop() {
  for (count=0;count<6;count++) {
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   digitalWrite(pinArray[count + 1], HIGH);
   delay(timer);
   digitalWrite(pinArray[count], LOW);
   delay(timer*2);
  }
  for (count=6;count>0;count--) {
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   digitalWrite(pinArray[count - 1], HIGH);
   delay(timer);
   digitalWrite(pinArray[count], LOW);
   delay(timer*2);
  }
}
Bu iletiye teşekkür edenler: taha126@gmail.com

36
Arduino Genel / 9. Fritzing İle Devre Tasarımı
« : 05 Temmuz 2015, 12:59:24 »
Fritzing, Arduino ve diğer elektronik tabanlı projelerde prototipten üretime geçerken üretim maliyetlerini azaltmayı ve çıkabilecek fiziksel sorunları en aza indirgemeyi amaçlayan açık kaynak kodlu bir devre tasarım programıdır. İndirmek için şağıdaki resime tıklayınız.



Fritzing, açık kaynak kodlu bir devre tasarım programıdır. Projeleriniz üretime geçmeden önce prototip hazırlamakta kullanılabilir. Linux, Windows, Mac OS X işletim sistemlerinde çalışabilen program, Arduino ve diğer elektronik tabanlı projelerde prototipten üretime geçerken üretim maliyetlerini azaltmayı ve ortaya çıkabilecek fiziksel sorunları en aza indirmeyi amaçlamaktadır.

Programın arayüzü kullanmayı çok basit kılan bir tasarıma sahiptir. Diğer elektronik programlarda olduğu gibi sürükle-bırak mantığı ile malzemeleri proje alanına yerleştiriyorsunuz ve bir breadboard üzerinde kablo yardımıyla malzemeleri birbirine bağlıyorsunuz. Eğer hatalı bir bağlantı yaparsanız program sizi renklerle (görsel olarak) uyarıyor. Bunun yanısıra isterseniz “Breadboard-Schematic-PCB” menüsü ile 3 tür proje görüntüsü arasında geçiş yapabiliyorsunuz. Yani program size şema ve baskı devre çıkarmanız için de yardımcı oluyor. Tabi ki profesyonel bir şekilde çıkaramıyor ama, siz progrtamın devreyi düzenlemesinde biraz yardımcı olursanız program size hiç de hafife alınmayacak seçenekler sunabiliyor. Tüm bunlara ek olarak sonucu PDF’ye aktararak daha sonra herhangi bir yazıcıdan asetata, kağıda vs.. çıktı almanızı mümkün kılıyor.

Programın en büyük eksiği simülasyon özelliğine sahip olmaması, ancak sağladığı Arduino , shield ve modül kütüphanesi desteği programı bu alanda çalışma yapanlar için oldukça kullanışlı hale getiriyor. Simülasyon oluşturma yönünde de çalışmaların olduğu ve yakın zamanda yeni versiyonlarda bu özelliğin kullanıcılara sunulabileceği söyleniyor.

Fritzing Programını İndirme ve Yükleme
Fritzing sitesi üzerinden işletim sisteminize uygun yükleme dosyasını seçip bilgisayarımıza indirerek başlayalım. Programı bilgisayarımıza yüklemek için sayfadaki yönergeleri izleyiniz. Tüm özellikleri aktif halde doğru bir yükleme yaparsanız, büyük parça kütüphaneleri de program içerisine eklenmiş olarak kurulum tamamlanacaktır. Teller, butonlar, dirençler gibi temel bileşenlerin yanı sıra, Arduino kartları ve sensörler de bu kütüphaneye dahil olarak size sunulmaktadır.
Bu iletiye teşekkür edenler: taha126@gmail.com

37
Bir ledin 100'er ms aralıkla yanıp sönmesi isteniyor.
Bu işlemi yapabilmek için izlememiz gereken işlem basamakları şöyle:
1. Arduino ile pc arasındaki bağlantı usb kablodu ile yapılır.
2. Arduino programı çalıştırılır ve araçlar menüsünden kart arduino uno olarak seçilir.
3. Yine araçlar menüsünden arduinonun bağlı olduğu port seçilir. Com1, Com7 gibi. Bu işlemi doğru olarak yapmamız gerekmekte. Aksi halde yazdığımız programı arduinoya aktarmak mümkün olmaz. Hangi com olduğunu anlamak için bilgisayar > özellikler > aygıt yöneticisi > bağlantı noktaları /com ve lpt) seçeneği altında listelenen arduino uno yazısının yanında bulunan com numarasına bakabilirsiniz.
Program kodlarımız:
Kod: [Seç]
void setup() {
  // Burada 13. dijital pini cikis olarak atiyoruz.
  pinMode(13, OUTPUT);
}
void loop() {
  digitalWrite(13, HIGH);   // 13. pindeki ledi yaktik
  delay(200);              // 200 ms bekle
  digitalWrite(13, LOW);    // 13. pindeki ledi sondurduk
  delay(200);              // 200 ms bekle
}
Buradaki kodları tanıyalım:
pinMode
Arduino portları giriş ya da çıkış olarak tanımlanabilir. Bunun için pinMode kodu kullanılır.   pinMode(13, OUTPUT); yazmakla 13 nolu pini çıkış olarak atadık.

loop
Döngü anlamındadır. void loop kodundan sonra açılan süslü parantezle bu parantezin kapandığı yere kadar olan program sürekli tekrarlanır.

digitalWrite
Çıkışın aktif ya da pasif olmasını bu kodla sağlarız. digitalWrite(13, HIGH);  yazmakla 13. pini aktif, digitalWrite(13, LOW); yazmakla pasif yaparız.

delay
Programın her hangi bir yerine bunu yazdığımızda program burada beklemeye geçer. Örneğimizde  delay(200); yazmakla ledimizin yandıktan ve söndükten sonra 200'er ms yanık ya da sönük kalmasını sağladık.


4. Derleme butonuna basarak kodları derliyoruz.

5. Yükle butonuna basarak derlediğimiz programı arduinoya gönderiyoruz.

6. Kaydet butonuna basarak da projemizi bilgisayarımızda istediğimiz bir dizine kaydediyoruz.

İşlem basamakları tamamlandı. 13 nolu pine bağlı olan pindeki ledin yanık söndüğünü izleyebiliriz.

Bu anlatıma ait arduino dosyası ekte mevcuttur.

Bu konu Coşkun TAŞDEMİR'in Arduino Uygula Kitabındaki örneklerden faydalanarak hazırlanmıştır. Kendisine vermiş olduğu emek için buradan teşekkür ederiz. Kitabı satın alarak daha geniş bilgiye sahip olabilirsiniz.
Bu iletiye teşekkür edenler: Şeref ARSLAN

38
Arduino Unoyu programlamak için Arduino programını arduino.cc sitesinden indirmeniz gerekir. Programı indirip arduino.exe dosyasını çalıştırdıktan sonra Tools > Board menüsünden Arduino Unoyu seçiniz.





Arduino Uno üzerindeki ATmega328 e önceden bir bootloader yüklenmiştir. Bu bootloader sayesinde Arduino 'yu programlamanız için harici bir programlayıcı donanımına ihtiyacınız olmaz. Orjinal STK500 programını kullanarak haberleşir.

Ayrıca Arduino ISP kullanarak Arduino 'nun bootloader 'ını devre dışı bırakabilir ve mikrodenetleyiciyi ICSP (In Circuit Serial Programming) pini üzerinden programlayabilirsiniz.

Arduino IDE ‘ yi kurduğumuza ve programlama arayüzüne eriştiğimize göre şimdi sıra “Arduino UNO” kartımızı bilgisayarımıza tanıtmaya geldi. Bunun için;
1-Arduino kartımızı USB kablomuz ile bilgisayarımıza bağlıyoruz. Karşımıza ilk olarak ” Windows Yeni Donanım Bulma Sihirbazı” çıkacak. Burada ” Windows yazılım aramak için Windows Update sitesine bağlanabilir mi?” sorusuna ” Hayır, bu kez değil” seçeneğini seçerek devam ediyoruz.
2-Yeni sayfada karşımıza çıkacak seçeneklerden bu kez “Listeden ya da belirli bir konumdan yükle (Gelişmiş)” seçeneğini seçiyoruz ve ilerliyoruz.
3-Diğer sayfada “Bu konumlarda en iyi sürücüyü ara” seçeneğini seçip, “Arama şu konumu da içersin:”  bölümünü işaretliyoruz ve ardından “Gözat” butonuna basarak daha önceden indirmiş olduğumuz arduino klasörünün içindeki “drivers” klasörünü seçiyoruz. (Ör: C:\arduino-1.04\drivers)
4-Ardından karşımıza çıkan listeden Arduino UNO’ya ait sürücü bilgisini içeren “Arduino UNO” yu seçiyoruz ve ilerliyoruz.
5-Bu aşamada karşımıza bir uyarı penceresi çıkabilir. Buna “Devam et” diyoruz.
6-Dosyaların yüklenmesi bittikten sonra “Son” butonuna basıp yüklememizi tamamlıyoruz. Şu anda Arduino UNO sürücümüz kullanıma hazırdır.

Bu konu Coşkun TAŞDEMİR'in Arduino Uygula Kitabındaki örneklerden faydalanarak hazırlanmıştır. Kendisine vermiş olduğu emek için buradan teşekkür ederiz. Kitabı satın alarak daha geniş bilgiye sahip olabilirsiniz.

Not: smd chipler için kurulum dosyası ektemevcut.
Bu iletiye teşekkür edenler: Bera

39
Tek etkili silindirin denetimi konulu temrin sayfasını konu ekinden indirebilirsiniz.
Temrin sayfasını tarayıcınızda görüntülemek için buraya tıklayınız.
Bu iletiye teşekkür edenler: sezgin

40
Soru: Devrede bir start ve bir stop butonu bulunacak. Start butonuna basınca birinci motor çalışacak. Start butonuna ikinci kez basıldığında birinci motor devreden çıkıp ikinci motor çalışacak. Bu şekilde start butonuna her basışta çalışmakta olan motor durup diğer motor stop butonuna basılana dek çalışacak. Bu işi yapan kumanda devresini ekts programında simüle edip plc ile kurup çalıştırın.

Şuradaki konuda plcnin toog fonksiyonunu kullanarak sorunun çözümünü yapmıştık.
Bu konuda ise sorunun cevabını önce ekts simülasyon programında simüle edip daha sonra ekts çizimini plcye aktaracağız.

Sorunun cevabına ait hazırlanmış olan ekts ve winproladder dosyaları konu ekinde mevcuttur.

Ekts çizimi:


Ekts videosu:

Plc ladder programı:


Plc bağlantısı:
Bu iletiye teşekkür edenler: huseyinhg

41
Problem: Sistemde start ve stop olmak üzere 2 buton bulunmaktadır. Start butonuna basıldığında pres makinesi parçayı tutacak, starta ikinci defa basıldığında ise parçanın üstünden inen bir robot kol markalama yapacaktır. Her hangi bir anda stop butonuna basıldığında her iki çıkış da duracaktır. Sisteme ait plc programını hazırlayıp devreyi çalıştırınız.

Soruya ait temrin sayfasını konu ekinden indirebilirsiniz.
Temrin sayfasını tarayıcınızda görüntülemek için buraya tıklayınız.
Bu iletiye teşekkür edenler: kromozom

42
Problem: 1 fazlı asenkron motor 3 butonla kumanda edilecektir. Motor ileri butonuna basıldığında ileri yönde, geri butonuna basıldığında ise geri yönde dönecek. Motor dönerken devir yönünü değiştirmek için öncelikle motorun durdurulması gerekmektedir. Gerekli kumanda devresini plc ile oluşturup çalıştırınız.

Problemin çözümüne ait temrin sayfasını konu ekinden indirebilirsiniz.
Temrin sayfasını tarayıcınızda görüntülemek için buraya tıklayınız.
Bu iletiye teşekkür edenler: mosar

43
Temel elektronik / Varikap ve led
« : 25 Ekim 2014, 20:40:34 »
Varikap ve led diyotlar hakkında kaynak.
http://temrinlerim.org/index.php?page=varikap_ve_led
Bu iletiye teşekkür edenler: taha126@gmail.com

44
Sunular / Laboratuvar 1
« : 06 Ekim 2014, 20:04:27 »
Laboratuvar 1

İndir
Bu iletiye teşekkür edenler: taha126@gmail.com

45
Elektrik Elektronik Ölçme / 1- Direnç ölçme
« : 06 Ekim 2014, 11:42:57 »
Direnç ölçme konulu temrini konu ekinden indirebilirsiniz.
Temrin sayfasını tarayıcınızda görüntülemek için buraya tıklayınız.
Bu iletiye teşekkür edenler: ulas346854

Sayfa: 1 2 [3] 4