지금 제가 하려는게
조도센서를 여러개 이용해서 각 각 서보모터와 led를 킬생각입니다.
조도센서 각각 빛이 적으면 led 켜지고 서보모터회전
빛이 밝으면 led 꺼지고 서보모터 반대로 회전
그래서 조도센서로 감지하고 서보모터를 돌리는 형식을 취하려 했는데
코딩이 이상한지 잘안되네요 ㅠㅠㅠ
능력자 분들 저좀도와주세요 ㅇㅅㅇ
이밑에 와같은 모습입니다.
코딩은
#include <Servo.h>
int cds0 = A0;
int cds1 = A1;
int cds2 = A2;
int motor0 = 3; // 서보 모터의 핀 번호
int motor1 = 5;
int motor2 = 6;
int LED0 = A3; // LED의 핀 번호
int LED1 = A4;
int LED2 = A5;
Servo servo;
Servo servo1;
Servo servo2;
void setup(){
Serial.begin(9600); // 시리얼 통신, 속도는 9600
servo.attach(motor0); // 모터 시작
servo1.attach(motor1); // 모터 시작
servo2.attach(motor2); // 모터 시작
pinMode(motor0,OUTPUT); // 모터 출력
pinMode(motor1,OUTPUT); // 모터 출력
pinMode(motor2,OUTPUT); // 모터 출력
}
void loop(){
int sensor0 = analogRead(cds0); // 조도센서의 데이터 받아오기
Serial.print("cds0 = ");
Serial.println(sensor0);
if (sensor0 > 450){ // 주위가 어둡다면
digitalWrite(LED0, HIGH); // led 켜주기
for(int a = 0; a < 180; a++){ // 서보 모터의 각도를 180도로
servo.write(a);
delay(10);
}
while(sensor0 >=450 && sensor0 <= 1000){ // 조도센서의 빛 밝기에 변함이 없을 때
delay(100);
sensor0 = analogRead(A1); // 조도센서의 값 재입력
}
}else { // 주위가 밝다면
digitalWrite(LED0, LOW); // led꺼주기
for(int b = 180; b> 0; b--){ // 서보모터의 각도를 0도로
servo.write(b);
delay(10);
}
while(sensor0 >= 0 && sensor0 < 450){ // 조도센서의 빛 밝기에 변함이 없을 때
delay(100);
sensor0 = analogRead(A1); // 조도센서의 값 재입력
}
}
}
void loop2(){
int sensor1 = analogRead(cds1); // 조도센서의 데이터 받아오기
Serial.print("cds1 = ");
Serial.println(sensor1);
if (sensor1 > 450){ // 주위가 어둡다면
digitalWrite(LED1, HIGH); // led 켜주기
for(int c = 0; c < 180; c++){ // 서보 모터의 각도를 180도로
servo1.write(c);
delay(10);
}
while(sensor1 >=450 && sensor1 <= 1000){ // 조도센서의 빛 밝기에 변함이 없을 때
delay(100);
sensor1 = analogRead(A2); // 조도센서의 값 재입력
}
}else { // 주위가 밝다면
digitalWrite(LED1, LOW); // led꺼주기
for(int d = 180; d> 0; d--){ // 서보모터의 각도를 0도로
servo1.write(d);
delay(10);
}
while(sensor1 >= 0 && sensor1 < 450){ // 조도센서의 빛 밝기에 변함이 없을 때
delay(100);
sensor1 = analogRead(A2); // 조도센서의 값 재입력
}
}
}
void loop3(){
int sensor2 = analogRead(cds2); // 조도센서의 데이터 받아오기
Serial.print("cds2 = ");
Serial.println(sensor2);
if (sensor2 > 450){ // 주위가 어둡다면
digitalWrite(LED2, HIGH); // led 켜주기
for(int e = 0; e < 180; e++){ // 서보 모터의 각도를 180도로
servo2.write(e);
delay(10);
}
while(sensor2 >=450 && sensor2 <= 1000){ // 조도센서의 빛 밝기에 변함이 없을 때
delay(100);
sensor2 = analogRead(A3); // 조도센서의 값 재입력
}
}else { // 주위가 밝다면
digitalWrite(LED2, LOW); // led꺼주기
for(int g = 180; g> 0; g--){ // 서보모터의 각도를 0도로
servo2.write(g);
delay(10);
}
while(sensor2 >= 0 && sensor2 < 450){ // 조도센서의 빛 밝기에 변함이 없을 때
delay(100);
sensor2 = analogRead(A3); // 조도센서의 값 재입력
}
}
}
입니다
제가 코딩이 이번이 처음이라....
1개짜리로 할때는 됬는데 여러개를 사용하려고 하니 코딩이 되지않아요 ㅠㅠ
능력자분들 도와주세요 ㅇㅅㅇ
|