서미스터 온도
Coddy Arduino 여정의 디스플레이와 센서 섹션에 포함된 레슨. 24개 중 20번째.
서미스터는 온도에 따라 저항값이 변하는 저항기입니다. 이 모듈(NTC 유형)에서는 따뜻해질수록 OUT 핀의 전압이 낮아집니다. analogRead()는 섭씨 25도에서 약 512를 반환합니다.
측정값은 직선적으로 감소하지 않으므로 map()은 사용할 수 없습니다. 베타 방정식을 사용하면 이를 온도 단위로 변환할 수 있습니다. BETA는 부품 데이터 시트에서 확인할 수 있으며(여기서는 3950), log()는 보드에 내장된 수학 함수입니다. 수학을 이해하려고 애쓰지 않아도 됩니다. 이 줄을 그대로 복사하세요.
const float BETA = 3950;
float celsius = 1 / (log(1 / (1023.0 / reading - 1)) / BETA + 1.0 / 298.15) - 273.15;1023.0의 .0을 그대로 유지하세요. 정수 두 개로 1023 / reading을 계산하면 소수 부분이 버려져 결과가 몇 도나 틀리게 나옵니다.
챌린지
중급서미스터 모듈은 A0에 연결되어 있습니다. 온도를 출력하세요:
- 베타 방정식을 사용해 측정값을 섭씨 온도로 변환하세요
Serial.println()으로 초당 두 번 출력하세요
Run을 누르고 보드의 온도를 변경한 다음 Check를 누르세요.
직접 해보기
const float BETA = 3950; // 서미스터의 베타 값
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(A0);
// reading을 섭씨 온도로 변환하고 출력합니다
delay(500);
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
디스플레이와 센서의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드