Arduino Tabanlı Trafik Işığı Kontrolörü Nasıl Yapılır?

Trafik Işıkları, bir yolun kesişme noktalarında, yaya geçitlerinde ve diğer konumlarda 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 motoru hazırlamalarını veya çalıştırmalarını söyler ve yeşil ışık, devam etmeniz gerektiğini belirtir.



Trafik ışıkları

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ı anlatın, böylece sinyalleme sürecinde mükemmel anahtarlama zamanlaması elde edilebilir. 4 LED'in 4 kombinasyonu kullanılacak ve test amacıyla devre tahtasına yerleştirilecektir.



Seeeduino v4.2 Kullanarak 4 Yönlü Trafik Sinyali Nasıl Yapılır?

Trafik sinyalleri, trafik akışının düzgün ve istikrarlı bir şekilde devam etmesi 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 eksiksiz 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.



  • Seeeduino V4.2
  • Atlama Telleri
  • LED (4xYeşil, 4xSarı, 4xRed)
  • 12V AC'den DC'ye Adaptör

Adım 2: Bileşenleri İncelemek

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.2 Mikrodenetleyici 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 çipi olarak kullanılabildiğinden, UART-USB dönüştürücü olarak ATMEGA16U2'ye sahiptir. genel olarak 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.

Seeeduino



KİME Breadboard 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:

Breadboard

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'in on beş saniye boyunca yeşil olması durumunda, diğer tüm kırmızı LED'lerin on beş saniye boyunca açık kalacağı anlamına gelir.

Adım 4: Devreyi Yapmak

Artık bileşenlerin ana çalışmasını bildiğimiz için, devam edelim ve devreyi yapmak için bileşenleri birleştirmeye başlayalım. Tüm bileşenleri devre tahtasında doğru şekilde bağlamak için aşağıdaki adımları izleyin.

  1. Ö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.
  2. 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.
  3. Şimdi bağlantı kablolarını uygun şekilde bağlayın.
  4. Şimdi LED'leri aşağıdaki devre şemasında gösterildiği gibi Arduino'ya bağlayın. Arduino Uno kartının pin1, pin2'den pin12'ye kadar LED-1, LED-2'den LED-12'ye kadar bağlanacaktır.
  5. Kodu Arduino Uno'ya yükleyin ve bir Dizüstü Bilgisayar veya AC'den DC'ye adaptör kullanarak çalıştırın.
  6. Devre aşağıda gösterilen resme benzeyecektir:

    Devre şeması

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 son sürümünü şu adresten indirebilirsiniz: buraya ve aşağıda belirtilen adımları izleyin:

1). Arduino kartı bilgisayarınıza 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.

Bağlantı Noktası Bulma

2). Şimdi Arduino IDE'yi açın. Araçlar'dan Arduino kartını şu şekilde ayarlayın: Arduino / Genuino UNO.

Ayar Panosu

3). Aynı Araç menüsünden, kontrol panelinde gördüğünüz bağlantı noktası numarasını ayarlayın.

Bağlantı Noktası Ayarlama

4). Aşağıda ekli kodu indirin ve IDE'nize kopyalayın. Kodu yüklemek için, yükle düğmesine tıklayın.

Yükle

Kodu şu şekilde indirebilirsiniz: buraya tıklayın.

Adım 6: 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 (led1, OUTPUT) olarak ayarlandı; // LED'lere bağlı tüm pinler OUTPUT pinMode (led2, OUTPUT) olarak ayarlanır; pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (led6, OUTPUT); pinMode (led7, OUTPUT); pinMode (led8, OUTPUT); pinMode (led9, OUTPUT); pinMode (led10, OUTPUT); pinMode (led11, OUTPUT); pinMode (led12, OUTPUT); }

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 üzerinde (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 üzerinde (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 üzerinde (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 (2000); // 2 saniyelik gecikme nedeniyle birinci ve ikinci tarafın sarı ışığı yanık kalacaktır

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.