Yazılardaki ürünleri komponentci.net'te inceleyebilir, hemen sipariş verebilirsiniz.komponentci.net →
KomponentciBlog Mağaza
Blog  ›  Projeler

Kumandalı Otomatik Perde: 28BYJ-48 Step Motor ve IR

Kumandalı Otomatik Perde: 28BYJ-48 Step Motor ve IR
Kısa cevap

Kumandalı otomatik perde maketi; 28BYJ-48 step motor, ULN2003 sürücü kartı, IR kumanda alıcısı ve Arduino Uno ile yapılır. Kumandanın yukarı tuşu perdeyi açar, aşağı tuşu kapatır; Arduino attığı adımları sayarak perdenin konumunu bilir. Bir mikro switch, açılışta perdenin tam açık noktasını bulmaya yarar.

Akıllı evlerdeki motorlu perdeler, küçük bir maketle sınıfta da gösterilebilir. Bu yazıda 28BYJ-48 step motor, ULN2003 sürücü kartı, IR kumanda ve Arduino Uno ile kumandayla açılıp kapanan bir stor perde maketi yapıyoruz. Ortaokul, lise ve meslek lisesi öğrencileri için malzeme listesi, adım adım bağlantı, açıklamalı kod, güvenlik notları ve TÜBİTAK 4006 sergisi için sunum önerileri yazıda yer alıyor.

Kumandalı otomatik perde nedir?

Kumandalı otomatik perde, bir motorun perdeyi bir makaraya sararak açtığı ya da makaradan bırakarak kapattığı, komutların da uzaktan kumandayla verildiği bir ev otomasyonu uygulamasıdır. Bu projede gerçek bir perde değil, ayakkabı kutusu boyutunda bir pencere maketi kullanılır.

Step motor seçilmesinin nedeni konum bilgisidir. Step motor her komutta belirli bir açı kadar döner. Arduino attığı adımları sayarak perdenin ne kadar açık olduğunu her an bilir; ayrı bir konum sensörüne gerek kalmaz.

Hangi malzemeler gerekir?

Arduino Uno, 28BYJ-48 motor ve ULN2003 sürücü kartı seti, HX1838 IR kumanda ve alıcı kiti, bir mikro switch ve jumper kablolar yeterlidir. Maket için karton kutu, kalem ya da ahşap çubuk ve hafif bir kumaş veya kâğıt gerekir.

Malzeme listesi

MalzemeAdetNe işe yarar?
Arduino Uno R3 (CH340, USB kablolu)1Kumanda kodunu çözer, motoru yönetir
28BYJ-48 redüktörlü step motor ve ULN2003A sürücü kartı1 setPerde makarasını döndürür
HX1838 IR kumanda ve alıcı kiti1Aç, kapat, dur komutlarını verir
VM3 mikro switch (3 pinli)1Perdenin tam açık konumunu algılar
Erkek-dişi jumper kablo ve 830 pinli breadboard1 setBağlantılar için
Karton kutu, kalem ya da 20 mm çaplı çubuk, hafif kumaş1Pencere ve stor perde maketi

28BYJ-48'in adım sayıları ve sürücü kartının ayrıntıları ULN2003 ile 28BYJ-48 step motor sürme yazımızda anlatılıyor.

Perde kaç adımda açılır?

Perdenin açılması için gereken adım sayısı, perde yüksekliğinin makara çevresine bölünmesi ve tur başına adım sayısıyla çarpılmasıyla bulunur. 28BYJ-48, Arduino'nun Stepper kütüphanesiyle tam adım modunda yaklaşık 2048 adımda bir tur döner.

Örneğin 20 mm çaplı bir makaranın çevresi π × 20 ≈ 63 mm'dir. 40 cm'lik bir perde için 400 / 63 ≈ 6,4 tur gerekir; bu da 6,4 × 2048 ≈ 13.000 adım eder. Kumaş makaraya sarıldıkça çap biraz büyür; bu yüzden kesin değeri maketiniz üzerinde deneyerek bulun.

Perde yüksekliğiTur (20 mm makara)Adım (yaklaşık)Süre (12 devir/dk)
20 cm3,26.500≈ 16 s
30 cm4,89.800≈ 24 s
40 cm6,413.000≈ 32 s

