아두이노 우노 R4 DIP 스위치

DIP(듀얼 인라인 패키지) 스위치는 종종 전자기기에서 주소 설정이나 기능 켜기 및 끄기와 같은 기기 설정을 위해 사용됩니다. 이 가이드에서는 Arduino UNO R4와 함께 DIP 스위치를 사용하는 방법을 배웁니다. 다음 내용을 다룰 것입니다:

아두이노 우노 R4와 dip 스위치

준비물

1×아두이노 우노 R4 와이파이 쿠팡 | 아마존
1×(또는) 아두이노 우노 R4 미니마 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×DIP 스위치 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 전원 분배기 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

DIP 스위치에 대하여

DIP 스위치는 주로 장치를 구성하는 데 사용되며, 사용자로 하여금 장치 주소, 통신 옵션, 보안 코드, 작동 모드 및 다양한 사용 및 산업에 대한 시스템 환경설정을 조정할 수 있게 합니다.

DIP 스위치는 여러 개의 작은 슬라이드 스위치를 하나의 유닛으로 결합한 것입니다. 각 슬라이드 스위치는 "포지션"이라고 합니다. DIP 스위치는 다양한 위치 수를 가진 여러 종류가 있으며, 2, 4, 5, 6, 8, 또는 10 등의 위치를 가질 수 있습니다.

DIP 스위치는 서로 다른 숫자를 나타내도록 설정할 수 있습니다. 각 스위치 위치는 숫자의 비트에 연결됩니다. 이러한 위치를 켜거나 끔으로써 필요한 숫자를 선택할 수 있습니다.

핀아웃

dip 스위치 핀아웃
image source: diyables.io

DIP 스위치는 두 줄의 핀이 있습니다. 각 줄의 핀 수는 스위치 위치 수와 일치합니다. 예를 들어, 4개의 위치가 있는 DIP 스위치에는 총 8개의 핀이 있으며, 각 측에 4개의 핀이 있습니다. 서로 마주보는 각 핀 쌍이 슬라이드 스위치를 형성합니다. 핀이 어느 쪽에 있는지는 중요하지 않습니다. 핀은 교체 가능합니다.

작동 방식

DIP 스위치가 켜져 있으면 닫힌 상태입니다. 이것은 전기가 스위치를 통해 흐르게 합니다.

스위치가 꺼져 있을 때, 그것은 열려 있는 것입니다. 이는 전기 연결이 끊어져 전류가 스위치를 통해 흐를 수 없음을 의미합니다.

분명히 하기 위해:

  • ON 위치: 회로가 닫혀 있으며, 전류가 흐를 수 있습니다.
  • OFF 위치: 회로가 열려 있으며, 전류가 흐를 수 없습니다.

스위치의 한쪽을 GND에 연결하고 다른 쪽을 Arduino UNO R4 핀에 연결하며 Arduino UNO R4 핀을 풀업 디지털 입력으로 설정하면, 아래 표는 스위치 위치와 Arduino UNO R4에서 읽은 값 간의 관계를 보여줍니다.

DIP switch position Binary representation Circuit state Arduino UNO R4 pin state
ON 1 CLOSED LOW
OFF 0 OPEN HIGH

다음 섹션에서는 4-위치 DIP 스위치를 예제로 사용할 것입니다. 이는 2-위치, 3-위치, 5-위치, 6-위치, 8-위치 및 10-위치 DIP 스위치에 맞춰 조정할 수도 있습니다.

선연결

아두이노 우노 R4 dip 스위치 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

Arduino Uno R4와 기타 부품에 전원을 공급하는 가장 효과적인 방법을 확인하시려면, 아래 링크를 참조하세요: 아두이노 우노 R4 전원 공급 방법.

아두이노 UNO R4 코드 - DIP 스위치

두 가지 코드 예제를 사용하여 탐색하겠습니다.

  • 각 스위치가 켜져 있는지 꺼져 있는지 확인하기.
  • 이러한 스위치 위치를 숫자로 변환하기.

Arduino UNO R4 코드 - DIP 스위치의 ON/OFF 상태 읽기

