디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

이제 아두이노 키트만 사면 된다앱에서 작성

썬컷0.6갤로그로 이동합니다. 2024.12.28 23:19:54
조회 87 추천 0 댓글 4

#include <Arduino.h>

//====================
// 하드웨어 설정
//====================
// 핀 설정
const int LIGHT_SENSOR_PIN = 34;    // 조도 센서가 연결된 핀
const int RELAY_PIN = 26;           // 릴레이 제어 핀

//====================
// 조도 센서 설정
//====================
// 조도 임계값 (환경에 따라 조정 필요)
const long LIGHT_THRESHOLD_ON = 1900;   // 이 값보다 어두우면 켜짐
const long LIGHT_THRESHOLD_OFF = 2100;  // 이 값보다 밝으면 꺼짐

// 샘플링 설정
const int SAMPLES = 5;                  // 평균을 위한 샘플 수
const unsigned long INTERVAL_MS = 1000;  // 조도 측정 간격 (밀리초)

//====================
// 디버깅 설정
//====================
const unsigned long PRINT_INTERVAL = 5000;  // 시리얼 출력 간격 (밀리초)
const long SENSOR_MIN_VALUE = 0;           // 센서 최소 유효값
const long SENSOR_MAX_VALUE = 4095;        // 센서 최대 유효값

//====================
// 전역 변수
//====================
// 조도값 저장 배열 (long 타입으로 변경)
long lightValues[SAMPLES];               
int currentIndex = 0;                   

// 타이밍 관련 변수
unsigned long previousMillis = 0;         // 이전 조도 측정 시간
unsigned long lastPrintTime = 0;          // 마지막 시리얼 출력 시간

// 상태 추적 변수
int previousRelayState = LOW;             // 이전 릴레이 상태

//====================
// 함수 정의
//====================
// 평균 조도값 계산 함수
long getAverageLightLevel() {
  long sum = 0;
  for (int i = 0; i < SAMPLES; i++) {
    sum += lightValues[i];
  }
  return sum / SAMPLES;
}

// 센서값 유효성 검사 함수
bool isValidSensorReading(long value) {
  return (value >= SENSOR_MIN_VALUE && value <= SENSOR_MAX_VALUE);
}

void setup() {
  // 시리얼 통신 초기화
  Serial.begin(115200);
  Serial.println("System starting...");

  // 핀 모드 설정
  pinMode(LIGHT_SENSOR_PIN, INPUT);
  pinMode(RELAY_PIN, OUTPUT);

  // 조도 값 배열 초기화
  for (int i = 0; i < SAMPLES; i++) {
    lightValues[i] = 0;
  }

  // 릴레이 초기 상태 설정 (안전을 위해 꺼진 상태로 시작)
  digitalWrite(RELAY_PIN, LOW);
  Serial.println("Initialization complete");
}

void loop() {
  unsigned long currentMillis = millis();

  // 측정 간격 확인
  if (currentMillis - previousMillis >= INTERVAL_MS) {
    previousMillis = currentMillis;

    // 조도 센서 값 읽기
    long lightLevel = analogRead(LIGHT_SENSOR_PIN);

    // 센서 값 유효성 검사
    if (!isValidSensorReading(lightLevel)) {
      Serial.println("Error: Invalid sensor reading detected");
      return;
    }

    // 새로운 값 저장
    lightValues[currentIndex] = lightLevel;
    currentIndex = (currentIndex + 1) % SAMPLES;

    // 평균 조도값 계산
    long averageLight = getAverageLightLevel();

    // 주기적인 상태 출력
    if (currentMillis - lastPrintTime >= PRINT_INTERVAL) {
      lastPrintTime = currentMillis;
      Serial.print("Current Light Level: ");
      Serial.print(lightLevel);
      Serial.print(" | Average Light Level: ");
      Serial.print(averageLight);
      Serial.print(" | Relay State: ");
      Serial.println(previousRelayState == HIGH ? "ON" : "OFF");
    }

    // 릴레이 상태 결정 (히스테리시스 적용)
    int relayState;
    if (averageLight < LIGHT_THRESHOLD_ON) {
      relayState = HIGH;  // 어두우면 켜기
    } else if (averageLight > LIGHT_THRESHOLD_OFF) {
      relayState = LOW;   // 밝으면 끄기
    } else {
      relayState = previousRelayState;  // 중간값은 현재 상태 유지
    }

    // 상태 변경 필요시에만 릴레이 제어
    if (relayState != previousRelayState) {
      digitalWrite(RELAY_PIN, relayState);
      previousRelayState = relayState;
     
      // 상태 변경 로그
      Serial.print("Light turned ");
      Serial.println(relayState == HIGH ? "ON" : "OFF");
      Serial.print("Light level at change: ");
      Serial.println(averageLight);
    }
  }
}