Motor yavaştır ama redüktörü sayesinde hafif bir maket perdeyi rahatlıkla kaldırır. Daha hızlı açılma isterseniz makara çapını büyütebilirsiniz; bu durumda motorun zorlanmaması için perdenin hafif olması daha da önemli hale gelir.

Devre nasıl bağlanır?

ULN2003 kartının IN1-IN4 uçları D8, D9, D10 ve D11'e; IR alıcının sinyal ucu D2'ye; mikro switch ise D7 ile GND arasına bağlanır. Motor, beyaz soketiyle ULN2003 kartına takılır.

  1. ULN2003 kartını bağlayın: IN1 → D8, IN2 → D9, IN3 → D10, IN4 → D11, + → 5V, − → GND. Motorun soketini karttaki beyaz yuvaya takın.
  2. IR alıcıyı bağlayın: sinyal (S ya da OUT) → D2, + (VCC) → 5V, − (GND) → GND. Pin sırası alıcıya göre değişebilir; kartın üzerindeki yazıları kontrol edin.
  3. Mikro switch'in ortak (C) ucunu D7'ye, normalde açık (NO) ucunu GND'ye bağlayın. Kodda dahili pull-up açık olduğu için ayrı direnç gerekmez.
  4. Switch'i maketin üst kısmına, perde tamamen açıldığında perdenin alt çıtası ona değecek şekilde yapıştırın.
  5. Kalemi ya da çubuğu motor miline sıkıca geçirin, perde kumaşının üst kenarını bantla bu makaraya tutturun.
  6. Arduino IDE'de "IRremote" kütüphanesini kurun. Kodu yüklemeden önce bir yetişkine bağlantıları kontrol ettirin.
Kumandalı otomatik perde bağlantı şeması: HX1838 IR alıcının S ucu Arduino Uno D2'ye bağlı; mikro switch'in C ucu D7'ye, NO ucu GND'ye bağlı; ULN2003 sürücü kartının IN1, IN2, IN3 ve IN4 uçları D8, D9, D10 ve D11'e, artı ve eksi uçları 5V ve GND'ye bağlı; 28BYJ-48 step motor kartın soketine takılı; sağ üstte yukarı, aşağı, OK ve 5 tuşlu IR kumanda; altta makarası Ø 20 mm, perdesi 40 cm olan stor perde maketi ve hesap: çevre yaklaşık 63 mm, 6,4 tur, yaklaşık 13.000 adım, 12 devir/dakikada yaklaşık 32 saniye; yukarı tuşu 0x18 açar, aşağı tuşu 0x52 kapatır, 5 tuşu 0x40 yarıya getirir, OK 0x1C durdurur
ULN2003 IN1-IN4 → D8-D11, IR alıcı → D2, mikro switch D7–GND; 40 cm perde 20 mm makarayla yaklaşık 13.000 adımda açılır.
#include <IRremote.hpp>
#include <Stepper.h>

Stepper motor(2048, 8, 10, 9, 11);        // IN1-IN3-IN2-IN4 sirasi
const byte IR_PIN = 2, SWITCH = 7;
const long PERDE_ADIM = 13000;             // kendi maketinize gore ayarlayin
const int YON = 1;                         // ters donuyorsa -1 yapin
const byte TUS_AC = 0x18, TUS_KAPA = 0x52, TUS_YARIM = 0x40, TUS_DUR = 0x1C;
long konum = 0;                            // 0 = tam acik, PERDE_ADIM = kapali
long hedef = 0;

void bobinleriKapat() { for (byte p = 8; p <= 11; p++) digitalWrite(p, LOW); }

void setup() {
  Serial.begin(9600);
  pinMode(SWITCH, INPUT_PULLUP);
  motor.setSpeed(12);                      // devir/dakika
  IrReceiver.begin(IR_PIN);
  long sayac = 0;                          // acilista switch'e kadar ac
  while (digitalRead(SWITCH) == HIGH && sayac < PERDE_ADIM + 2000) {
    motor.step(-YON * 8);
    sayac += 8;
  }
  bobinleriKapat();
}