/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 2, 3, 4, 5 }; void setup() { // initialize serial communication Serial.begin(9600); // set the dip switch pins as inputs with pull-up resistors enabled for (int i = 0; i < POSITION_NUM; i++) pinMode(SWITCH_PINS[i], INPUT_PULLUP); } void loop() { // Read the state of each switch position for (int i = 0; i < POSITION_NUM; i++) { Serial.print("position "); Serial.print(i + 1); Serial.print(": "); int state = digitalRead(SWITCH_PINS[i]); if (state == ON) Serial.println("ON "); else Serial.println("OFF "); } Serial.println(); // add a delay to prevent rapid readings delay(500); }

자세한 사용 방법

다음 지침을 단계별로 따르세요:

  • 만약 Arduino Uno R4 WiFi/Minima를 처음 사용한다면, 아두이노 우노 R4 - 소프트웨어 설치에 대한 튜토리얼을 참조하세요.
  • 제공된 다이어그램에 따라 부품을 연결하세요.
  • USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 실행하세요.
  • 적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi)와 COM 포트를 선택하세요.
  • 제공된 배선 다이어그램을 따르세요.
  • USB 케이블을 사용하여 Arduino UNO R4를 컴퓨터에 연결하세요.
  • Arduino IDE 소프트웨어를 실행하세요.
  • 올바른 보드와 포트를 선택하세요.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino UNO R4에 전송하세요.
  • DIP 스위치의 각 스위치를 하나씩 켜세요.
  • 직렬 모니터에서 결과를 확인하세요.
COM6
Send
position 1: OFF position 2: OFF position 3: OFF position 4: OFF position 1: ON position 2: OFF position 3: OFF position 4: OFF position 1: ON position 2: ON position 3: OFF position 4: OFF position 1: ON position 2: ON position 3: ON position 4: OFF position 1: ON position 2: ON position 3: ON position 4: ON
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Arduino UNO R4 코드 - DIP 스위치의 상태를 숫자로 인코딩하기

/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the pins connected to the dip switch const int SWITCH_PINS[] = { 2, 3, 4, 5 }; void setup() { // Initialize serial communication Serial.begin(9600); // Set the DIP switch pins as inputs with pull-up resistors enabled for (int i = 0; i < POSITION_NUM; i++) pinMode(SWITCH_PINS[i], INPUT_PULLUP); } void loop() { int encoded_state = 0; for (int i = 0; i < POSITION_NUM; i++) { int state = digitalRead(SWITCH_PINS[i]); if (state == ON) encoded_state |= 1 << (POSITION_NUM - i - 1); } Serial.print("encoded state: "); Serial.println(encoded_state); // add a delay to prevent rapid readings delay(500); }

자세한 사용 방법

다음 지침을 단계별로 따르세요:

  • Arduino Uno R4 WiFi/Minima를 처음 사용하는 경우, 아두이노 우노 R4 - 소프트웨어 설치 튜토리얼을 참조하세요.
  • 제공된 다이어그램에 따라 부품을 연결하세요.
  • USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 실행하세요.
  • 적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi) 및 COM 포트를 선택하세요.
  • 코드를 Arduino UNO R4에 업로드하세요.
  • DIP 스위치의 각 스위치를 하나씩 켜세요.
  • 결과가 아래와 같이 나타나는지 확인하기 위해 시리얼 모니터를 확인하세요.
COM6
Send
encoded state: 0 encoded state: 1 encoded state: 2 encoded state: 3 encoded state: 4 encoded state: 5 encoded state: 6 encoded state: 7 encoded state: 8 encoded state: 9 encoded state: 10 encoded state: 11 encoded state: 12 encoded state: 13 encoded state: 14 encoded state: 15
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

각 슬라이드 스위치의 위치에 따라 값이 변경된다는 점에 유의하십시오. 아래 표는 4-포지션 DIP 스위치의 ON/OFF 위치가 정수 값에 어떻게 대응하는지를 보여줍니다.

Position-1Position-2Position-3Position-4Binary ValueDecimal Value
OFF OFF OFF OFF 0000 0
OFF OFF OFF ON 0001 1
OFF OFF ON OFF 0010 2
OFF OFF ON ON 0011 3
OFF ON OFF OFF 0100 4
OFF ON OFF ON 0101 5
OFF ON ON OFF 0110 6
OFF ON ON ON 0111 7
ON OFF OFF OFF 1000 8
ON OFF OFF ON 1001 9
ON OFF ON OFF 1010 10
ON OFF ON ON 1011 11
ON ON OFF OFF 1100 12
ON ON OFF ON 1101 13
ON ON ON OFF 1110 14
ON ON ON ON 1111 15

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.