728x90
온도센서란? 온드를 전압이나 저항 변화와 같은 전기신호로 변환한 것
온도에 따라 색이 변하는 장치 만들기
그 중 제일 긴 다리(왼쪽에서 2번째 다리)가 GND, 왼쪽부터 순서대로 R, G, B
온도 센서(LM35)는 다리가 3개
평평한면 기준 왼쪽부터 VCC, 출력, GND
아두이노 연결 방법
직접 연결한 모습
const int BLED=9; //9번 핀 파란색
const int GLED=10; //10번 핀 초록색
const int RLED=11; //11번 핀 빨간색
const int TEMP=0; //아날로그 입력 0번 핀 온도 센서
const int LOWER_BOUND=54; //온도 하한 값
const int UPPER_BOUND=60; //온도 상한 값
int val=0; //온도 센서의 현재값
void setup(){
Serial.begin(9600);
pinMode(BLED, OUTPUT);
pinMode(GLED, OUTPUT);
pinMode(RLED, OUTPUT);
}
void loop(){
val=analogRead(TEMP);
Serial.println(val);
delay(500);
if (val < LOWER_BOUND){ // 현재 값이 하한값 미만일 때
digitalWrite(RLED, LOW);
digitalWrite(GLED, LOW);
digitalWrite(BLED, HIGH); // LED를 파란색으로 켬
}
else if(val > UPPER_BOUND){ // 현재 값이 상한값 초과일 때
digitalWrite(RLED, HIGH); // LED를 빨간색으로 켬
digitalWrite(GLED, LOW);
digitalWrite(BLED, LOW);
}
else{
digitalWrite(RLED, LOW);
digitalWrite(GLED, HIGH); // LED를 초록색으로 켬
digitalWrite(BLED, LOW);
}
}
아두이노 코드
차가움을 표현할 때는 바람을 불어도 바뀌지 않아서 아이스팩을 이용했다.
실행 결과
온도 값이 얼마나 나올지 몰라서 시리얼 모니터를 사용했다.
손을 댈 때와 대지 않을 때 차이가 분명하다.
아래는 파이썬으로 실행하기
저번에 했던 포스팅을 참고하여 prototype을 실행해줌
업로드 완료 후 파이썬을 실행함
from Arduino import Arduino
import time
BLED = 9
GLED = 10
RLED = 11
TEMP = 0
LOWER_BOUND = 54
UPPER_BOUND = 60
val = 0
board = Arduino('115200')
board.pinMode(BLED, "OUTPUT")
board.pinMode(GLED, "OUTPUT")
board.pinMode(RLED, "OUTPUT")
while True :
val = board.analogRead(TEMP)
print(val)
time.sleep(0.05)
if val < LOWER_BOUND :
board.digitalWrite(RLED, "LOW")
board.digitalWrite(GLED, "LOW")
board.digitalWrite(BLED, "HIGH")
time.sleep(0.3)
elif val > UPPER_BOUND :
board.digitalWrite(RLED, "HIGH")
board.digitalWrite(GLED, "LOW")
board.digitalWrite(BLED, "LOW")
time.sleep(0.3)
else :
board.digitalWrite(RLED, "LOW")
board.digitalWrite(GLED, "HIGH")
board.digitalWrite(BLED, "LOW")
time.sleep(0.3)
파이썬 코드
실행 결과
손을 댈 때와 대지 않을 때 차이가 분명하다.
728x90
'개발 > Arduino' 카테고리의 다른 글
[Arduino] 조도 센서로 LED 제어하기 (+파이썬) (0) | 2021.09.18 |
---|---|
[Arduino] 시리얼 모니터로 가변저항 값 읽기 (+파이썬) (0) | 2021.09.16 |
[Arduino] 파이썬에서 아두이노 제어하기 (0) | 2021.09.08 |