Arduino Tabanlı Trafik Işığı Kontrol Cihazı Nasıl Yapılır?
Trafik Işıkları, bir yolun, yaya geçitlerinin ve diğer konumların kesişim noktalarında trafik akışını kontrol etmek için kullanılan sinyal cihazlarıdır. Kırmızı, Sarı ve Yeşil olmak üzere üç ışık renginin birleşimidir. Kırmızı ışık insanlara durmalarını, sarı ise hazır olmalarını veya motorun kapatılması durumunda çalıştırmalarını söyler ve yeşil ışık, devam etmeniz gerektiğini belirtir.
Bu projede mikrodenetleyici kullanarak 4 yollu trafik sinyal sistemi yapacağız. Biz yakacağız C Kodu Arduino Uno kartında, LED'lerin nasıl açılıp kapatılacağını anlatmak, böylece sinyalleme sürecinde mükemmel anahtarlama zamanlaması elde edilebilir. Test amacıyla 4 LED'in 4 kombinasyonu kullanılacak ve devre tahtasına yerleştirilecektir.
Seeeduino v4.2 Kullanarak 4 Yönlü Trafik Sinyali Nasıl Yapılır?
Trafik sinyalleri, trafiğin düzgün ve istikrarlı bir şekilde akışını sağlamak için yollara takılan en önemli şeydir ve kaza olasılığını en aza indirir. Bu projeyi küçük bir breadboard üzerinde yapabiliriz. Bu proje hakkında biraz bilgi toplayalım ve çalışmaya başlayalım.
Adım 1: Bileşenleri Toplama
Herhangi bir projeye başlamak için en iyi yaklaşım, başlangıçta tüm bileşenlerin bir listesini yapmak ve her bir bileşenin kısa bir incelemesini yapmaktır. Bu, projenin ortasındaki rahatsızlıklardan kaçınmamıza yardımcı olur. Bu projede kullanılan tüm bileşenlerin tam listesi aşağıda verilmiştir.
Adım 2: Bileşenlerin İncelenmesi
Artık projemizin özetini bildiğimiz ve tüm bileşenlerin tam bir listesine sahip olduğumuza göre, bir adım öne geçelim ve kullanacağımız bileşenlerin kısa bir incelemesinden geçelim.
Seeeduino v4.2Mikrodenetleyici Atmega 328 MCU'ya dayanan dünyanın en iyi Arduino uyumlu kartlarından biridir. çünkü kullanımı kolay, daha kararlı ve diğer birçok karttan daha iyi görünüyor. Arduino önyükleyicisine dayanmaktadır. FTDI yongası olarak kullanılabildiğinden, UART-USB dönüştürücü olarak ATMEGA16U2'ye sahiptir. Genelde android kablosu olarak adlandırılan mikro USB kablosu kullanılarak bilgisayara bağlanır. Karta güç sağlamak için bir DC jakı da kullanılabilir. giriş gücü 7V ile 15V arasında olmalıdır.
bir ekmek tahtasılehimsiz bir cihazdır. Geçici prototip elektronik devreleri ve tasarımlarını yapmak ve test etmek için kullanılır. Elektronik bileşenlerin çoğu, sadece pinlerini devre tahtasına yerleştirerek bir devre tahtasına bağlanır. Devre tahtasının deliklerine bir metal şerit yerleştirilir ve delikler belirli bir şekilde bağlanır. Deliklerin bağlantıları aşağıdaki şemada gösterilmektedir:
Adım 3: Çalışma Prensibi
4 yönlü Trafik Sinyali projesinin çalışma prensibine kısa bir giriş yapalım. Bu 4 yönlü olduğu için on iki LED'e ve üç LED'in dört kombinasyonuna ihtiyacımız olacak. Kod, bir kombinasyon yeşil ışık gösteriyorsa, diğer tüm kombinasyonlar kırmızı ışık gösterecek şekilde yazılmıştır. Bir sinyal yeşilden sarıya veya kırmızıdan sarıya değişiyorsa, LED'lerin başka bir kombinasyonu da sırasıyla kırmızıdan sarıya veya sarıdan kırmızıya bir işlem gösterecektir.
Bunların tümü, sinyallerin geçişi arasında bir zaman gecikmesi ile yapılacaktır. Örneğin, bir LED neredeyse on beş saniye yeşil kalacaktır, bir LED neredeyse iki saniye boyunca sarı kalacaktır. Kırmızı LED'in süresi yeşil LED'in süresine bağlıdır. Bu, bir LED on beş saniye boyunca yeşilse, diğer tüm kırmızı LED'lerin on beş saniye boyunca açık kalacağı anlamına gelir.
Adım 4: Devreyi Yapmak
Şimdi bileşenlerin ana işleyişini bildiğimize göre, devam edelim ve devreyi oluşturmak için bileşenleri birleştirmeye başlayalım. Devre tahtasındaki tüm bileşenleri doğru şekilde bağlamak için aşağıdaki adımları izleyin.
- Öncelikle tüm LED'leri alın ve bunları kırmızı, sarı ve yeşil olarak doğru sırada devre tahtasına bağlayın.
- Tüm LED'lerin topraklarının ortak bağlantısını yapın. LED'in pozitif terminaline 220 ohm'luk bir direnç bağlamak daha iyidir.
- Şimdi bağlantı kablolarını uygun şekilde bağlayın.
- Şimdi LED'leri aşağıdaki devre şemasında gösterildiği gibi Arduino'ya bağlayın. LED-1, LED-2'den LED-12'ye kadar Arduino Uno kartının pin1, pin2'den pin12'ye bağlanacaktır.
- Kodu Arduino Uno'ya yükleyin ve bir Dizüstü Bilgisayar veya AC'den DC'ye adaptör kullanarak çalıştırın.
- Devre, aşağıda gösterilen resim gibi görünecektir:
Adım 5: Arduino'ya Başlarken
Daha önce Arduino IDE'ye aşina değilseniz endişelenmeyin çünkü aşağıda Arduino IDE'yi kullanarak mikrodenetleyici kartında kod yazma işleminin net adımlarını görebilirsiniz. Arduino IDE'nin en son sürümünü buradan indirebilir ve aşağıda belirtilen adımları takip edebilirsiniz:
1). Arduino kartı PC'nize bağlandığında, "Kontrol paneli" ni açın ve "Donanım ve Ses" e tıklayın. Ardından "Aygıtlar ve Yazıcılar" a tıklayın. Arduino kartınızın bağlı olduğu bağlantı noktasının adını bulun. Benim durumumda "COM14" ama sizin PC'nizde farklı olabilir.
2). Şimdi Arduino IDE'yi açın. Araçlar'dan Arduino kartını şu şekilde ayarlayın: Arduino / Genuino UNO.
3). Aynı Araç menüsünden, kontrol panelinde gördüğünüz bağlantı noktası numarasını ayarlayın.
4). Aşağıda ekli kodu indirin ve IDE'nize kopyalayın. Kodu yüklemek için yükle düğmesine tıklayın.
Kodu buraya tıklayarak indirebilirsiniz.
6. Adım: Kod
Kod iyi yorumlanmış ve açıklayıcıdır, ancak yine de kodun bir kısmı aşağıda kısaca açıklanmıştır.
1. Başlangıçta, daha sonra Arduino'ya bağlanacak olan tüm pinler adlandırılır.
int led1 = 1; // kırmızı ışık 1 int led2 = 2; // sarı ışık 1 int led3 = 3; // yeşil ışık 1 int led4 = 4; // kırmızı ışık 2 int led5 = 5; // sarı ışık 2 int led6 = 6; // yeşil ışık 2 int led7 = 7; // kırmızı ışık 3 int led8 = 8; // sarı ışık 3 int led9 = 9; // yeşil ışık 3 int led10 = 10; // kırmızı ışık 4 int led11 = 11; // sarı ışık 4 int led12 = 12; // yeşil ışık 4
2. geçersiz kurulum ()Arduino kartının tüm pinlerinin INPUT veya OUTPUT olarak kullanılacağını ilan ettiğimiz bir fonksiyondur. Baud Hızı da bu işlevde ayarlanır. Baud Hızı, mikro denetleyici kartının harici cihazlarla iletişim kurduğu saniyede bit cinsinden iletişim hızıdır. Bu işlev, mikro denetleyici kartının etkinleştirme düğmesine basıldığında yalnızca bir kez çalışır.
void setup () {Serial.begin (9600;) // Baud Hızı 9600 pinMode'a ayarlandı (led1, OUTPUT); // LED'lere bağlı tüm pinler OUTPUT pinMode (led2, OUTPUT) olarak ayarlanır; pinMode (led3, ÇIKIŞ); pinMode (led4, ÇIKIŞ); pinMode (led5, ÇIKIŞ); pinMode(led6,ÇIKIŞ); pinMode (led7, ÇIKIŞ); pinMode (led8, ÇIKIŞ); pinMode(led9,ÇIKIŞ); pinMode (led10, ÇIKIŞ); pinMode(led11,ÇIKIŞ); pinMode (led12, ÇIKIŞ); }
3. boşluk döngüsü, bir döngü içinde tekrar tekrar çalışan bir işlevdir. Bu işlevde, mikro denetleyicinin harici LED'leri kontrol edeceği tüm prosedürü kodlayacağız. Aşağıda küçük bir kod parçası verilmiştir. Burada birinci tarafın yeşil ışığı yanıyor ve diğer tüm tarafların kırmızı ışığı yanıyor. Bu ışıklar 15 saniye bu durumda kalacaktır. 15 saniye sonra, birinci ve ikinci tarafın sarı ışığı yanacak ve diğer iki tarafın kırmızı ışığı yanmaya devam edecektir. İki saniyelik bir gecikmeden sonra, birinci tarafın kırmızı ışığı yanacak ve ikinci tarafın yeşil ışığı yanacaktır. Bu, dört tarafın da yeşil ışıkları açılıncaya kadar gerçekleşecek, sıraları geldiğinde ve döngü kendini tekrarlayacaktır.
digitalWrite (led1, DÜŞÜK); // Birinci taraftaki kırmızı ışık kapalı digitalWrite (led2, LOW); // sarı ışık f birinci taraf kapalı digitalWrite (led3, HIGH); // Birinci tarafın Yeşil Işığı digitalWrite üzerindedir (led4, HIGH); // İkincil tarafın kırmızı ışığı digitalWrite üzerinde (led5, LOW); //ikinci tarafın sarı ışığı kapalı digitalWrite(led6,LOW); // ikinci tarafın yeşil ışığı kapalı digitalWrite (led7, HIGH); // Üçüncü tarafın kırmızı ışığı digitalWrite üzerinde (led8, LOW); // üçüncü tarafın sarı ışığı kapalı digitalWrite (led9, LOW); // üçüncü tarafın yeşil ışığı kapalı digitalWrite(led10,HIGH); // dördüncü tarafın kırmızı ışığı digitalWrite üzerindedir (led11, LOW); // dördüncü tarafın sarı ışığı kapalı digitalWrite (led12, LOW); // dördüncü tarafın yeşil ışığı gecikme gecikmesidir (15000); // 15 saniyelik gecikme nedeniyle, ilk tarafın yeşil ışığı ve diğer üç tarafın kırmızı ışıkları 15 saniye süreyle açık kalacaktır digitalWrite (led1, LOW); // birinci tarafın kırmızı ışığı kapalı digitalWrite (led2, HIGH); // Birinci tarafın sarı ışığı digitalWrite üzerindedir (led3, LOW); // birinci tarafın yeşil ışığı kapalı digitalWrite (led4, LOW); // ikinci tarafın kırmızı ışığı kapalı digitalWrite(led5,HIGH); // İkinci tarafın sarı ışığı digitalWrite üzerindedir (led6, LOW); // ikinci tarafın yeşil ışığı kapalı digitalWrite (led7, HIGH); // Üçüncü tarafın kırmızı ışığı digitalWrite'ta(led8,LOW); // üçüncü tarafın sarı ışığı kapalı digitalWrite (led9, LOW); // üçüncü tarafın yeşil ışığı kapalı digitalWrite(led10,HIGH); // dördüncü tarafın kırmızı ışığı digitalWrite üzerindedir (led11, LOW); // dördüncü tarafın sarı ışığı kapalı digitalWrite (led12, LOW); // dördüncü tarafın yeşil ışığı gecikme gecikmesidir (2000); // 2 saniyelik bir gecikme nedeniyle birinci ve ikinci tarafın sarı ışığı yanık kalacak
Yani, 4 yönlü trafik sinyali oluşturmanın tüm prosedürü buydu. Şimdi, öğreniminiz veya bir okul projesi için hazırlamanın tadını çıkarabilirsiniz.