// --- กำหนดขาอุปกรณ์ --- const int pinX = A1; const int pinY = A0; const int pinMG = 2; const int pinBomb = 3; const int pinSafety = 4; void setup() { Serial.begin(9600); pinMode(pinMG, INPUT_PULLUP); pinMode(pinBomb, INPUT_PULLUP); pinMode(pinSafety, INPUT_PULLUP); } void loop() { // 1. ตรวจสอบสวิตช์เปิด-ปิด (Safety) // ถ้า D4 ต่อลง GND (LOW) คือระบบทำงาน if (digitalRead(pinSafety) == LOW) { // 2. อ่านค่าคันโยกและแปลงช่วงเป็น -90 ถึง 90 int posX = map(analogRead(pinX), 0, 1023, 90, -90); int posY = map(analogRead(pinY), 0, 1023, -90, 90);//S/W // 3. ทำ Deadzone: ถ้าอยู่ระหว่าง -1 ถึง 1 ให้เป็น 0 if (posX >= -1 && posX <= 1) posX = 0; if (posY >= -1 && posY <= 1) posY = 0; // 4. แสดงผลแกน X (90L / 90R) Serial.print("X: "); if (posX > 0) { Serial.print(posX); Serial.print("R"); }//D else if (posX < 0) { Serial.print(abs(posX)); Serial.print("L");}//A else { Serial.print("0"); } // 5. แสดงผลแกน Y และปุ่ม Serial.print(" | Y: "); Serial.print(posY); // อ่านปุ่ม: ถ้ากด (LOW) ให้โชว์ 1, ถ้าไม่กดให้โชว์ 0 int mg = !digitalRead(pinMG); int bomb = !digitalRead(pinBomb); if (mg) Serial.print(" | [MG FIRE!] "); if (bomb) Serial.print(" | [BOMB DROP!] "); Serial.println(); // ขึ้นบรรทัดใหม่ } else { // ถ้าสวิตช์ปิดอยู่ (Safety On) Serial.println("SYSTEM OFF (Safety Engaged)"); } delay(50); // ความไวในการส่งข้อมูล }