오늘은 온도 temperature sensor를 이용해서 온도 측정을 할것이다.
이게 temperature detecting sensor 인데, NPN transistor다
모델명은 BC547B이다.
우선적으로 셋팅을 하자, 5V를 꼽고 + 빵판 ground를 꼽고 -빵판
근데 실수가 난 5V를 안꼽고 gnd 에 두개나 꽂아서 불이 안들어왔지만 말이다..
그다음에 LED를 꼽아야한다, 3개를 꼽고, 220ohm 저항과 series로 꼽자
그다음에 이 온도측정기 transistor를 꽂아야하는데
Collector Base Emitter를 잘 구분해야한다.
Base 는 무조건 2번째고
Collector 랑 Emitter가 다르다.
Collector 는 판판한 면에서 왼쪽에서 첫번째라고 생각하면된다.
그래서 빵판에 꽂을때 판판한 면을 보이고 꽂아야한다.
이건 아날로그 시그널이니가 arduino uno에서 A0~A4 아무거나 꽂으면 된다.
그럼 이렇게 보인다.
아무것도 안하면 원래 3개의 LED가 반짝반짝 불이 나야한다.
사진이 없는 관계로 넘어가자
이제 코딩을 해야하는데
const int sensorPin = A0; void setup() { Serial.begin(9600); for(int pinNumber=2; pinNumber<5; pinNumber++){ pinMode(pinNumber, OUTPUT); digitalWrite(pinNumber, LOW); } } void loop() { int sensorVal = analogRead(sensorPin); Serial.print("Sensor Value: "); Serial.print(sensorVal); if(sensorVal>50){ digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); }else{ digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); } delay(5000); } |
먼저 이걸 차근차근씩 보자
const int sensorPin = A0;
는 뭐냐면, 이 온도센서의 A0쪽으로 정적 sensorPin이라는 변수에 넣었다.
이건 지역변수가 아니라서 어느 함수에서 쓸수있다.
void setup(){} 이란 함수에서는
for문을 써서 pinNumber 2~4 까지 셋팅을 우선적으로 해줬다.
처음에 아무런 온도를 감지 못하면 불이 안켜지게 했다.
serial 모니터에서 볼수있게 serial.begin(9600)으로 설정했다
9600 baud 이라는건데
960bytes per second 라는 이야기다
초당 960 바이트의 정보를 받을수 있다는 것이닫.
void loop() 이란 함수에서는
sensorVal 라는 정수형 변수에서 sensorPin 변수의 아날로그 상태를 읽어서
Serial.print(sensorVal);
sensorVal 를 프린트해서 보인다
대충 이렇게 보이면 성공한거다
delay(5000)을 넣어서 좀 천천히 나오게 하자.
지금은 대충 20도니까 20도에 sensorvalue가 55 라면
50위 아래로 표현할수있으니까, 코딩을 if() else 문으로 한다.
그러면 좀 따듯하게 손을 올려주면
쨔쟌 불이 다 들어온다
'아두이노' 카테고리의 다른 글
Project 5: Light Theremin 빛 테레민 (0) | 2020.02.05 |
---|---|
Project 4: 아두이노 네번째 프로젝트 (0) | 2020.02.05 |
Project 2 : 아두이노 두번째 프로젝트 (0) | 2020.01.15 |
Project 1 : 아두이노 첫번째 프로젝트 (0) | 2020.01.15 |