안녕하세요 에듀이노입니다.
우선 코드를 합칠 때, 어떤 조건값으로 어떤 센서를 동시에 제어할지 정해야 하며, 단순 코드를 합친다는 내용으로는
따로 가이드라인을 제공해드리 못하는점 참고바랍니다. 변수, setup()을 우선적으로 핀번호가 겹치지 않게 합친 다음,
loop()에는 원하는 기능에 따라 소스코드를 구현해주시기 바랍니다.
감사합니다.
[ 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;
}
---------------------------------------------------------------
이 두코드를 합치고싶은데 어떻게 해야하나요??
댓글목록
등록된 댓글이 없습니다.