Skip to content

Repository files navigation

Interaktif Akilli Bank (ESP32 + MDDS30)

Bu proje, PLC kullanmadan ESP32 ile 2 adet 24V DC motoru (MDDS30 surucu uzerinden) kontrol ederek 3 kademeli akilli bank hareketi saglar.

Sistem girdileri:

  • 3 adet koltuk dolu/bos sensoru
  • 6 adet limit switch (Motor A icin A1/A2/A3, Motor B icin B1/B2/B3)
  • 1 adet E-Stop geri bildirim sinyali

Sistem ciktilari:

  • Motor A PWM + DIR
  • Motor B PWM + DIR
  • Opsiyonel davet lambasi/buzzer cikisi

Ozel Kural

  • Seat1 && Seat3 ayni anda aktif ise sistem STATE_LOCKED olur ve hareket etmez.

Proje Dosyalari

  • INTERAKTIF_BANK.ino: Ana firmware (state machine, safety, motion, debounce)
  • BAGLANTI_SPESIFIKASYONU.md: Klemens bazli baglanti ve guc topolojisi
  • TEST_MATRISI.md: Dogrulama testleri ve kabul kriterleri
  • DEVREYE_ALMA.md: Sahada devreye alma ve kalibrasyon adimlari

Donanim Mimarisi Ozeti

  • Kontrolcu: ESP32 DevKit (WROOM-32)
  • Surucu: Cytron MDDS30 (cift motor, PWM+DIR)
  • Besleme:
    • Motor hatti: 24V SMPS -> Sigorta -> Kontaktor -> MDDS30
    • Kontrol hatti: 24V SMPS -> Sigorta -> 24V->5V buck -> ESP32
  • Emniyet:
    • E-Stop NC kontaktor bobin hattini fiziksel keser
    • Firmware sadece geri bildirim izler, fiziksel kesme donanimdadir

Yazilim Mimarisi Ozeti

Firmware, non-blocking dongu ile calisan durum makinesi (state machine) mimarisindedir.

Temel durumlar:

  • STATE_1P
  • STATE_2P
  • STATE_3P
  • STATE_MOVING
  • STATE_LOCKED
  • STATE_FAULT

Hata kodlari:

  • FAULT_ESTOP
  • FAULT_TIMEOUT
  • FAULT_LIMIT_INCONSISTENT
  • FAULT_INVALID_SEAT_PATTERN
  • FAULT_SENSOR_WIRE

Kritik davranislar:

  • E-Stop algilanirsa aninda motor komutlari sifirlanir ve STATE_FAULT
  • Ayni motor icin birden fazla limit aktifse FAULT_LIMIT_INCONSISTENT
  • Hedef limit belirtilen surede gelmezse FAULT_TIMEOUT
  • Anormal koltuk kombinasyonu (ornek 010, 001, 011) durumunda FAULT_INVALID_SEAT_PATTERN
  • Tum koltuklar bos (000) iken 15 sn gecikme sonunda 1P hedeflenir

Varsayilan Parametreler

  • Debounce: 30 ms
  • Ana dongu periyodu: 10 ms
  • Bos iken 1P'ye donus gecikmesi: 15000 ms
  • Hareket timeout: 8000 ms
  • Invite cikisi: 2 Hz blink
  • PWM: 20 kHz, 10-bit

Pin Eslesmesi

Giriler:

  • Seat1 GPIO25
  • Seat2 GPIO26
  • Seat3 GPIO27
  • LimA1 GPIO34
  • LimA2 GPIO35
  • LimA3 GPIO36
  • LimB1 GPIO39
  • LimB2 GPIO32
  • LimB3 GPIO33
  • EStopFb GPIO23

Ciktilar:

  • MotorA PWM GPIO18
  • MotorA DIR GPIO19
  • MotorB PWM GPIO21
  • MotorB DIR GPIO22
  • Invite GPIO16

Derleme ve Yukleme

Bu repo Arduino IDE Sketch formatinda hazirlanmistir.

  1. Arduino IDE'de INTERAKTIF_BANK.ino dosyasini acin.
  2. Kart olarak ESP32 Dev Module secin.
  3. Dogru portu secin.
  4. Kodu derleyin ve karta yukleyin.
  5. Seri monitor (115200) ile ilk acilis davranisini gozleyin.

Not:

  • Bu ortamda arduino-cli kurulu olmadigi icin otomatik derleme dogrulamasi yapilmamistir.

Hata Reseti

Firmware varsayilaninda hata reseti seri hattan yapilir:

  • Komut: RESET_FAULT

Hata temizleme kosullari:

  • E-Stop aktif olmamali
  • Limit girisleri tutarli olmali
  • Mevcut seviye limitlerden guvenli sekilde belirlenebilmeli

Test ve Devreye Alma

  • Test adimlari icin: TEST_MATRISI.md
  • Sahada devreye alma ve kalibrasyon icin: DEVREYE_ALMA.md
  • Klemens ve guc baglantisi icin: BAGLANTI_SPESIFIKASYONU.md

Guvenlik Notu

Bu proje fail-safe yaklasimi hedefler ancak sertifikali functional safety (SIL/PL) yerine gecmez. E-Stop ve kontaktor gibi fiziksel guvenlik katmanlari zorunludur.

About

ESP32 firmware for a 3-level interactive smart bench — dual 24V motors via Cytron MDDS30, seat-occupancy logic, and a fail-safe non-blocking state machine.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages