디시인사이드 갤러리

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

갤러리 본문 영역

지피티 제미니 클로드 세개로 서로 코드평가하게 해서 만든 최종코드가

썬컷0.6갤로그로 이동합니다. 2024.12.28 20:46:12
조회 113 추천 0 댓글 7

#include <Arduino.h> 


// 핀 설정

const int LIGHT_SENSOR_PIN = 34; // 조도 센서가 연결된 핀

const int RELAY_PIN = 26;        // 릴레이 제어 핀


// 설정값

const int LIGHT_THRESHOLD_ON = 1900;  // 릴레이 켜는 임계값

const int LIGHT_THRESHOLD_OFF = 2100; // 릴레이 끄는 임계값

const int SAMPLES = 5;            // 평균을 위한 샘플 수

const unsigned long INTERVAL_MS = 1000; // 조도 측정 간격 (밀리초 단위)


// 전역 변수

int lightValues[SAMPLES];             // 조도 값을 저장할 배열

int currentIndex = 0;                 // 현재 저장할 배열 인덱스

unsigned long previousMillis = 0;     // 이전 조도 측정 시간 (밀리초)

int previousRelayState = LOW;         // 이전 릴레이 상태 (상태 변경을 추적하기 위해 사용)


static unsigned long lastPrintTime = 0;  // 마지막 시리얼 출력 시간 추적

const unsigned long PRINT_INTERVAL = 5000; // 5초마다 시리얼 출력


// 평균 조도값 계산 함수

long getAverageLightLevel() {

  long sum = 0;

  for (int i = 0; i < SAMPLES; i++) {

    sum += lightValues[i];

  }

  return sum / SAMPLES;

}


void setup() {

  // 시리얼 통신 시작 (디버깅을 위해 사용)

  Serial.begin(115200);


  // 핀 모드 설정

  pinMode(LIGHT_SENSOR_PIN, INPUT);

  pinMode(RELAY_PIN, OUTPUT);


  // 조도 값 배열을 초기화

  for (int i = 0; i < SAMPLES; i++) {

    lightValues[i] = 0;

  }


  // 릴레이 초기 상태 설정 (꺼짐 상태로 시작)

  digitalWrite(RELAY_PIN, LOW);

}


void loop() {

  unsigned long currentMillis = millis();


  // 일정 시간 간격마다 조도 값 읽기

  if (currentMillis - previousMillis >= INTERVAL_MS) {

    previousMillis = currentMillis;


    // 조도 센서 값 읽기

    int lightLevel = analogRead(LIGHT_SENSOR_PIN);


    // 오류 처리 (조도 값이 유효하지 않으면 반환)

    if (lightLevel < 0 || lightLevel > 4095) {

      Serial.println("Error reading light sensor");

      return;

    }


    // 배열에 새로운 값 저장

    lightValues[currentIndex] = lightLevel;

    currentIndex = (currentIndex + 1) % SAMPLES;


    // 평균 조도값 계산

    int averageLight = getAverageLightLevel();


    // 일정 시간 간격마다 시리얼 출력 (5초마다 출력)

    if (currentMillis - lastPrintTime >= PRINT_INTERVAL) {

      lastPrintTime = currentMillis;

      Serial.print("Current Light Level: ");

      Serial.print(lightLevel);

      Serial.print(" | Average Light Level: ");

      Serial.println(averageLight);

    }


    // 조도값에 따라 릴레이 상태 결정 (히스테리시스 적용)

    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;


      // 릴레이 상태에 따른 시리얼 출력

      if (relayState == HIGH) {

        Serial.println("Light ON");

      } else {

        Serial.println("Light OFF");

      }

    }

  }

}





이건데






#include <Arduino.h>


// 핀 설정

const int LIGHT_SENSOR_PIN = 34;  // 조도 센서 연결 핀

const int RELAY_PIN = 26;         // 릴레이 제어 핀


// 설정값

const int LIGHT_THRESHOLD = 2000;  // 빛 감지 임계값 (0-4095)

const int DELAY_MS = 1000;        // 측정 간격 (밀리초)

const int SAMPLES = 5;            // 평균을 위한 샘플 수


// 전역 변수

int lightValues[SAMPLES];         // 조도값 저장 배열

int currentIndex = 0;             // 현재 배열 인덱스


// 평균 조도값 계산 함수

int getAverageLightLevel() {

  int sum = 0;

  for (int i = 0; i < SAMPLES; i++) {

    sum += lightValues[i];

  }

  return sum / SAMPLES;

}


