#include <SoftwareSerial.h>
#include <Servo.h>
Servo servo;
SoftwareSerial bluetooth(3,2);
int servo_Pin=13;
int min_value = 544;
int max_value = 2400;
void setup() {
bluetooth.begin(9600);
Serial.begin(9600);
pinMode(13,OUTPUT);
servo.attach(servo_Pin, min_value, max_value);
servo.write(90); //기본 모터각도 90도
}
int incom;
int cdsVal;
void loop() {
int cdsVal = analogRead(A0);
if (bluetooth.available() > 0 ){
incom = bluetooth.read();
Serial.print(incom);
} //여기까지 아날로그신호랑 블루투스 신호받음
if(5 == incom){ //자동부분 - 신호 5를 받으면 자동으로 전환되야함
(cdsVal > 80);{
----------원래 이곳을 채워넣어야함----------------------------------------------------------------------------------------------
}
}
else{ //수동부분 어플에서 신호 (닫기)0 혹은 (열기)90 을 받으면 받은대로 각도조절
int servo_value = incom;
servo.write(servo_value);
}
delay(800);
}
간단하게 바꿔보라고 해서 일단 여기까지만 하려공..
사실 내가 써놓고도 잘 모르겠어..
작동은 하긴하는데
자동부분이 좀 이상하게 작동해
자고 일어나서 다시 생각해볼래 그냥 수동으로만 할까봐
원래 채워야할 부분에
if(5 == incom){
(cdsVal > 80);{
for(int i = 90; i >= 0; i--) {
servo.write( i );
delay(100);
}
} // 조도센서가 80이상 감지되면 각도를 내려서 닫게함
+
else(int k = 0; k <= 90; k++) {
servo.write( k );
delay(100);
}
} //반대로 조도 센서가 80이하면 각도를 올려야함
이렇게 넣을려고 헀는데
else문을 넣으면 밑에 else랑 겹쳐서 또 무한루프되더랑
클로로프렌
else if 쓰면 되는거 아님?
류게이
ㄱㄷㄷㄱㄷ 함써봄
류게이
#include
#include
Servo servo;
SoftwareSerial bluetooth(3,2);
int servo_Pin=13;
int min_value = 544;
int max_value = 2400;
void setup() {
bluetooth.begin(9600);
Serial.begin(9600);
pinMode(13,OUTPUT);
servo.attach(servo_Pin, min_value, max_value);
servo.write(90); //기본 모터각도 90도
}
int incom;
int cdsVal;
void loop() {
int cdsVal = analogRead(A0);
if (bluetooth.available() > 0 ){
incom = bluetooth.read();
Serial.print(incom);
}
if(5 == incom){
(cdsVal > 80);{
for(int i = 90; i >= 0; i--) {
servo.write( i );
delay(100);
}
}
}
else {
for(int k = 0; k 0){
int servo_value = Serial.println; /// 여기까지 쓰고있다가
servo.write(servo_value);
}
delay(800);
}
else if 부분에서 'else' without a previous 'if' 이런거 떠써 막히고..
그냥 if로 때워봤더니 이번엔
cannot resolve overloaded function 'println' based on conversion to type 'int' 으로 막힌다 ㅎ ㅏ..
그냥 포기해야겠다.. 수동으로만 쓸래
클로로프렌
아 else if 문에서 if가 없다는 건 괄호 못 친거임 { }이거 짝이 맞는지 보셈
클로로프렌
아... ㅋㅋㅋ int cdsVal 두번이나 선언 하셨네요
클로로프렌
뭐라 쓴건지 이해 안되는 부분이 있긴한데 자동제어에서
값이 튀면 예상되는 반복문, 구별문? 거기다가 Serial.println(변수);로 값봐요
센타까
자동으로 동작하다가 블투 명령이 들어오면 수동 모드로 전환 -> 블투 명령에 자동 모드로 전환하는게 없다면 복귀가 안되겠지?
셋업에
unsigned char mode = AUTO;
루프에
switch(mode)
{
default:
case AUTO:
// 자동 동작만 하다가 블루투스 명령이 들어오면 mode = MANUAL;
break;
case MANUAL:
// 블투 명령만 수행하다가 자동 모드로 변경 명령이 들어오면 mode = AUTO;
break;
}
망연자실
if(5 == incom){
(cdsVal > 80);{
for(int i = 90; i >= 0; i--) {
servo.write( i );
delay(100);
}
}
}
이거 뭔데?
C 몰라서 그러는데 이게 맞아?
if(cdsVal > 80) {
아냐?
클로로프렌
아 나도 저기 부분이 처음보는 거라 내가 모르는 건가 했는데 역시....
망연자실
if(5 == incom){
if(cdsVal > 80) {
for(int i = 90; i >= 0; i--) {
servo.write( i );
delay(100);
}
} else {
for(int k = 0; k 0){
int servo_value = Serial.println; /// 여기까지 쓰고있다가
servo.write(servo_value);
}
delay(800);
}
이게 니가 원하던 거 아냐?
진지하게 문법이 맞긴 한가 물어보는거야