안녕하세요 전자공이 입니다.
이전 글에서는 아두이노를 통해 조이스틱을 제어하는
방법에 대해 알아보았습니다.
본문에서는 조이스틱 제어를 이용해 LED를 제어하는 방법에
대해 알아보겠습니다.
-준비물-
아두이노
브레드보드
점퍼선
조이스틱 모듈
LED 소자 4개
고정 저항 330옴 4개
위의 사진처럼 조이스틱 모듈에 점퍼선을 맞춰줍니다.
브레드 보드는 다음처럼 구성해줍니다.
사진처럼 회로를 구성해줍니다.
회로 구성이 다 되면 코드를 입력하고 업로드해줍니다.
-코드 설명-
--------------------------------------------------------------------------------------------
void setup() {
pinMode(8, INPUT_PULLUP); //8번 핀을 풀업으로 입력받습니다. 스위치를 연결하는 S 부분을 8에 연결해줍니다.
pinMode(10, OUTPUT); // 10번 포트를 OUTPUT 출력으로 사용합니다.
pinMode(11, OUTPUT); // 11번 포트를 OUTPUT 출력으로 사용합니다.
pinMode(12, OUTPUT); // 12번 포트를 OUTPUT 출력으로 사용합니다.
pinMode(13, OUTPUT); // 13번 포트를 OUTPUT 출력으로 사용합니다.
digitalWrite(8, HIGH); // 8번 포트를 HIGH 출력으로 사용합니다.
}
void loop() {
int sw = digitalRead(8); // "sw"에 디지털 8핀 읽은 값을 입력합니다.
int X = analogRead(A0); // "X"에 아날로그 읽은 값을 입력합니다.
int Y = analogRead(A1); // "Y"에 아날로그 읽은 값을 입력합니다.
if (X > 700) { //만약 X값이 700보다 크면 아래의 연산을 합니다.
digitalWrite(10, HIGH); //10번 포트를 HIGH 출력으로 사용합니다.
digitalWrite(11, LOW); //11번 포트를 LOW 출력으로 사용합니다.
digitalWrite(12, LOW); //12번 포트를 LOW 출력으로 사용합니다.
digitalWrite(13, LOW); //13번 포트를 LOW 출력으로 사용합니다.
}
else if (X < 300) { //만약 X값이 300보다 작으면 아래의 연산을 합니다.
digitalWrite(13, HIGH); //10번 포트를 HIGH 출력으로 사용합니다.
digitalWrite(11, LOW); //11번 포트를 LOW 출력으로 사용합니다.
digitalWrite(12, LOW); //12번 포트를 LOW 출력으로 사용합니다.
digitalWrite(10, LOW); //10번 포트를 LOW 출력으로 사용합니다.
}
else if (Y > 700) { //만약 Y값이 700보다 크면 아래의 연산을 합니다.
digitalWrite(11, HIGH); //11번 포트를 HIGH 출력으로 사용합니다.
digitalWrite(10, LOW); //10번 포트를 LOW 출력으로 사용합니다.
digitalWrite(13, LOW); //13번 포트를 LOW 출력으로 사용합니다.
digitalWrite(12, LOW); //12번 포트를 LOW 출력으로 사용합니다.
}
else if (Y < 300) { //만약 Y값이 300보다 작으면 아래의 연산을 합니다.
digitalWrite(12, HIGH); //12번 포트를 HIGH 출력으로 사용합니다.
digitalWrite(10, LOW); //10번 포트를 LOW 출력으로 사용합니다.
digitalWrite(13, LOW); //13번 포트를 LOW 출력으로 사용합니다.
digitalWrite(11, LOW); //11번 포트를 LOW 출력으로 사용합니다.
}
else if (sw == 0) { //만약 sw값이 0과 같으면 아래의 연산을 합니다.
digitalWrite(10, HIGH); //10번 포트를 HIGH 출력으로 사용합니다.
digitalWrite(11, HIGH); //11번 포트를 HIGH 출력으로 사용합니다.
digitalWrite(12, HIGH); //12번 포트를 HIGH 출력으로 사용합니다.
digitalWrite(13, HIGH); //13번 포트를 HIGH 출력으로 사용합니다.
}
else { //위에 있는 조건과 다르면 아래의 연산을 합니다.
digitalWrite(10, LOW); //10번 포트를 LOW 출력으로 사용합니다.
digitalWrite(11, LOW); //11번 포트를 LOW 출력으로 사용합니다.
digitalWrite(12, LOW); //12번 포트를 LOW 출력으로 사용합니다.
digitalWrite(13, LOW); //13번 포트를 LOW 출력으로 사용합니다.
}
}
---------------------------------------------------------------------------------------
업로드 후 조이스틱을 만지지 않았을 때 LED의 상태
조이스틱 X+
조이스틱 X-
조이스틱 Y+
조이스틱 Y-
스위치를 눌렀을 때
본문에서 한 내용은 조이스틱 모듈을 이용해 LED를 제어하는 과정이었습니다.
위 과정을 따라함으로 LED를 제어해보고 조이스틱과 다른 모듈 또는 소자들과 연계하는 방법을 터득했습니다.
그 말은 정확히 이해했다면 충분히 여러분들도 연계를 하는 방법을 스스로 터득할지도 모릅니다.
어려웠다고 느꼈다면 다시 따라해보고 천천히 자신의 것이 되도록 노력해봅시다.
꼭 따라 해 보시고 안 되는 것이나 설명상 부족하다고 느끼는 게 있으시다면
부디 댓글 부탁드립니다. 확인 후 답변드리도록 하겠습니다.
-그럼 이번 조이스틱을 이용한 LED 제어는 끝-
'코딩 > 아두이노' 카테고리의 다른 글
아두이노 LED 제어 (깜박이기)를 해보자 (0) | 2019.11.02 |
---|---|
아두이노 스텝 모터 제어를 해보자 28byj-48 (0) | 2019.11.01 |
아두이노 조이스틱 모듈 제어 해보자 (0) | 2019.10.29 |
아두이노 불꽃 감지 센서로 불꽃을 감지해보자 (0) | 2019.10.26 |
아두이노 가스 검출기를 작동 시켜보자 MQ-5 (0) | 2019.10.26 |
댓글