Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 적외선 센서
- Oracle
- DB설치
- 틴커캐드
- 아두이노 시뮬레이션
- 아두이노 만들기
- 이중for문
- 최솟값
- 오라클설치
- if-else if-else문
- Tinkercad
- 삼항연산자
- java
- if문
- oracle설치
- 오라클
- if-else문
- 아두이노 시뮬레이터
- 팅커캐드
- 자바
- sql설치
- switch-case문
- 스위치봇
- for문
- do-while문
- Arduino
- 아두이노 스타터 키트
- 적외선 리모컨
- 아두이노
- 반복문
Archives
- Today
- Total
Rami's 개발기록
[스위치 봇 만들기] 적외선 리모컨으로 서보모터 제어하기 본문
적외선 리모컨으로 서보모터를 제어해 볼 것이다.
먼저 이전 글에서 소개한 팅커캐드를 이용하여 회로를 먼저 구성해보았다.
위의 회로 구성을 토대로 실제로 연결해본 모습이다.
리모컨의 ⏮버튼을 누르면 왼쪽 아래를 누르고
⏭버튼을 누르면 오른쪽 아래를 누르게끔 코드를 구성해보았다.
#include <Servo.h>
#include <IRremote.h>
int IRpin = 11; //11번 핀에 적외선 리모컨 수신부 연결
Servo myservo; //서보모터 정의
IRrecv irrecv(IRpin); //IRpin 으로 IR 수신을 하는 IRrecv 클래스 객체 irrecv를 생성
decode_results results; //리모컨을 통해 받은 수신 데이터의 저장 클래스
void setup() {
Serial.begin(9600); //시리얼 통신을 9600의 속도로 시작
irrecv.enableIRIn(); //리모컨 시작
myservo.attach(9); //9번 핀에 서보모터 연결
}
void loop() {
if (irrecv.decode(&results)) { //IR 수신이 정상적으로 완료된 경우 IR 수신하여 변조된 데이터를 results 변수에 저장
Serial.println(results.value, HEX); //키값을 16진수로 변환하여 시리얼모니터에 출력
irrecv.resume(); //IR 데이터 수신 후 다음 신호를 받을 수 있도록 준비
}
if (results.value == 0xFF906F) { //>>버튼 클릭시
myservo.write(60); //서보모터 각도 60도
delay(200); //0.2초 동안 딜레이
myservo.write(90); //서보모터 각도 90도
}
if (results.value == 0xFFE01F) { //<<버튼 클릭시
myservo.write(120); //서보모터 각도 120도
delay(200); //0.2초 동안 딜레이
myservo.write(90); //서보모터 각도 90도
}
}
17번째 줄에서 사용된 decode() 함수는 수신된 적외선 리모컨으로부터 신호를 받을 준비를 한다.
이 값을 results라는 변수에 저장하기 위해 매개변수로 &results를 사용한다.
접두사 &는 results 변수의 주소 값을 의미한다.
해석한 값은 results.value로 가져올 수 있다.
18번째 줄은 시리얼 모니터에 16진수 값을 출력하는 코드이다.
또한 16진수 상수 값을 표현하기 위해 접두사 "0x"를 앞에 붙여 사용한다.
왜냐하면 10진수로 숫자 15는 16진수 "F"로 표현할 수 있는데
영문자 "F"와 구분하기 위해 코드에서는 "0xF"라고 표현한다.
움직이는 소리가 꽤 크지만 그래도 성공이다!
다음에는 타이머를 맞춰 시간이 되면 불이 켜지고 꺼지도록 만들어 볼 것이다.
👀참고
반응형
'개발기록 > arduino' 카테고리의 다른 글
아두이노 시뮬레이터 Tinkercad(팅커캐드) (3) | 2021.05.22 |
---|---|
아두이노 키트 첫 개봉기 (5) | 2021.05.20 |
Comments