#include <SoftwareSerial.h>
#include<Servo.h>
Servo myservo;//서보를 제어할 서보 오브젝트를 만듭니다.
SoftwareSerial btSerial(2,3); //RX,TX
int pos=0; //서보 위치를 저장할 변수를 선업합니다.
int TEMP=A5,FLEX=A4;//센서들의 포트변수를 선언합니다.
#define LED 13
void setup() {
myservo.attach(10);//핀10의 서보를 서보 오브젝트에 연결합니다.
pinMode(LED, OUTPUT);
btSerial.begin(9600);
Serial.begin(9600);
}
void loop() {
int reading1=analogRead(TEMP);//온도센서로 부터 자료값을 받음
float voltage=reading1*5.0/1024.0;//온도센서 볼트값
float celsiustemp=(voltage-0.5)*100;//섭씨값
float fahrenheittemp=celsiustemp*9.0/5.0+32.0;//화씨값
int flexVal=analogRead(FLEX);//플렉스센서로 부터 자료값을 받음
if(fahrenheittemp>=50){ //온도센서
digitalWrite(11, HIGH);
btSerial.println(f);
}
else{
digitalWrite(11, LOW);
btSerial.println(g);
}
if(flexVal>=200){ //플렉스 센서
digitalWrite(11, HIGH);
Serial.println(h);
}
else{
digitalWrite(11, LOW);
Serial.println(i);
}
if(btSerial.available()){
char e = btSerial.read();//LED
switch(e){
case 'a'://어플 ON버튼,LED가 켜지고 포트가나온다.
digitalWrite(LED, HIGH);
for(pos=0;pos<180;pos+=1)//0도에서 180도로 이동합니다.
{
myservo.write(pos); //pos변수의 위치로 서보를 이동시킵니다.
delay(15);
}
break;
case 'b'://어플 OFF버튼,LED가 꺼지고 포트가 들어간다.
digitalWrite(LED, LOW);
for(pos=180;pos>=1;pos-=1)//180도에서 0도로 이동합니다.
{
myservo.write(pos); //pos변수의 위치로 서보를 이동시킵니다.
delay(15);
}
break;
case 'c':
digitalWrite(11,HIGH);
break;
case 'd':
digitalWrite(11,LOW);
break;
}
}
}
|