Posted by : MC 1 Mart 2015 Pazar

Görünüşte oldukça basit ancak kullanışlı bir sistemden bahsedeceğiz.

Aduino ile oluşturulmuş olan bir otopark sistemi.Sistemde giriş ve çıkışa izin veren bir adet servo motora bağlanılmış kol bulunuyor.Yine sistemde araçların giriş çıkışının sağlanması ve giriş çıkış kolunun kontrolü açısından giriş ve çıkışlarda butonlar bulunmakta.Otoparkta kaç adet araçlık yer olduğunu belirtmek açısından da 7segment display kullanılmış.


Gelelim kodlama kısmına

#include <Servo.h>
Servo myservo;  // servo motor tanımlanmıs

#define ServoM    12        //servo motor kontrol pini
#define Bright    11        
#define Exit      9         //çıkış butonu tanımlanmış
#define In        8         //Giriş butonu tanımlanmış

#define BarLow    177       //Bariyerin en düşük pozisyonu ayarlanmış
#define BarUp     95        //Bariyerin en yüksek pozisyonu ayarlanmış
#define CAPACITY  8         //Otopark kapasitesi belirlenmiş
#define INTEN     80        

//7segment display bacakları tanımlanmış
#define  segA  0
#define  segB  1
#define  segC  2
#define  segD  3
#define  segE  4
#define  segF  5
#define  segG  6

//0-9 arasındaki rakamların 7 segmente gönderilmesi için bir dizi tanımlanmış
byte segments[10] = {

  B00111111, //  0
  B00000110, //  1
  B01011011, //  2
  B01001111, //  3
  B01100110, //  4
  B01101101, //  5
  B01111101, //  6
  B00000111, //  7
  B01111111, //  8
  B01101111  //  9
};

void setup(){
  myservo.attach(ServoM);// tanımlanan servo kontrol pini ile 
servo değişkeni birleşt 

  pinMode(Exit, INPUT); // çıkış butonu pini input olarak ayarlandı
  pinMode(In, INPUT);   // Giriş butonu input olarak ayarlandı
  digitalWrite(Exit, HIGH);// pull up direnci ile kullanılacak
  digitalWrite(In, HIGH);  // pull up direnci ile kullanılacak
  pinMode(segA,OUTPUT);   //her bir 7segment display bacagına gidecek 
pin output oldu
  pinMode(segB,OUTPUT);
  pinMode(segC,OUTPUT);
  pinMode(segD,OUTPUT);
  pinMode(segE,OUTPUT);
  pinMode(segF,OUTPUT);
  pinMode(segG,OUTPUT);
  pinMode(Bright,OUTPUT);
  analogWrite(Bright,255*INTEN/100);//parlaklık ayarı yapıldı
  myservo.write(BarLow);//servo motor bariyerin en dusuk pozisyonuna 
kadar hareket etti
//  delay(1000);
}

int  Available= 9;// Otoparktaki boş alan bilgisi integer
 olarak ayarlandı

//================================================================
void loop(){
Display(Available); // otoparktaki boş alan sayısı diplaye yazdırıldı
if(digitalRead(In)==0)//giriş butonuna basıldımı
{
  if(Available != 0){//otoparkta boş alan var mı ?
    Available--;// boş alan var ise boş alan sayısını 1 azalt
    myservo.write(BarUp);//bariyeri aç
    delay(3000);//3 sn gecikme
    myservo.write(BarLow);//bariyeri kapat
    }
  }
if(digitalRead(Exit)==0)// çıkış butonuna basıldı mı?
{
  if(Available != CAPACITY){//boş alan sayısı toplam kapasiteye eşit mi?
    Available++;//değilse boş alan sayısını 1 arttır
    myservo.write(BarUp);//bariyeri kaldır
    delay(3000);//3 sn bekle
    myservo.write(BarLow);// bariyeri kapat
    }
  }
}


void Display(int number){// 7segment displaye deger yazdırma fonksiyonumuz
byte segs =  ~segments[number];//"~" ortak anot için kullanıldı

digitalWrite(segA, bitRead(segs, 0) );
digitalWrite(segB, bitRead(segs, 1) );
digitalWrite(segC, bitRead(segs, 2) );
digitalWrite(segD, bitRead(segs, 3) );
digitalWrite(segE, bitRead(segs, 4) );
digitalWrite(segF, bitRead(segs, 5) );
digitalWrite(segG, bitRead(segs, 6) );
}


Sistemde birkaç değişiklik yapılabilir.

Örneğin giiş çıkış butonları yerine yaklaşım sensörleri kullanılabilir.Yine otomobilin bariyer altında olup olmadığı kontrol edilmelidir.Aracın üstüne bariyerin kapanmasını istemeyiz nihayetinde :)

