본문 바로가기
Programming/Arduino

Arduino ADC PIN 하나로 슬라이드 스위치(Slide Switch) 제어 하기 (LED)

by 크레노트 2020. 1. 13.
반응형

안녕하세요.  혹시 아두이노 시제품을 개발하다가

 

슬라이드 스위치 4pin 이상을 제어 할 때 아두이노 핀수가 모자라는 

 

절망적인 경험을 해보신적 있으신가요??

 

저는 하였습니다. 딱 3개가 부족하더군요.. 그래서 여러 방법을 찾던 중

 

기본 중에 기본인 저항 분배 법칙을 활용하여 해결을 하였습니다.

 

이래서 기본이 중요하더군요..

 

기본적인 회로는... 

이렇습니다. 죄송합니다.. 포맷을 하고 갑자기 포스팅을 하여 

 

그림판으로 그렸습니다. 혹시나 이해가 안되신다면 댓글 주세요 알려드릴게요^^

 

위와 같이하게 되면 거의 일정한 값으로 adc값이 들어 오게 됩니다^^

 

그럼 이제 코딩을 해볼까요??

 

먼저 값은 대충 저항 계산해서 이렇게 저렇게 하면 되지만. 우린 시간이 없기 때문에

 

위와 같은 방법으로 슬라이더 스위치의 위치마다 값이 어떻게 나오는 지 확인을 합니다.

 

그후에 값을 조건문에 대입하여 간단하게 LED제어하는 코드입니다 ^^ LED 회로는 

 

많이들 알고 있으실테니 넘어갈께요~ 

 

제어 코드입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//LED 핀선택
int  blue_led = 13;
int  yellow_led = 12;
int  greend_led = 11;
 
void setup() {
    //핀모드
    pinMode(blue_led , OUTPUT);
    pinMode(yellow_led , OUTPUT);
    pinMode(greend_led , OUTPUT);
}
void loop() {
    int slide = analogRead(A0); //슬라이더 값.
    delay(10);
 
    //저의 경우 170 , 90 , 0 이렇게 나왔어요 ^^
    if(slide>160){
      digitalWrite(greend_led, HIGH);
      digitalWrite(yellow_led, LOW);
      digitalWrite(blue_led, LOW);
    }
    else if(slide>80){
      digitalWrite(greend_led, LOW);
      digitalWrite(yellow_led, HIGH);
      digitalWrite(blue_led, LOW);
    }
    else
    {
      digitalWrite(greend_led, LOW);
      digitalWrite(yellow_led, LOW);
      digitalWrite(blue_led, HIGH);
      }
      delay(500);
}
 

 

이제 부터 앞에 여러가지를 활요하여 무드등을 만들어 볼까 합니다. ^^

 

이상 대구에 거주하는 흔한 메이커 였습니다.

 

감사합니다. ^^

반응형

댓글