BASIC4MCU | 질문게시판 | 코드 해석 도와주세요
페이지 정보
작성자 아라 작성일2019-11-25 20:24 조회3,522회 댓글0건본문
#include<Servo.h>
#include<SoftwareSerial.h>
SoftwareSerial btSerial(12,13);
Servo myservo;
float temperature;
int Rain;
int Sensor_val;
int data;
int temp=1;
void setup()
{
myservo.attach(11);
Serial.begin(9600);
btSerial.begin(9600);
delay(100);
}
void loop()
{
///////////////////////////////////A2포트에는 온도센서 연결///////////
int reading = analogRead(A2);
delay(10);
reading = analogRead(A2);
delay(10);
temperature = 5.0*reading/1023.0*100 ;
delay(1000);
////////////////////0포트에는 빗물센서 연결////////////////////////
btSerial.println(analogRead(0));
delay(1000);
if(temp == 1)////////////////////////////////////자동제어모드
{
if(analogRead(0)<300)
{
myservo.write(150);
btSerial.println(" rain ");delay(1000);
}
else if(analogRead(0)<500)////////////////비가 올 때
{
myservo.write(150);
btSerial.println(" rain ");delay(1000);
}
else /////////////////비가 오지 않을 때
{
if(temperature > 26)
{
myservo.write(90);
}
else if(temperature < 21)
{
myservo.write(150);
}
btSerial.print(" sunny ");delay(1000);
}
}
else if(temp ==2)//////////////////////////////////////////////////2 열겠다
{
if(analogRead(0)<300)
{
myservo.write(150);
btSerial.print(" rain! ");delay(1000);
}
else if(analogRead(0)<500)////////////////비가 올때
{
myservo.write(150);
btSerial.print(" rain! ");
delay(1000);
}
else
{
myservo.write(90);btSerial.print(" open ");delay(1000);
}
}
else if(temp ==3)////////////////////////////////////////3닫겠다
{
myservo.write(150);
btSerial.print("closed ");
delay(1000);
}
btSerial.println(temperature); //btSerial.println("℃");
delay(1000);
if(btSerial.available())
{
data = btSerial.read();
Serial.println(data);
if(data == 1)//자동제어모드
temp = 1;
else if(data == 2)//open
temp = 2;
else if(data == 3)//close
temp = 3;
}
}
빗물감지 자동창문 드디어 코드는 도움을 통해 완성 했습니다.
센서들 부착해서 실행도 잘됩니다 다만 시그널 받는 온도센서가 오류가 좀 있긴하지만
이제 코드를 해석해서 공부하려니 이게 그건가 아닌가 헷갈리는게 많네요
해석좀 도와주세요
댓글 0
조회수 3,522등록된 댓글이 없습니다.