void loop() {
  if (IrReceiver.decode()) {
    if (!(IrReceiver.decodedIRData.flags & IRDATA_FLAGS_IS_REPEAT)) {
      byte kod = IrReceiver.decodedIRData.command;
      Serial.print(F("Tus: 0x"));
      Serial.println(kod, HEX);
      if (kod == TUS_AC) hedef = 0;
      else if (kod == TUS_KAPA) hedef = PERDE_ADIM;
      else if (kod == TUS_YARIM) hedef = PERDE_ADIM / 2;
      else if (kod == TUS_DUR) hedef = konum;
    }
    IrReceiver.resume();
  }
  if (hedef - konum >= 8) {                // kapat yonunde 8 adim
    motor.step(YON * 8);
    konum += 8;
  } else if (konum - hedef >= 8) {         // ac yonunde 8 adim
    if (digitalRead(SWITCH) == LOW) { konum = 0; hedef = 0; }   // tam acik
    else { motor.step(-YON * 8); konum -= 8; }
  } else {
    bobinleriKapat();                      // dururken akim cekmesin
  }
}

Kod nasıl çalışır?

Kod, perdenin konumunu adım sayısı olarak tutar ve her döngüde perdeyi hedefe doğru 8 adım ilerletir. Motor küçük parçalar halinde döndüğü için Arduino arada kumandayı dinleyebilir; böylece perde hareket ederken "dur" tuşu çalışır.

Kumanda tuşuKoddaki kodHedef konum
▲ (yukarı)0x180 adım: tam açık
▼ (aşağı)0x5213.000 adım: tam kapalı
50x406.500 adım: yarı açık
OK0x1CBulunduğu yerde durur

Tablodaki tuş kodları bu kitlerde sık görülen değerlerdir, ancak kumandanız farklı kodlar gönderebilir. Seri Monitör'ü 9600 baud'da açın, tuşlara basın ve görünen kodları koddaki sabitlere yazın. IR alıcının çalışma ilkesi kızılötesi sensör ve kumanda yazımızda, röleli benzer bir proje ise uzaktan kumandalı lamba yazısında yer alıyor.

Açılışta motor, switch'e basılana kadar perdeyi açar ve bu noktayı sıfır kabul eder. Elektrik kesilip yeniden gelse bile perde konumunu böylece yeniden bulur. Switch bağlı değilse motor en çok 15.000 adım döner ve durur; kumaş makaradan boşalmasın diye ilk denemede perdeyi elle yarıya getirin.

Hangi güvenlik kurallarına dikkat edilmeli?

Bu proje bir maket içindir; yalnızca USB'nin 5V gerilimiyle çalışır ve evdeki gerçek perdelere ya da 220V perde motorlarına bağlanmaz.

  • Arduino'yu bilgisayardan ya da 5V 1A'lik bir USB telefon şarj adaptöründen besleyin; adaptörü prize bir yetişkin taksın.
  • Motorun bobinleri 5V'ta toplam yaklaşık 200 mA'e kadar akım çekebilir. Kod, motor dururken bobinleri kapatarak ısınmayı ve gereksiz tüketimi önler.
  • Dönen makaraya parmak, saç ya da kablo kaptırmayın; sergide makarayı maketin içinde tutun.
  • Perdeyi elle zorlayarak çevirmeyin; redüktörün plastik dişlileri zarar görebilir.

Projeyi nasıl sunarsınız?

Projeyi, kumandayla canlı gösterim yapıp adım sayısı ile perde konumu arasındaki ilişkiyi hesaplarla açıklayarak sunabilirsiniz.

  • Problem: "Perde motoru, perdenin nerede olduğunu nasıl bilir?"
  • Hesap afişi: Makara çevresi, tur sayısı ve adım sayısı hesabını adım adım gösterin; ölçtüğünüz açılma süresini hesapla karşılaştırın.
  • Deney: Farklı makara çaplarıyla (ör. 10 mm ve 20 mm) açılma süresini kronometreyle ölçün, tabloya yazın.
  • Geliştirme fikirleri: Bir LDR ile sabah perdenin kendiliğinden açılması, bir saat modülüyle zamanlı açılma ya da Bluetooth ile telefondan kontrol.

Sık sorulan sorular

Motor titriyor ama dönmüyorsa ne yapmalıyım?

