BASIC4MCU | 질문게시판 | 적외선 리모콘 거리
페이지 정보
작성자 T1LSK 작성일2020-06-22 15:37 조회3,389회 댓글1건본문
적외선 리모콘을 이용하는 거리가 4m정도밖에 안되더라고요 이 거리를 2배정도로 늘릴수있을가요?
#include <IRremote.h>
int remote = A0; // 포트설정 ( 수신부 )
IRrecv irrecv(remote);
decode_results results; // 구조체 정의
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
/*
*
*/
pinMode(remote, INPUT);
pinMode(10, OUTPUT); // 0
pinMode(11, OUTPUT); // 1
pinMode(12, OUTPUT); // 2
pinMode(13, OUTPUT); // 3
}
void loop()
{
int Volt = analogRead(A1);
Serial.println(Volt);
delay(200);
if(Volt <= 400) {
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(200);
}
else if(Volt <= 800) {
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(200);
}
else {
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
/*
*
*/
if(irrecv.decode(&results)){
if(Volt <= 400){
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
}
if (irrecv.decode(&results)){
switch (results.value) {
case 0xFFA25D: // 수신신호 1로 결정
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
Serial.println("0");
break;
case 0xFF629D: // 수신신호 2로 결정
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
Serial.println("1");
}
irrecv.resume();
}
}
사용하고있는 코딩입니다.
댓글 1
조회수 3,389master님의 댓글
master 작성일
빛,소리 등의 에너지는 면적으로 퍼지므로
거리가 2배로 늘어나려면
송신 전력이 4배로 커지든지
수신센서 감도가 4배로 증가해야 합니다.
회로를 잘 모르면 어렵겠죠