2014-11-16 4 views
0

이것은 첫 번째 게시물로서 stackoverflow와 첫 번째 arduino 프로젝트 중 하나입니다. 당신의 도움을 주셔서 감사합니다.if 문을 기반으로 arduino 출력이 번갈아 변합니다.

LED 표시등을 기준으로 배터리를 교체하는 릴레이 컨트롤러를 구축 중입니다. 가까이 가고 있지만 제어 논리에 문제가 있습니다.

LED를 읽고 배터리를 교체해야하는지 결정할 수 있습니다 (내 부울 변수는 스위치라고 말하거나하지 않습니다). for 문이 다음 출력으로 진행하는 가장 좋은 방법이기도합니다. 나는이 예제를 찾았지만 그것은 아주 적합하지 않습니다

http://arduino.cc/en/Tutorial/ForLoop은 이러한 상태를 찾고 : https://www.dropbox.com/s/ue192ebrhng3xcw/relaystates.jpg?dl=0

이 내 첫 번째 시도이다

for (int thisPin = 9; relayswitch = true; thisPin++){ // turn the last pin off: digitalWrite(thisPin-1, LOW);
delay(2);
// turn the next pin on: digitalWrite(thisPin, HIGH);
} //resets relay switch indicator boolean relayswitch = false;

+0

몇 가지 충전 회로가 있습니까? 전환하기 위해 충족해야 할 조건은 무엇입니까? – djUniversal

+0

배터리 출력이 교대로 충전되는 하나의 충전 회로. LED 표시등이 60 초 동안 깜박이지 않으면 릴레이가 전환됩니다. 감사! Josh –

답변

0

질문은 무엇입니까?

하나의 대답은 : 당신은 무한 루프를 구현했습니다.

for (...; relayswitch = true; ...){ 
    // code that will not alter relayswitch 
} 

할당 연산자 "="를 사용하여 조건을 확인하지 마십시오. 조건은 "=="로 점검됩니다. 따라서 for 루프의 "while 조건"은 루프의 본문에 상관없이 true입니다. 그러나 "=="로 검사하더라도 루프 내에서이 변수를 변경하지 않아도 상관 없습니다.

+0

고마워요! 내가 너의 도움없이 내 실수를 알아 냈을 지 확신하지 못한다. –

관련 문제