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
Seat1 && Seat3ayni anda aktif ise sistemSTATE_LOCKEDolur ve hareket etmez.
INTERAKTIF_BANK.ino: Ana firmware (state machine, safety, motion, debounce)BAGLANTI_SPESIFIKASYONU.md: Klemens bazli baglanti ve guc topolojisiTEST_MATRISI.md: Dogrulama testleri ve kabul kriterleriDEVREYE_ALMA.md: Sahada devreye alma ve kalibrasyon adimlari
- 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
- Motor hatti:
- Emniyet:
- E-Stop NC kontaktor bobin hattini fiziksel keser
- Firmware sadece geri bildirim izler, fiziksel kesme donanimdadir
Firmware, non-blocking dongu ile calisan durum makinesi (state machine) mimarisindedir.
Temel durumlar:
STATE_1PSTATE_2PSTATE_3PSTATE_MOVINGSTATE_LOCKEDSTATE_FAULT
Hata kodlari:
FAULT_ESTOPFAULT_TIMEOUTFAULT_LIMIT_INCONSISTENTFAULT_INVALID_SEAT_PATTERNFAULT_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) durumundaFAULT_INVALID_SEAT_PATTERN - Tum koltuklar bos (
000) iken 15 sn gecikme sonunda 1P hedeflenir
- Debounce:
30 ms - Ana dongu periyodu:
10 ms - Bos iken 1P'ye donus gecikmesi:
15000 ms - Hareket timeout:
8000 ms - Invite cikisi:
2 Hzblink - PWM:
20 kHz,10-bit
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
Bu repo Arduino IDE Sketch formatinda hazirlanmistir.
- Arduino IDE'de
INTERAKTIF_BANK.inodosyasini acin. - Kart olarak ESP32 Dev Module secin.
- Dogru portu secin.
- Kodu derleyin ve karta yukleyin.
- Seri monitor (115200) ile ilk acilis davranisini gozleyin.
Not:
- Bu ortamda
arduino-clikurulu olmadigi icin otomatik derleme dogrulamasi yapilmamistir.
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 adimlari icin:
TEST_MATRISI.md - Sahada devreye alma ve kalibrasyon icin:
DEVREYE_ALMA.md - Klemens ve guc baglantisi icin:
BAGLANTI_SPESIFIKASYONU.md
Bu proje fail-safe yaklasimi hedefler ancak sertifikali functional safety (SIL/PL) yerine gecmez. E-Stop ve kontaktor gibi fiziksel guvenlik katmanlari zorunludur.