안녕하세요! Time 에 대하여 질문드려요!
특정 시간이 되면 스텝모터의 동작이 멈추게 하고싶습니다.
void setup()
{
pinMode(in1Pin,OUTPUT);
pinMode(in2Pin,OUTPUT);
pinMode(in3Pin,OUTPUT);
pinMode(in4Pin,OUTPUT);
motor.setSpeed(14);
Serial.begin(9600);
byte hiByte=EEPROM.read(hiaddr);
byte loByte=EEPROM.read(loaddr);
Rangle=word(hiByte, loByte);
motor.step(-Rangle*(STEPS/Fangle));
Serial.print("Previous angle: ");
Serial.println(-Rangle);
Serial.println("");
delay(5000);
strip.begin(); // 네오픽셀
setTime(19,59,55,02,12,16); //사용자 시간 지정
}
void loop() {
{
digitalClockDisplay();
val=analogRead(cds);
angle=map(val,0,1023,0,360);
Serial.print("cds value= ");
Serial.print(val);
Serial.print(" angle= ");
Serial.println(angle);
if((val>a) && (val<b) && (hour()<19)) { //a보다 크고 b보다 작고 시간이 19시 이전일 때 Loop를 돌려라
if((val2>a) && (val2<b) && (hour()<19)) {
motor.step(0);
Serial.println("stop!");
angle=Nangle;
Serial.print("angle : ");
Serial.println(angle);
Serial.print("Nangle : ");
Serial.println(Nangle);
Serial.println(" ");
}
else{
motor.step((angle-Nangle)*(STEPS/Fangle));
Serial.print("angle : ");
Serial.println(angle);
Serial.print("Nangle : ");
Serial.println(Nangle);
Serial.print("Shade moves! ");
Serial.print(angle-Nangle);
Serial.println(" moves");
Serial.println(" ");
}
}
이런식으로 코드를 구성하였지만 19시 이후의 시간에도 똑같이 Loop가 돌았습니다.
어떻게 해결할 수 있을 까요?
|