Counter-Strike 2'deki C4'ün Arduino Uno ile yapılmış çalışan replikası. 40 saniyelik geri sayım, keypad'den şifreyle iki aşamalı defuse, hızlanan bip sesi ve LCD üzerinde ilerleme çubuğu.
Oyundaki mantığa sadık: defuse kodunu doğru girmek yetmiyor, ardından 5 saniyelik defuse süresini de beklemek gerekiyor — ve ana sayaç o sırada işlemeye devam ediyor. Süre biterse bomba patlıyor.
Bu bir oyun/kostüm aksesuarıdır. Ekran, buzzer ve üç LED'den ibarettir; patlayıcı hiçbir işlevi yoktur. Yine de görüntüsü nedeniyle halka açık yerlerde taşınması yanlış anlaşılmaya yol açabilir.
➜ Ayrıntılı bağlantı şemasını aç
Pin tablosu, sinyal şeması, Uno pin doluluk haritası ve kurulum notları. Kaynağı bu depodaki baglanti-semasi.html dosyasıdır.
Hızlı özet:
| Bileşen | Bacak | Arduino | Not |
|---|---|---|---|
| Keypad 4×4 | R1 R2 R3 R4 | D2 D3 D4 D5 |
satırlar |
| Keypad 4×4 | C1 C2 C3 C4 | D6 D7 D8 D9 |
sütunlar |
| I²C LCD 16×2 | SDA | A4 |
adres 0x27 |
| I²C LCD 16×2 | SCL | A5 |
|
| I²C LCD 16×2 | VCC / GND | 5V / GND |
|
| Pasif buzzer | + / − | D10 / GND |
aktif buzzer çalışmaz |
| Kırmızı LED | anot / katot | D11 / GND |
220 Ω direnç ile |
| Yeşil LED | anot / katot | D12 / GND |
220 Ω direnç ile |
| Mavi LED | anot / katot | D13 / GND |
220 Ω direnç ile |
Keypad tek başına 8 dijital pin tükettiği için kartta boşta yalnızca A0–A3 kalır (D0/D1 seri porta ayrılmıştır).
- Arduino Uno (veya Nano — pin adları aynı)
- 4×4 membran keypad
- I²C arkalıklı 16×2 LCD (PCF8574)
- Pasif buzzer
- 3 × 5 mm LED — kırmızı, yeşil, mavi
- 3 × 220 Ω direnç
- Breadboard ve jumper kablo
Arduino IDE → Araçlar → Kütüphane Yönetimi'nden iki kütüphane:
Keypad— Mark Stanley & Alexander BrevigLiquidCrystal_I2C— frank de brabander / johnrickman
Ardından cs2_bomba_gelismis.ino dosyasını açıp Uno'ya yükleyin.
| Tuş | İşlev |
|---|---|
A |
Bombayı kur — 40 saniyelik geri sayım başlar |
0–9 |
Defuse şifresini gir (4 hane) |
# |
Onayla — kod doğruysa defuse çubuğu başlar |
* |
Her durumda sistemi sıfırla |
stateDiagram-v2
[*] --> BEKLEMEDE
BEKLEMEDE --> SAYIM_BASLADI: A tuşu
SAYIM_BASLADI --> DEFUSE_EDILIYOR: doğru kod + #
SAYIM_BASLADI --> PATLADI: süre bitti
DEFUSE_EDILIYOR --> DEFUSE_OLDU: çubuk doldu (5 sn)
DEFUSE_EDILIYOR --> PATLADI: süre bitti
DEFUSE_OLDU --> BEKLEMEDE: * tuşu
PATLADI --> BEKLEMEDE: * tuşu
LED'ler durumu gösterir: mavi beklemede, kırmızı geri sayımda yanıp söner ve patlamadan sonra sabit yanar, yeşil defuse başarılıysa yanar.
cs2_bomba_gelismis.ino içindeki sabitler:
const unsigned long BOMBA_SURESI = 40; // saniye — toplam geri sayım
const unsigned long DEFUSE_SURESI = 5; // saniye — kod girildikten sonraki bekleme
const String DEFUSE_SIFRE = "1234"; // 4 haneli defuse kodu
LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD I²C adresiEkran yanıyor ama yazı yok — modülün arkasındaki kontrast potunu çevirin.
Ekranda hiçbir şey yok — I²C adresi büyük ihtimalle 0x3F'tir; koddaki 0x27 ile değiştirin.
Tuşlar karışık geliyor — keypad'in satır ve sütun grupları ters takılmış demektir. Konnektör karta bakarken soldan sağa R1 R2 R3 R4 C1 C2 C3 C4 sırasındadır.
Bip sesi tek tonda veya hiç yok — aktif buzzer takılmış olabilir. tone() ile melodi üretmek için pasif buzzer gerekir.
Mavi LED sönük — D13 kart üzerindeki dahili LED'e de bağlıdır, ikisi akımı paylaşır. Rahatsız ediyorsa LED'i A0 gibi boştaki bir pine taşıyın.
MIT — serbestçe kullanabilir, değiştirebilir ve dağıtabilirsiniz. Tek şart telif bildiriminin korunmasıdır.