[ Original Message ]
수위센서 코드:
int water_pin = A0; //수분수위센서 A0에 연결
int LED1 = 2; // LED를 각각 디지털핀 2,3,4에 연결
int LED2 = 3;
int LED3 = 4;
void setup() {
Serial.begin(9600); // Serial monitor 구동 전원입력
pinMode( A0, INPUT); // A0핀을 입력으로 설정
pinMode( 2, OUTPUT); // 디지털핀 2,3,4를 출력으로 설정
pinMode( 3, OUTPUT);
pinMode( 4, OUTPUT);
}
void loop(){
Serial.println(analogRead(A0)); // Serial monitor로 A0값을 보여줌
delay(100); // 입력값을 보여주는데 0.1초 설정
if(analogRead(A0) < 400){ // A0가 400이하면 모든 LED OFF
digitalWrite( 2, LOW);
digitalWrite( 3, LOW);
digitalWrite( 4, LOW);
delay(100);
}
else if( 400 < analogRead(A0) && analogRead(A0) < 500 ){
digitalWrite( 2, HIGH);
digitalWrite( 3, LOW);
digitalWrite( 4, LOW); // 400<A0<500이면 빨간 LED ON
delay(100);
}
else if( 500 < analogRead(A0) && analogRead(A0) < 600){
digitalWrite( 2, HIGH);
digitalWrite( 3, HIGH);
digitalWrite( 4, LOW); // 500<A0<600이면 빨,노 LED ON
delay(100);
}
else {
digitalWrite( 2, HIGH);
digitalWrite( 3, HIGH);
digitalWrite( 4, HIGH);
delay(100); // 이외 모든 경우 빨,노,파 LED ON
}
}
---------------------------------------------------------------------------------
온도센서 코드:
#include <OneWire.h>
int DS18S20_Pin = 2; //온도센서를 2번 핀으로 연결
int red = 11; //빨간색led를 11번 핀으로 연결
int blue = 10; //파란색led를 10번 핀으로 연결
OneWire ds(DS18S20_Pin); //2번 핀과 연결되 OneWire 객체 생성
void setup(){
Serial.begin(9600); // 시리얼 통신, 속도는 9600
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop(){
float temperature = getTemp(); //온도 측정 후 변수에 저장
Serial.println(temperature);
if(temperature < 90){ //온도가 90도 이하일 때, 파란색 LED 점등
digitalWrite(red, LOW);
digitalWrite(blue, HIGH);
delay(100);
}
else{ //온도가 90도 이상일 때, 빨간색 LED 점등
digitalWrite(red, HIGH);
digitalWrite(blue, LOW);
delay(100);
}
}
float getTemp(){ //온도 측정 후 반환하는 함수
byte data[12];
byte addr[8];
if ( !ds.search(addr)) {
ds.reset_search();
return -1000;
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -1000;
}
if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1);
byte present = ds.reset();
ds.select(addr);
ds.write(0xBE);
for (int i = 0; i < 9; i++) {
data[i] = ds.read();
}
ds.reset_search();
byte MSB = data[1];
byte LSB = data[0];
float tempRead = ((MSB << 8) | LSB);
float TemperatureSum = tempRead / 16;
return TemperatureSum;
}
---------------------------------------------------------------
이 두코드를 합치고싶은데 어떻게 해야하나요??
댓글목록
등록된 댓글이 없습니다.