{ 45 Comments... read them below or Comment }

  1. Ustam bunun malzeme listesini paylasirmisiniz acilll

    YanıtlaSil
    Yanıtlar
    1. malzeme listesi ilk semada acıkca goruluyor
      direnc degerleri ve 5V step motor
      dizayn kısmı ve gorsellik katmak ise sizin zevkinize kalmış

      Sil
  2. Buton yerine sensor koysam kodda nasıl bi değişiklik yapmalıyım

    YanıtlaSil
    Yanıtlar
    1. kontak çıkışı veren sensör kullanmanız halinde kodları değiştirmeden direkt olarak butonları yerine kullanabilirsiniz
      Daha güvenilir bir metod içinse optocoupler ile izole etmeniz önerilir

      Sil
  3. malzeme listesini ve nasıl yaptığını anlatırmısın çok azil bititrme ödevi yapcam

    YanıtlaSil
    Yanıtlar
    1. İlk resimde malzeme listesi açıkça görülmektedir.
      1 adet arduino uno geliştirme kartı
      1 adet servo motor kapı kontrolü için
      2 adet buton giriş çıkış kontrolü için
      1 adet 7 segment display araç kapasitesi için
      7 adet 470 ohm direnç 7 segment üzerindeki her bir ledi korumak için

      Sil
    2. Bu yorum yazar tarafından silindi.

      Sil
  4. HOCAM ARACLARIN GIRIS VE CIKISI AYRI SERVE MOTORMU KULLANACAZ.

    YanıtlaSil
    Yanıtlar
    1. projede arac giris cikislari tek kapi uzerinden yani 1 adet servo motor kullanilmistir

      Sil
  5. mehmet caner çakar. adaşım şimdi bu koda ek olarak otoparka girecek aracın yuksekliğine göre (oyuncak araba için mesela 10 cm altı araclar girebilir şeklinde) izin veren bir kodu nasıl ekleyebiliriz ?

    YanıtlaSil
    Yanıtlar
    1. ilk olarak bize arabanın yuksekligi gerekli bunun için biri zemini referans alcak digeri arabanın tavanını referans alacak ve aradaki mesafe farkından bize aracın yuksekligi soylecek 2 adet ultrasonik sensor gerekli sonrasında ise otoparkta bos alan varmı sorgusu yaptıgımız if kosulu içerisinde && ibaresi ile birlikte aracın yuksekligi uygunmu sorgusunu da eklememiz gerekir basitce bir if ornegi ile gostereli if(Avaible!=0 && arac_yukseklik<10) gibi

      Sil
  6. hocam sensör olarak ne kullanacağımıza karar veremedik de yardımcı olabilir misiniz bu projeye uygun sensör için?

    YanıtlaSil
    Yanıtlar
    1. Aslına bakarsanız giriş ve çıkışta cisim algıladıgı anda size kontak çıkışı veren sensör kullanabilirsiniz bu sensorler genellikle verici ve alıcı olarak calısır lazer ve ayna ile karsılıklı olarak kullanılırlar aynası kendi uzerinde olan tek parca modellerde bulunmakta

      Bunun yanı sıra ultrasonik sensör kullanarak mesafe ile de giriş çıkış kontrolü sağlayabilirsiniz ancak kodlarda değişime gitmeniz ve kapı açılma durumlarında arac su kadar yakınsa kosulunu eklemeniz gerekir ne kadar sağlıklı çalışır bu durumda denemek gerekiyor

      Sil
  7. Bu yorum yazar tarafından silindi.

    YanıtlaSil
    Yanıtlar
    1. butonları pull up direnci ile bağlamalısınız bu durumda motorun surekli donmesi engellenmis olacak lakin su anda her durumda giris ve cıkıs fonksiyonları içerisine giriyor

      Öte yandan projede de belirtildiği gibi motorun en üst ve alt seviyeleri belirli bir yüksekliğe ayarlanmıs sizde motorunuzun en üst ve alt derecelerini en yukarıda yer alan seviye degiskenlerine atamalısınız

      Sil
    2. Bu yorum yazar tarafından silindi.

      Sil
  8. sensör kullandın mı kardeşim ?

    YanıtlaSil
    Yanıtlar
    1. Bu projede sensör kullanılmamış araç girişi ve çıkışı için 2 adet buton üzerinden bilgi akışı sağlanmış diğer yorumları kontrol ederseniz nasıl bir sensör kullanabileceğiz konusunun üzerinden geçilmiştir

      Sil
  9. Merhaba bu projenin kablo bağlantılarının anlatımını ayrıntılı bir şekilde nereden bulabilirim acaba?

    YanıtlaSil
    Yanıtlar
    1. aslına bakarsanız ilk resimde bağlantılar açıkça görülüyor takıldığınız noktada yardımcı olmaya çalışabiliriz

      Sil
  10. projenin kablo bağlantılarının olduğu resim nerde acaba

    YanıtlaSil
  11. Bu yorum yazar tarafından silindi.

    YanıtlaSil
  12. birader bu seklin semasını atarmısın kablo baglantı sekıllerini

    YanıtlaSil
  13. Anladığım kadarıyla butondan kasıt alta ki aliminyum folyalar dimi ?

    YanıtlaSil
  14. hocam merhaba 7 segment yerine 2x16 display (lcd) kullanmak istersek negi bi değişiklik yapmalıyız kod da,
    örneğin akıllı otoparka hoşgeldiz.

    YanıtlaSil
  15. lcd ekranımıza bide dht11 sıcaklık&nem sensörü eklemek istersek
    örneğin sıcaklık 25 C nem 50 nasıl yapabiliriz.

    YanıtlaSil
  16. hocam elinize sağlık otoparkın etrafını karanlık olunca FOTO(LDR) DİRENÇ takmak istersek arduinoda ne gibi bi kod ekstradan ekliyebiliriz

    YanıtlaSil
  17. hocam sorularıma cevap alamadım.

    YanıtlaSil
  18. kusura bakmayin is yogunlugu dolayisi ile uzun bir suredir blogla ilgilenemedim 7 segment yerine lcd kullanabilirsiniz bunun icin projenize lcd kutuphanesini eklemeniz ve arac sayisi gibi bilgileri o.kutuphanenin lcd.print fonsiyonu sayesinde yazdirabilirsiniz. dht11 kutuphanesi kullanilarak birazda gecikme yani delay verilerek 7 segment uzerinden sicaklik ve nem bilgileri yazdirilabilir.foto ldr direnci sanirim aksam oldugunda otomatik aydinlatma yapma aamci ile kullanacaksini bunun icin analog giristen o direnc uzerinden akim gecirerek isiklarin yanmasini istediginiz seviyede bir adet digital cikis tetiklemeniz gerekir bu algoritmayi da mevcutun sonuna ekleyebilirsiniz

    YanıtlaSil
    Yanıtlar
    1. hocam lcd için kodu paylaşabilirmisiniz ben kaç gündür uğraşıyorum yapamadım

      Sil
  19. hocam kodları kopyalayamıyorum link koyabilir misiniz ?

    YanıtlaSil
  20. Merhabalar hocam. Bitirme projesi aldım bana yardımcı olabilir misiniz ?

    YanıtlaSil
  21. selamlar bu sistemi süreli yani süre takibini nasil saglayabiliriz örnegin bu sistemi sensör degil irfid kart ile giris saglayip giris saati ile cikis saatini iceride bulundugu süreyi hesaplayacak sekle gelmesi mumkunmu ?

    YanıtlaSil
  22. Hocam tel yazarmısın sizinle görüşmek isterim

    YanıtlaSil
  23. Hocam bir çok kişi paylaşımından yararlanmış. Ben de Otomatik ışığa veya zamanlayıcı ile açılıp kapanabilen kümes kapısı üzerinde çalışıyorum. Arduino ve servo motor işimi görür mü? böyle bir şema mevcut mu? rica etsem. Makbule geçer..

    YanıtlaSil
  24. Keske kodu kes yapıştır yapabilsek

    YanıtlaSil
  25. abi Display(Available); kısmında hata veriyor 2 saattir uğraşıyorum çözemedim

    YanıtlaSil
  26. Hocam LCD ekrana yazdırma komutuda kodların içinde var mı yoksa sadece segment kodları mı mevcut?

    YanıtlaSil
  27. İYİ GÜNLER KOLAY GELSİN PROJENİN RESİMLERİNE NEREDEN ULAŞABİLİRİZ

    YanıtlaSil
  28. Are sen seyir için amfitiyatro çati ve Otopark kapama? Onart.com.tr teklif ferrari PVC and mehler PVC içinde Türkiye.

    YanıtlaSil
  29. Hocam bu projeye yakınlık sensörü eklenmiş kodunu ve şemasını gönderirmisıniz?

    YanıtlaSil
  30. Hocam bunun akış şeması nasıl olur proje hazırlıyorumda sayısal entegrelerle hazırlıcam

    YanıtlaSil
  31. Kodda bazı hatalar veriyor doğru olmasına rağmen nasıl düzeltilir

    YanıtlaSil

ELEKTRO BLOGGER A HOŞGELDINIZ

ARAMA YAP

EN COK OKUNANLAR

- Copyright © ELEKTRO-BLOGGER Blogger