illuminated arcade button 이란?

Illuminated arcade buttons는 LED가 내장된 아케이드 버튼으로, 버튼을 누를 때 빛이 들어오거나 특정 효과를 연출할 수 있습니다. 이 버튼들은 게임기, DIY 아케이드 머신, 컨트롤러 등에 사용되며, 시각적으로 화려한 효과를 제공하여 게임 경험을 더욱 향상시킵니다.

기본 구성 요소

  • 버튼 스위치: 버튼을 눌렀을 때 신호를 전달하는 역할을 합니다.
  • LED: 버튼이 눌리거나 특정 조건에서 점등됩니다.

배선 방법

LED 아케이드 버튼을 연결할 때는 아케이드 컨트롤러 보드, 전원 공급 장치, 점퍼 와이어 등이 필요합니다. 일반적으로 버튼의 양극(+)음극(-)을 컨트롤러 보드의 해당 핀에 연결하면 LED가 정상적으로 작동합니다. 일부 모델은 내장 저항을 포함하고 있어 추가 저항 없이도 사용할 수 있습니다

Button
LED (+/-)
LED socket
Switch
Assembly

연결도

illuminated arcade buttonArduino
LED + (VCC) : 다리 긴쪽Digital #3
LED – (GND) : 다리 짧은쪽GND
Switch COM1 (VCC)Digital #2
Switch NO3 (GND)GND

테스트 코드

#define RELEASED 0
#define SW_THRESHOLD 500

#define PUSH0 1
#define PULL0 4
#define BUTTON0 2
#define LED0 3

void setup() {
  // put your setup code here, to run once:
  pinMode(LED0, OUTPUT);
  pinMode(BUTTON0, INPUT_PULLUP);

  Serial.begin(9600);
  Serial.println("Connected");

}

void loop() {
  // put your main code here, to run repeatedly:
  static unsigned long last0;
  int buttonState=read_button();

  if(PUSH0==buttonState) {
    Serial.println("B_ON");
  }
  if(PULL0==buttonState) {
    Serial.println("B_OFF");
  }

  if((millis()-last0)>=500) {
    last0=millis();
  }

  if(digitalRead(BUTTON0)==LOW) digitalWrite(LED0,HIGH);
  if(digitalRead(BUTTON0)==HIGH) digitalWrite(LED0,LOW);
}

int read_button()
{
  static boolean prev0=HIGH;
  static unsigned long last0;
  boolean curr0;

  if ((millis() - last0) >= 10) {
    curr0=digitalRead(BUTTON0);
    if ((HIGH==prev0)&&(LOW==curr0)) {
      prev0=LOW;
      return PUSH0;
    }
    else if((LOW==prev0)&&(HIGH==curr0)) {
      prev0=HIGH;
      return PULL0;
    }
    last0=millis();
  }

  return RELEASED;
}

Arduino 프로그램에서 보드와 포트 선정후, Compile 및 Load 수행.

Arduino 프로그램에서 >툴/시리얼 모니터 수행.

처음 Serial 통신이 성공적으로 연결되면 시리얼 모니터에 “Conneted” message가 표현되고,

Button이 Push 되면 LED가 ON이 되며 시리얼 모니터에 “B_ON”을 표시한다.

그리고 Button이 Pull 되면 LED가 OFF 되고 시리얼 모니터에 “B_OFF”를 표시한다.