void setup() {

  // 시리얼 통신 시작

  Serial.begin(115200);

  

  // 핀 모드 설정

  pinMode(LIGHT_SENSOR_PIN, INPUT);

  pinMode(RELAY_PIN, OUTPUT);

  

  // 배열 초기화

  for (int i = 0; i < SAMPLES; i++) {

    lightValues[i] = 0;

  }

  

  // 초기 릴레이 상태 설정

  digitalWrite(RELAY_PIN, LOW);

}


void loop() {

  // 조도값 읽기

  int lightLevel = analogRead(LIGHT_SENSOR_PIN);

  

  // 배열에 저장

  lightValues[currentIndex] = lightLevel;

  currentIndex = (currentIndex + 1) % SAMPLES;

  

  // 평균 조도값 계산

  int averageLight = getAverageLightLevel();

  

  // 시리얼 모니터에 데이터 출력

  Serial.print("Current Light Level: ");

  Serial.print(lightLevel);

  Serial.print(" | Average Light Level: ");

  Serial.println(averageLight);

  

  // 조도값에 따라 릴레이 제어

  if (averageLight < LIGHT_THRESHOLD) {

    digitalWrite(RELAY_PIN, HIGH);  // 어두우면 켜기

    Serial.println("Light ON");

  } else {

    digitalWrite(RELAY_PIN, LOW);   // 밝으면 끄기

    Serial.println("Light OFF");

  }

  

  // 딜레이

  delay(DELAY_MS);

}




맨 처음의 이거랑


뭐가 달라졋는지 하나도 모르겠농


ㅋㅋ;

추천 비추천

0

고정닉 0

