[Arduino] Thermistor 센서 값 받아 아두이노 출력 하기

2024. 9. 27. 17:15·HCI/Arduino
728x90
반응형

아두이노 회로

 

온도 측정을 위한 회로 설계

22k옴 저항 사용

 

아두이노 코드

int Thermistor_Input = A0; // 온도 측정을 위한 입력 핀
float Vi = 1023.0; // 아두이노의 최대 ADC 값 (10-bit ADC)
float R1 = 22000.0; // 기본 저항 값 (22kΩ)
float R2 = 0; // 온도에 따라 변하는 서미스터 저항 값
float logR2 = 0; // 서미스터 저항의 로그값 저장
float T = 0; // 온도 값 저장
float c1 = -1.185559046e-03; // 서미스터의 계수 값
float c2 = 5.505203063e-04; // 서미스터의 계수 값
float c3 = -9.653138374e-07; // 서미스터의 계수 값

unsigned long startTime = 0; // 시작 시간을 저장할 변수
const unsigned long measurementDuration = 20000000; // 20초 (마이크로초 단위)

void setup() {
  Serial.begin(115200); // 시리얼 통신을 115200 bps 속도로 시작
  startTime = micros(); // 시작 시간 기록
}

void loop() {
  // 경과 시간이 20초를 넘지 않았을 경우에만 센서 값을 측정
  if (micros() - startTime <= measurementDuration) {
    int Vo = analogRead(Thermistor_Input); // 아날로그 입력 핀에서 서미스터 출력 값 읽기
    R2 = R1 * (Vi / (float)Vo - 1); // 서미스터 저항 값 계산
    logR2 = log(R2); // 저항 값을 로그로 변환
    T = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2)); // 서미스터의 계수 값을 이용해 온도 계산 (단위: 켈빈)
    T = T - 273.15; // 켈빈 온도를 섭씨 온도로 변환
    Serial.println(T); // 온도 출력
  } else {
    Serial.println("20초 측정 완료");
    while (true) {
      // 아무것도 하지 않음 (측정을 중단하고 프로그램을 멈춤)
    }
  }
}

해당 코드는 thermistor 센서를 통해 계속해서 아두이노로 온도 정보가 전송되고있다.

내 아두이노의 경우는 COM5 포트에서 해당 값을 확인 할 수 있다.

 

아두이노가 연결된 포트는 장치관리자>포트 에서 확인 가능

 

Serial Monitor 을 통해 값이 잘 측정 되고있다

728x90
반응형

'HCI > Arduino' 카테고리의 다른 글

[Arduino] dual thermal feedback  (0) 2025.05.22
[Arduino] Thermistor, Peltier module 을 활용해 Rising time과 Return Time 다항식 만들기 / 파이썬 / 아두이노  (0) 2025.04.16
[Arduino] Thermistor, Peltier module 을 활용해 Rising time과 Return Time 계산하기 / 파이썬 / 아두이노  (0) 2025.04.16
'HCI/Arduino' 카테고리의 다른 글
  • [Arduino] dual thermal feedback
  • [Arduino] Thermistor, Peltier module 을 활용해 Rising time과 Return Time 다항식 만들기 / 파이썬 / 아두이노
  • [Arduino] Thermistor, Peltier module 을 활용해 Rising time과 Return Time 계산하기 / 파이썬 / 아두이노
sillon
sillon
꾸준해지려고 합니다..
    반응형
  • sillon
    sillon coding
    sillon
  • 전체
    오늘
    어제
    • menu (614)
      • notice (2)
      • python (68)
        • 자료구조 & 알고리즘 (23)
        • 라이브러리 (19)
        • 기초 (8)
        • 자동화 (14)
        • 보안 (1)
      • coding test - python (301)
        • Programmers (166)
        • 백준 (76)
        • Code Tree (22)
        • 기본기 문제 (37)
      • coding test - C++ (5)
        • Programmers (4)
        • 백준 (1)
        • 기본기문제 (0)
      • 공부정리 (5)
        • 신호처리 시스템 (0)
        • Deep learnig & Machine lear.. (41)
        • Data Science (18)
        • Computer Vision (17)
        • NLP (40)
        • Dacon (2)
        • 모두를 위한 딥러닝 (강의 정리) (4)
        • 모두의 딥러닝 (교재 정리) (9)
        • 통계 (2)
      • HCI (23)
        • Haptics (7)
        • Graphics (11)
        • Arduino (4)
      • Project (21)
        • Web Project (1)
        • App Project (1)
        • Paper Project (1)
        • 캡스톤디자인2 (17)
        • etc (1)
      • OS (10)
        • Ubuntu (9)
        • Rasberry pi (1)
      • App & Web (9)
        • Android (7)
        • javascript (2)
      • C++ (5)
        • 기초 (5)
      • Cloud & SERVER (8)
        • Git (2)
        • Docker (1)
        • DB (4)
      • Paper (7)
        • NLP Paper review (6)
      • 데이터 분석 (0)
        • GIS (0)
      • daily (2)
        • 대학원 준비 (0)
      • 영어공부 (6)
        • job interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    programmers
    백준
    소수
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sillon
[Arduino] Thermistor 센서 값 받아 아두이노 출력 하기
상단으로

티스토리툴바