정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

조도센서를 활용한 아두이노 코딩 질문
ckshr | 2020-09-13

#include <IRremote.h>
#include <ir_Lego_PF_BitStreamEncoder.h>


IRrecv irrecv(8);
decode_results results;
int cds=A0;

void setup()
{     
  irrecv.enableIRIn();
  pinMode(9, OUTPUT);
  Serial.begin(9600);
}

void loop()
{

  
  if(irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
      int cdsValue = analogRead(cds);
 
  
    if(results.value == 0xFFE21D) {
     Serial.print("cds =  ");
    Serial.println(cdsValue);
    cdsValue = map(cdsValue, 0, 1023, 0, 255);
    cdsValue = constrain(cdsValue, 0, 255);
    analogWrite(9,cdsValue);
    delay(200);
  
    }
   
    if(results.value == 0xFFA25D) {
      digitalWrite(9,LOW);
    }
    delay(30);
      irrecv.resume();
  }
 }

 

 

주변 환경의 조도에 따라 밝기가 변화하는 장치를 만들고 싶은데, 적외선 리모컨으로 이 장치를 키고 끌 수 있게 구현하려고 해서 위의 식처럼 코딩을 했습니다 코드 오류는 없는데 리모컨의 버튼을 누를 때마다 주변 환경에 따라 밝기가 변화하더라구요 그래서 버튼을 눌러줘야 밝기가 변합니다... 아무래도 cdsValue=map 이쪽 부분 식이 저 if문 안에 들어가 있어서 그런 것 같은데 어떻게 수정해야 할까요??

프로필사진

판다마니아 2020-09-15 17:40:42

if(irrecv.decode(&results)) 조건문 안에 LED 제어하는 코드가 있다보니 조건이 만족했을 때만 LED가 바뀌게 됩니다.

 

그래서 토글을 이용해서 버튼을 눌렀을 때 상태값만 바뀌게 하고 LED동작은 loop문 바로 안에 넣어서 계속 동작하도록 하시면 됩니다.

 

아래 임시로 만들어 봤으니 확인해보세요.

 

#include <IRremote.h>
#include <ir_Lego_PF_BitStreamEncoder.h>


IRrecv irrecv(8);
decode_results results;
int cds = A0;
boolean flag = 0;

void setup()
{
  irrecv.enableIRIn();
  pinMode(9, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    int cdsValue = analogRead(cds);


    if (results.value == 0xFFE21D) {
      flag = 1;
    }

    if (results.value == 0xFFA25D) {
      digitalWrite(9, LOW);
      flag = 0;
    }
    delay(30);
    irrecv.resume();
  }

  if (flag == 1) {
    Serial.print("cds =  ");
    Serial.println(cdsValue);
    cdsValue = map(cdsValue, 0, 1023, 0, 255);
    cdsValue = constrain(cdsValue, 0, 255);
    analogWrite(9, cdsValue);
    delay(200);
  }
}

 

이전글   |    아두이노 코드 오류 좀 알려주세요....ㅠㅠ... 2020-09-10
다음글   |    지그비와 앱인벤터 통신과 관련하여 질문드립니다.... 2020-09-19