0

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 계엄 때문에 가장 큰 타격 입은 것 같은 스타는? 운영자 24/12/30 - -
7009420 부모님 유튜브 계정 검열해야되나 요즘 고민중임.. [1] 바우갤로그로 이동합니다. 12.29 32 0
7009419 눈마새 스포) 2권 개충격이네 [8] 트쿡갤로그로 이동합니다. 12.29 52 0
7009418 붕스 이 씨발 새끼들 진짜 미쳤네 [1] alembic갤로그로 이동합니다. 12.29 40 0
7009416 지금 봄타글에 '그 일베콘' 준비중인놈들 있을듯... [6] 빵케이크갤로그로 이동합니다. 12.29 70 0
7009415 타입문은 페그오가 끝나야 다음스테이지로 갈것같은데 [2] ㅇㅇ(222.110) 12.29 26 0
7009414 헤븐즈필 첨하는사람은 노멀엔딩 먼저보는게 맞다고봄 노벨쨩갤로그로 이동합니다. 12.29 21 0
7009413 진심 교성과 연기 교성의 차이 [2] 김해린갤로그로 이동합니다. 12.29 60 0
7009412 이건 누구취향이지 [4] 투하갤로그로 이동합니다. 12.29 37 0
7009411 친구 공익 간다길래 ㅈㄴ 부러워 했음 [4] backlot갤로그로 이동합니다. 12.29 65 0
7009410 짤녀 킹임 [3] D4C서부갤로그로 이동합니다. 12.29 39 0
7009409 지센 관련 날조 빌리프짐 ㅇㅇ(175.223) 12.29 26 0
7009408 아니사쿠라정신엔문제가없는데?? [2] 빵케이크갤로그로 이동합니다. 12.29 45 0
7009407 타입문 본인이 쌜이유가 적은 인물 [4] 라만차의기사갤로그로 이동합니다. 12.29 44 0
7009406 이렇게 생각하니까 그냥 문학이 지도 채우기 같기도 하고 [2] ‘파타피갤로그로 이동합니다. 12.29 46 0
7009405 오늘부터 판갤질 줄이기 위해 맹세를 해버렸음 [7] 위씽갤로그로 이동합니다. 12.29 50 0
7009402 말딸은 나중에 더 나올 말이 없는거 아냐? [7] NOIR갤로그로 이동합니다. 12.29 31 0
7009401 근데 홍어사카 가슴도 한녀 기준으로 큰 거 아님? [6] 그림먼저본다갤로그로 이동합니다. 12.29 58 0
7009400 레전드 정신병자 탈출 [4] 봄타이니갤로그로 이동합니다. 12.29 96 0
7009399 일단 앓아누웠다 퓌캬륀갤로그로 이동합니다. 12.29 11 0
7009398 버튜버) 우타와꾸 들으세요 노래를 잘 부릅니다 뭬뤠갤로그로 이동합니다. 12.29 13 0
7009397 작은팬 새로 사야하네.. 비류쑈갤로그로 이동합니다. 12.29 14 0
7009396 ㄹㅇ 24인 리버스 대회라는게 왜 진짜 되는거지 [5] 루잭갤로그로 이동합니다. 12.29 38 0
7009395 아니 시로야 뭔 깡이냐??? 봄타이니갤로그로 이동합니다. 12.29 61 0
7009394 똥양인들은 이름이 왜이리 멋이없냐?? ㅇㅇ(106.101) 12.29 26 0
7009393 그래도 살아간다 어쩌구 [8] 헤흐린갤로그로 이동합니다. 12.29 50 0
7009392 크으 티파티 이거죠 [1] 뭬뤠갤로그로 이동합니다. 12.29 21 0
7009391 그림 하나 그려볼래니까 후딱 추천좀 해보쇼잉 [5] 김태만갤로그로 이동합니다. 12.29 31 0
7009390 기원탄 설마 젤렛치에게도 먹히진 않을거고 [6] 소일렌트그린갤로그로 이동합니다. 12.29 65 0
7009388 홍오사카 드립이 ㄹㅇ 찰진 이유 [5] 엘레베스갤로그로 이동합니다. 12.29 83 5
7009387 저랑 같이 추하실분 고햐쿠엔[수험생]갤로그로 이동합니다. 12.29 13 0
7009386 "나는 스즈카가 크다는걸 알고도 사랑했어요." [1] 갤로그로 이동합니다. 12.29 44 0
7009385 이건 입도 안열려있는데 막 지껄이네 D4C서부갤로그로 이동합니다. 12.29 34 0
7009384 마음이 그냥 갈대구만 미친.놈 [1] 봄타이니갤로그로 이동합니다. 12.29 41 0
7009383 기원탄은 약간 세계관초창기 밸런스실패느낌 [3] ㅇㅇ(223.38) 12.29 39 0
7009382 기립하시오, 당신도! [1] 민지갤로그로 이동합니다. 12.29 19 0
7009380 마파신부 ㄹㅇ 보면 참신부긴 한 [5] 너구리위식빵갤로그로 이동합니다. 12.29 38 0
7009379 오늘 버거킹에서 들었던 버거킹 노래 옜날노래였구나 [2] 푸슈갤로그로 이동합니다. 12.29 22 0
7009378 시로야 그니까 살아오며 쌓은 모든 신념과 반대인데 [3] 봄타이니갤로그로 이동합니다. 12.29 74 0
7009377 Jin << 이새끼는 그냥 천재임 [3] 고햐쿠엔[수험생]갤로그로 이동합니다. 12.29 42 0
7009376 금쪽이 제자가 성유물만 훔쳐가지 않았어도..... [2] ㅇㅇ:갤로그로 이동합니다. 12.29 23 0
7009375 학교 휴학하지말고 그냥 다닐껄 [4] backlot갤로그로 이동합니다. 12.29 37 0
7009374 아니 그냥 구구절절 얘가 맞는데 [2] 봄타이니갤로그로 이동합니다. 12.29 64 0
7009373 케이네스 라이더 조합 보고 싶긴함 ㅇㅇ:갤로그로 이동합니다. 12.29 20 0
7009372 아따 무안유공자법 통과시킬 기세롤세 [3] 그림먼저본다갤로그로 이동합니다. 12.29 72 1
7009369 그러네 진짜 창녀가 아니라 토오사카라고 부르네 [1] 고햐쿠엔[수험생]갤로그로 이동합니다. 12.29 51 0
7009368 ???:고맙다 차드 야스토라...... [2] 호탈갤로그로 이동합니다. 12.29 36 0
7009366 하아... 토오사카 미안하다... [3] 봄타이니갤로그로 이동합니다. 12.29 92 0
7009365 단다단 만화 이거 걍 작화 미쳤네 [4] 스즈갤로그로 이동합니다. 12.29 59 0
7009364 내일은 bhc 신작 다시 한번 도전해볼까 [5] 뭬뤠갤로그로 이동합니다. 12.29 35 0
7009362 짤 호로임 [3] D4C서부갤로그로 이동합니다. 12.29 30 0
뉴스 ‘대상’ 이찬원 “박성온 우승하면 한우 사주겠다”…통 큰 공약 (불후의 명곡) 디시트렌드 12.29
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2