디시인사이드 갤러리

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

갤러리 본문 영역

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

썬컷0.6갤로그로 이동합니다. 2024.12.28 23:19:54
조회 79 추천 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 - -
7009726 똑같이 걸레라면 걍 더 예쁜 애가 낫지 [4] 뭬뤠갤로그로 이동합니다. 12.29 63 0
7009725 사쿠라도 사랑 못하는 애들이 뭘알겠냐 ㅇㅇ [3] 천덕영갤로그로 이동합니다. 12.29 42 0
7009724 라이더 몸매 24년에 보기엔 별론데 [2] 미드と애니の노래갤로그로 이동합니다. 12.29 41 1
7009723 더이상 버틸수가 없군 [4] 쌍니은갤로그로 이동합니다. 12.29 36 0
7009721 이사람도 코미케인가 ㅋㅋㅋ [1] 재일교4갤로그로 이동합니다. 12.29 37 0
7009720 삣삐삣삐ㅡ!! 갤의 한남 게이지가 증가하고 있습니다ㅡ!!! 고햐쿠엔[수험생]갤로그로 이동합니다. 12.29 29 0
7009719 아니 떡감따질거면 페이트히로인들 다 나가린데?? [2] 빵케이크갤로그로 이동합니다. 12.29 57 0
7009718 카렌vs사쿠라 하면 좀 어렵긴함 [2] 돌아온빵집파락호갤로그로 이동합니다. 12.29 42 0
7009717 그 케스터도 세이버 붙잡고 다룰 때 나름 섬새했는데 도도봉갤로그로 이동합니다. 12.29 25 0
7009716 원시고대 판갤이었으면 상상도 못할 떡밥이 [10] NOIR갤로그로 이동합니다. 12.29 63 0
7009715 양하대곡 진짜 맛있더라 [6] Camellia.갤로그로 이동합니다. 12.29 33 0
7009714 사쿠라 뷰지에 못넣는다는 애들 뭐지... [3] 디클군갤로그로 이동합니다. 12.29 67 0
7009713 라이더 조임 < 이거 좀 신기하긴 함... [6] 크리스피갤로그로 이동합니다. 12.29 55 0
7009712 탑승객 명단은 어디서봄 미드と애니の노래갤로그로 이동합니다. 12.29 83 1
7009711 신지:에미야~ 여자는말이지 거길 이렇게 해주면~ 물렁굴루갤로그로 이동합니다. 12.29 41 0
7009710 현재기준으론 린이 제일 인기가없지... [2] ㅇㅇ(222.110) 12.29 36 0
7009709 미친년 이젠 막나가네 [4] 봄타이니갤로그로 이동합니다. 12.29 69 0
7009708 카렌은 착한척 안하잖아 [2] ㆁㆁ갤로그로 이동합니다. 12.29 30 0
7009707 솔직히 떡감만 놓고 보면 라이더가 젤 좋지않을까 [6] 갤로그로 이동합니다. 12.29 56 0
7009706 [■개추■]5번째재업,짱깨들의 치부 마오쩌둥 ㅋㅋㅋ 판갤러(118.235) 12.29 6 0
7009705 저태이 스페샬 [1] 칠사오갤로그로 이동합니다. 12.29 35 0
7009703 보이스 한정으로는 히로가 제일 낫긴 하던데 [3] ‘파타피갤로그로 이동합니다. 12.29 43 0
7009702 사쿠라 보지에 넣을 수 있냐? < 이건 [10] 홈즈,갤로그로 이동합니다. 12.29 93 0
7009701 뭘 먹어야 소화도 잘 되면서 영양보추도 딩딩하게 가능할까 [3] ㅇㅁㅇ)っ갤로그로 이동합니다. 12.29 13 0
7009699 라이더도 이제 같이 사는거임? [1] 봄타이니갤로그로 이동합니다. 12.29 43 0
7009698 근데 판갤러들은 사쿠라 페이스중에 카마 제일 좋아해야함 [6] 유열이갤로그로 이동합니다. 12.29 58 0
7009697 마토사쿠라는처녀입니다 쌍니은갤로그로 이동합니다. 12.29 14 0
7009695 다시 말하지만 사쿠라가 직접 조켄에게 복수하게 해줘야 해 소일렌트그린갤로그로 이동합니다. 12.29 16 0
7009694 사쿠라솔직히 떡감은 제일지릴듯 [4] 천덕영갤로그로 이동합니다. 12.29 57 0
7009693 사구라는 페스나 히로인 좀 아니지 않나 도도봉갤로그로 이동합니다. 12.29 12 0
7009692 사쿠라 페이스 중에선 그나마 카마가 군계일학이더라 [4] 뭬뤠갤로그로 이동합니다. 12.29 58 0
7009691 그래도 사쿠라 안에 좆뱀은 안들어가서 다행이지 안냐? [2] 소다향갤로그로 이동합니다. 12.29 46 0
7009690 원본사쿠라는모르겠고 사쿠라페이스들은 좋아함 ㅈㅅㅋㅇ갤로그로 이동합니다. 12.29 21 0
7009689 난 사쿠라가 좋아. [2] 천덕영갤로그로 이동합니다. 12.29 29 0
7009688 ㅅㅂ 브거킹있네 재일교4갤로그로 이동합니다. 12.29 17 0
7009686 사쿠라 애호파가 아직도 있긴 하냐 [3] 투하갤로그로 이동합니다. 12.29 44 0
7009685 일단 사쿠라 캐디부터 좀 절망적이긴 함 [1] ㆁㆁ갤로그로 이동합니다. 12.29 46 0
7009684 사쿠라가성애의대상이라는애들이젤신기한데??? [10] 빵케이크갤로그로 이동합니다. 12.29 78 0
7009683 머냐 봄타이니 하는거 리마스터가 아니라 오리지널이였어? 황천볶음밥갤로그로 이동합니다. 12.29 28 0
7009682 근데 카렌은 성병수준이 아니라 물리적으로 즉사할수도 있잖아 [6] 갤로그로 이동합니다. 12.29 62 1
7009681 근데 시로 하는걸로 미뤄보면 사쿠라가 제일 떡감좋긴할듯 [2] 인포그램갤로그로 이동합니다. 12.29 41 0
7009680 그 좆벌레들 진짜 성병 없는거 맞냐 [4] 크리스피갤로그로 이동합니다. 12.29 54 0
7009678 대충 리버스 어쩌고 저쩌고 [5] Lumpenproletariat갤로그로 이동합니다. 12.29 69 2
7009677 ......지나가던 정떡코인주식글먹롤갈드컵버튜버중계충인데요 [1] 삽치갤로그로 이동합니다. 12.29 31 0
7009676 솔직히 페스나 히로인은 [4] α센타우리갤로그로 이동합니다. 12.29 40 0
7009675 저녁 현라고민이네 재일교4갤로그로 이동합니다. 12.29 10 0
7009674 카렌은 얼굴천재라 좀 그래도 됨 뭬뤠갤로그로 이동합니다. 12.29 29 0
7009673 벌레들이 사쿠라자궁에알까서 번식한건 과거일뿐임 [7] ㅇㅇ(222.110) 12.29 63 0
7009672 쌍니은이 클바 쌀먹으로 하루 백만씩 번다던데 [4] 돌아온빵집파락호갤로그로 이동합니다. 12.29 24 0
7009671 저녁 현라고민이네 [2] 재일교4갤로그로 이동합니다. 12.29 18 0
뉴스 블랙핑크, 스타 브랜드평판 2024년 12월 빅데이터 1위 차지 디시트렌드 12.29
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2