간단한 아두이노 코딩 질문드립니다.

코드를 이렇게 작성했는데요 컴파일했을때는 아무문제가 없는데 왠지 실수를 한것 같습니다. 빠진게 뭔지 모르겠습니다. 도움주시면 매우 감사하겠습니다.

int pins [] = {2, 3, 4, 5};
int state = 0;
void setup() {
   Serial.begin(9600);
   for(int i=0; i < 4; i++) {
      pinMode(pins[i], OUTPUT); digitalWrite(pins[i], LOW);
   }

}

void loop() {
   for(int i=0; i < 4; i++) {
      if(i = state) { Serial.print('O'); digitalWrite(pins[i], HIGH); }
      else if(i = state) { Serial.print('X'); digitalWrite(pins[i], LOW); }
   }   
   Serial.println();
   state = (state + 1) % 4;
   delay(1000);
}
1 Like

이 두 부분이 가장 의심됩니다.

2 Likes

(i == state)
이게 문제였나요?

1 Like

i = state 는 state의 값을 i에 집어넣으라는 거고
i == state 가 i와 state의 값이 같은지 비교해서 ture/false로 반환합니다

빠른 답변 정말 감사드립니다. ^^

1 Like