Bu durumda motor bobinleri yanlış sırayla sürülüyordur ya da hız çok yüksektir. Koddaki Stepper motor(2048, 8, 10, 9, 11) sırasını değiştirmeyin ve IN1-IN4 kablolarının D8-D11'e sırayla takıldığını kontrol edin. Hızı 10 devir/dakikaya düşürmek ve perdenin sıkışmadığından emin olmak da işe yarar.

Perde ters yöne gidiyorsa nasıl düzeltilir?

Koddaki YON sabitini 1 yerine −1 yapmanız yeterlidir. Perdenin makaraya önden ya da arkadan sarılması dönüş yönünü tersine çevirir. Yönü değiştirdikten sonra açılışta motorun perdeyi switch'e doğru, yani yukarı sardığını kontrol edin.

Kumanda bazen çalışmıyorsa sorun nedir?

IR alıcı, kumandanın alıcıyı doğrudan görmesine ihtiyaç duyar; alıcıyı maketin önüne, kutunun dışında kalacak şekilde yerleştirin. Güneş ışığı ve bazı LED lambalar da kızılötesi gürültü üretir. Kumandanın pilini kontrol edin ve Seri Monitör'de tuş kodunun doğru göründüğünden emin olun.

Perde tam kapanmıyor ya da fazla iniyorsa ne yapmalıyım?

PERDE_ADIM değeri maketinize uygun değildir. Perdeyi kapatın, eksik ya da fazla kalan mesafeyi ölçün ve değeri orantılı olarak artırın ya da azaltın. Örneğin 13.000 adımda 5 cm eksik kalan 40 cm'lik perde için yaklaşık 14.600 adım deneyin.

Özet

  • Kumandalı otomatik perde maketi; 28BYJ-48, ULN2003, IR alıcı ve Arduino Uno ile yapılır.
  • ULN2003 IN1-IN4 → D8-D11, IR alıcı → D2, mikro switch D7 ile GND arasına bağlanır.
  • 20 mm makarayla 40 cm perde yaklaşık 6,4 tur, yani yaklaşık 13.000 adımda açılır.
  • Arduino konumu adım sayarak bilir; switch açılışta sıfır noktasını bulur.
  • Proje USB'nin 5V gerilimiyle çalışan bir maket içindir; gerçek perde motorlarına bağlanmaz.

Bu yazıdaki ürünler

Diğer yazılar

11 Kasım 20266 dk okuma

Pense Çeşitleri: Yan Keski, Kargaburun ve Kombine Pense

Pense çeşitleri arasında seçim işe göre yapılır: tel ve komponent bacağı kesmek için yan keski, dar alanda tutmak ve bükmek için kargaburun,...

Devamını oku →
11 Kasım 20267 dk okuma

Işık Takip Eden Robot Yapımı: Arduino, LDR ve L298N

Işık takip eden robot, önüne takılan iki LDR ile hangi tarafın daha aydınlık olduğunu ölçüp tekerleklerini o yöne süren bir Arduino projesid...

Devamını oku →
11 Kasım 20266 dk okuma

İzoleli Tornavida ve 1000V VDE El Aletleri Nedir?

İzoleli tornavida, IEC 60900 (EN 60900) standardına göre 1000V AC ve 1500V DC gerilime kadar yalıtım için test edilmiş ve üzerinde çift üçge...

Devamını oku →
11 Kasım 20267 dk okuma

ESP8266 Hava Durumu Ekranı: NodeMCU, OLED ve Open-Meteo

ESP8266 hava durumu ekranı, NodeMCU kartının Wi-Fi ile internete bağlanıp Open-Meteo servisinden anlık sıcaklık, nem, rüzgâr ve hava durumu...

Devamını oku →
11 Kasım 20266 dk okuma

Havya Ucu Çeşitleri ve Bakımı: Konik, Keski, Bıçak

Havya ucu, lehimlenecek noktanın boyutuna göre seçilir: ince SMD ve sık bacaklar için konik (I), genel THT lehim için keski (D) ya da eğik k...

Devamını oku →
11 Kasım 20266 dk okuma

Ultrasonik Theremin Projesi: HC-SR04 ile Elle Müzik

Ultrasonik theremin, HC-SR04 sensörüyle elinizin uzaklığını ölçüp bu mesafeyi ses frekansına çeviren bir Arduino projesidir. El sensöre yakl...

Devamını oku →