조도감지센서가 어떻게 동작하는지에 대해 단 하나도 이해 못했지만

근이아이님의 코딩이 실제로 어떻게 구현되는지가 궁금해졌음

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 계엄 때문에 가장 큰 타격 입은 것 같은 스타는? 운영자 24/12/30 - -
공지 제주항공 여객기 사고 관련 운영자 24/12/31 - -
7020288 얘네 또 뭐 콜라보하남 화참자갤로그로 이동합니다. 24.12.31 12 0
7020287 홍은채컄ㅋㅋㅋㅋㅋㅋㅋㅋ 레헤갤로그로 이동합니다. 24.12.31 17 0
7020286 틀하하하이스ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 레헤갤로그로 이동합니다. 24.12.31 11 0
7020285 트와이스 입갤ㄷㄷ 김누렁갤로그로 이동합니다. 24.12.31 16 0
7020284 이야 시로 각성 ㄷㄷ [1] 봄타이니갤로그로 이동합니다. 24.12.31 43 0
7020283 근데 나 갤질하면서 비틱질같은거 안한거같은데 [7] 무명소졸,갤로그로 이동합니다. 24.12.31 45 0
7020282 저 지금 운동 끝나고 라면 한사발 조졌는데 넘 고민댐 [6] 갤로그로 이동합니다. 24.12.31 25 0
7020281 근와이스입갤ㅋㅋㅋ [2] 레헤갤로그로 이동합니다. 24.12.31 15 0
7020280 유튜브뮤직 보는데 무슨 이런 조합이 든든허스터갤로그로 이동합니다. 24.12.31 21 0
7020279 이런거 해보고싶은데 집에 불낼거같음 [12] 홈즈,갤로그로 이동합니다. 24.12.31 46 0
7020278 맛있겠다고.해다오. [13] 재일교4갤로그로 이동합니다. 24.12.31 60 0
7020277 후지 누나 십ㅋㅋ 세이버 상대로 검도하겠데 ㅋㅋㅋㅋ 코코아볼갤로그로 이동합니다. 24.12.31 25 0
7020276 치킨이랑 바게트랑 먹으면 좋을것같음 [2] 우주멍멍이갤로그로 이동합니다. 24.12.31 14 0
7020275 하아... 너무 최악의 형태잖나 [1] 봄타이니갤로그로 이동합니다. 24.12.31 54 0
7020274 비참함에 주절거리게 되는구나 ..... 냥초크1갤로그로 이동합니다. 24.12.31 16 0
7020273 괴담동 결국 겨울방학이 2년걸렸네 우주멍멍이갤로그로 이동합니다. 24.12.31 14 0
7020272 ㅅㅂ 치킨 한마리 다먹는놈들 존경한다진짜; [9] 설아설갤로그로 이동합니다. 24.12.31 47 0
7020271 아 이노래구나 김누렁갤로그로 이동합니다. 24.12.31 15 0
7020270 세 카 잌ㅋㅋㅋㅋㅋㅋㅋ 레헤갤로그로 이동합니다. 24.12.31 14 0
7020269 언더테일 이름 디폴트가 머냐? [4] 삽치갤로그로 이동합니다. 24.12.31 44 0
7020268 오겜에 레이디보이도 나오네 [4] 홈즈,갤로그로 이동합니다. 24.12.31 47 0
7020267 마블 라이벌즈 생각보다 재미없군 콜드오렌지갤로그로 이동합니다. 24.12.31 15 0
7020265 노피아 표지들 떡감지리는년들만 잇내 [1] 유동죽갤로그로 이동합니다. 24.12.31 34 0
7020264 이 혼을 불쌍히 여기소서 [3] 봄타이니갤로그로 이동합니다. 24.12.31 66 0
7020263 흐느적흐느적ㅋㅋㅋㅋㅋ 레헤갤로그로 이동합니다. 24.12.31 16 0
7020262 이분은 누구신가요 [3] 화참자갤로그로 이동합니다. 24.12.31 26 0
7020261 초파리 입갤 ㅋㅋㅋㅋ 속죄황갤로그로 이동합니다. 24.12.31 13 0
7020260 이건 처음뵙는분이네 김누렁갤로그로 이동합니다. 24.12.31 17 0
7020259 오늘 연말이라고 다 돌리네 갈릭소스갤로그로 이동합니다. 24.12.31 17 0
7020258 세이버 얘도 빡통임??? [1] 코코아볼갤로그로 이동합니다. 24.12.31 24 0
7020257 이따 12시에 괴담동 오겠지...??? 시온마츠리갤로그로 이동합니다. 24.12.31 16 0
7020256 분위기다운은근시로겐ㅋㅋㅋㅋ 레헤갤로그로 이동합니다. 24.12.31 13 0
7020255 언더테일 시작했는데 벌써 힘드네 삽치갤로그로 이동합니다. 24.12.31 16 0
7020254 중국인들 발 좋아한다 미국인들 엉덩이 좋아한다 이런 말 보면 궁금한게 [3] 갤로그로 이동합니다. 24.12.31 32 0
7020253 키레가 조켄 죽였나본디??? 봄타이니갤로그로 이동합니다. 24.12.31 45 0
7020252 아직은미숙해라는녀석...레헤에게감사하도록. [2] 레헤갤로그로 이동합니다. 24.12.31 29 0
7020251 ㅇㄹㅂㄷ 퇴근 엘레베스갤로그로 이동합니다. 24.12.31 13 0
7020250 갑자기 유튜브 애드가드 안먹히네 ㅡㅡ ㅇㅇ(218.144) 24.12.31 31 0
7020249 진짜 시발 영혼을 갈아넣어서 숙제했다 고햐쿠엔[수험생]갤로그로 이동합니다. 24.12.31 19 0
7020248 버스커 이거 니트나 록으로도 충분히 맛있네 망아지갤로그로 이동합니다. 24.12.31 13 0
7020247 레전드 뭐 기도문 읊나본데??? [4] 봄타이니갤로그로 이동합니다. 24.12.31 78 0
7020246 중국놈들 ㄹㅇ 발참 좋아하는군 [1] ㅇㅇ,(58.29) 24.12.31 32 0
7020245 근데 킬마위 그림체가 그 니체 문답 여고생 만화 그건가 ㅇㅇ(133.200) 24.12.31 13 0
7020244 그런데 오겜2에 ㄹㅇ자선파티잖아 [2] 홈즈,갤로그로 이동합니다. 24.12.31 51 0
7020243 홈즈 사다리 당첨기념 언빌리버블버거 세트 [19] 아직은미숙해갤로그로 이동합니다. 24.12.31 77 0
7020241 생각해보니 나루토는 1화부터 사기캐였던거 같음 [7] ㅇㅇ갤로그로 이동합니다. 24.12.31 59 0
7020240 아니 뭐고????? [1] 봄타이니갤로그로 이동합니다. 24.12.31 53 0
7020239 킬마위 이제 보는데 애들 귀엽네 ㅇㅇ(133.200) 24.12.31 19 0
7020238 바운지랑 마요네즈켄시랑 누가 더 천재소리들음? [2] ㅇㅇ(1.245) 24.12.31 29 0
7020237 옆모습 흥민이형 느낌이 쀼장갤로그로 이동합니다. 24.12.31 14 0
뉴스 연예계, 제주항공 참사 추모 물결…‘나래식’ 등 업로드 연기 속 실언·경솔 논란도 [종합] 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2