디시인사이드 갤러리

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

갤러리 본문 영역

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

썬컷0.6갤로그로 이동합니다. 2024.12.28 23:19:54
조회 88 추천 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 - -
7020563 근데 사살백두 자체가 좀 간지랑 거리가 있음 애초에 α센타우리갤로그로 이동합니다. 24.12.31 44 0
7020562 "────따라올 수 있겠나" [1] 올베르갤로그로 이동합니다. 24.12.31 65 2
7020561 펄~럭 [8] 봄타이니갤로그로 이동합니다. 24.12.31 633 12
7020560 올 한해 고생했고 내년엔 하는일들 잘 되길 바래 [7] 황천볶음밥갤로그로 이동합니다. 24.12.31 33 0
7020559 한해가 끝나가는데 올리는게 홈즈짤이라니 [2] 라만차의기사갤로그로 이동합니다. 24.12.31 25 0
7020558 스노필드폭발은 가스관 폭발일뿐 뇽룡이갤로그로 이동합니다. 24.12.31 19 0
7020557 김정은 딸래미는 솔까 애정용이고 [7] 펭귀니우스갤로그로 이동합니다. 24.12.31 71 0
7020556 와 약먹었는데 머리 미친듯이 아프내 코코아볼갤로그로 이동합니다. 24.12.31 16 0
7020555 비타버전 헤필 오프닝 화나는 점 [1] 망아지갤로그로 이동합니다. 24.12.31 30 0
7020554 페스페 1화 입갤 [3] 뇽룡이갤로그로 이동합니다. 24.12.31 36 0
7020553 그래 버서커 이리야는 내가 목숨 걸고 지킬게 [1] 봄타이니갤로그로 이동합니다. 24.12.31 64 0
7020552 페스페 착석ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 창미갤로그로 이동합니다. 24.12.31 13 0
7020551 곰곰이 생각해봣는데 파인다이닝 가는거보다 남은 치킨 안먹는게 더빡침 [1] 적근대갤로그로 이동합니다. 24.12.31 32 0
7020550 지금 만화 보는데 어디있지 릴판갤로그로 이동합니다. 24.12.31 12 0
7020549 님들 곧 2024끝남 [3] 홈즈,갤로그로 이동합니다. 24.12.31 27 0
7020548 잘 모르는 눈마새 복선 [5] 모하비배달부갤로그로 이동합니다. 24.12.31 58 0
7020547 리처드 1세 입갤 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 소악마갤로그로 이동합니다. 24.12.31 14 0
7020546 난지가 오레노 마스타카 뇽룡이갤로그로 이동합니다. 24.12.31 17 0
7020545 븜타 이거 진짜에요????????? [14] 실브아_갤로그로 이동합니다. 24.12.31 110 0
7020544 이븬 비빔대왕 아님?? 화참자갤로그로 이동합니다. 24.12.31 25 0
7020543 아아... 이리야의 어그로 핑퐁으로 이겼구나 [2] 봄타이니갤로그로 이동합니다. 24.12.31 76 0
7020542 김정은 뒤지면 진짜 무너질 각이라는데 하아 [5] 모하비배달부갤로그로 이동합니다. 24.12.31 84 0
7020541 ... 이리야 설마 너 뭐 하려고??? 봄타이니갤로그로 이동합니다. 24.12.31 66 0
7020540 젤릿치입갤 뇽룡이갤로그로 이동합니다. 24.12.31 21 0
7020537 오늘의 술) LIFE 페일에일 [6] 노벨쨩갤로그로 이동합니다. 24.12.31 28 0
7020536 근데 난 솔직히 다리보다 가슴살이 더 맛있는거 같음 [1] 갤로그로 이동합니다. 24.12.31 26 0
7020535 내가 홍천에서 본 냉면은 위에 토마토올려줌 [10] 홈즈,갤로그로 이동합니다. 24.12.31 38 0
7020534 아니 뭐지??? 이거 설마 1초후 미래 예지 한거임? [4] 봄타이니갤로그로 이동합니다. 24.12.31 132 0
7020533 눈마새 4권) 아니 시발 이게 무슨 소리야 [5] 트쿡갤로그로 이동합니다. 24.12.31 38 0
7020532 근데 정말 헤필 극장판의 호흡은 별로란 말이지 [2] alembic갤로그로 이동합니다. 24.12.31 43 0
7020531 나고리유키 저사람 노래 기가막힌데? 김누렁갤로그로 이동합니다. 24.12.31 16 0
7020530 여러분의 건의로 제목 수정 했습니다 ㅇㅇ [6] 봄타이니갤로그로 이동합니다. 24.12.31 586 10
7020529 진짜 길가엘키두전은 개쩌러 [1] 뇽룡이갤로그로 이동합니다. 24.12.31 29 0
7020528 이별에 서툴러서 미안해 굿바이10만유저스 ㅇㅇ(116.34) 24.12.31 12 0
7020527 위꼴야식움짤 [8] 홈즈,갤로그로 이동합니다. 24.12.31 54 0
7020526 겨울되니까 테슬라 사이버트럭 설계결함 터지네 재리교64갤로그로 이동합니다. 24.12.31 25 0
7020525 교배아저씨 14살 시골 소녀에게 바로 첩 제안 wwww ㅇㅇ,(58.29) 24.12.31 38 0
7020524 아니 시발 졌다는데??????????????? [9] 봄타이니갤로그로 이동합니다. 24.12.31 158 0
7020523 진짜 옛날노래도 나오는거냐 김누렁갤로그로 이동합니다. 24.12.31 18 0
7020521 페스나 중게예 페스페 중계까지 있는거냐 지금? [1] 창미갤로그로 이동합니다. 24.12.31 37 0
7020520 어제 4시에 잤더니 진짜 피곤하네 궤적갤로그로 이동합니다. 24.12.31 13 0
7020519 여기 랩들어간거 ㄹㅇ 다시봐도 감다뒤네 [6] 어사일럼갤로그로 이동합니다. 24.12.31 60 0
7020518 ㅡㅡㅡ나인라이브즈 블레이드 워크스 [11] 봄타이니갤로그로 이동합니다. 24.12.31 218 7
7020516 에누마 에리쉬 키타 뇽룡이갤로그로 이동합니다. 24.12.31 23 0
7020515 교미애 적합하지않은 몸 [1] 유동죽갤로그로 이동합니다. 24.12.31 46 0
7020514 그런데 광명시 이 미친 쌀숭이 새기들 [2] 홈즈,갤로그로 이동합니다. 24.12.31 57 0
7020513 저검 이거닮았네ㄷ 퓌캬륀갤로그로 이동합니다. 24.12.31 18 0
7020512 트리거 온 [5] 봄타이니갤로그로 이동합니다. 24.12.31 94 1
7020511 요즘 탈북민 토크 영상 보는데 왤케 재밋냐.. [12] 치이충갤로그로 이동합니다. 24.12.31 64 0
7020510 엊그제 인생 처음 코스트코 다녀와보고 느낀건데 [12] 홈즈,갤로그로 이동합니다. 24.12.31 59 0
뉴스 ‘방판왔습니다’ 박세미 “방송 통해 나도 모르는 내 모습 발견” 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2