2013-08-14 5 views
0

그래서 여기에서 무엇을해야할지 확신하지만 테스트에서 10 분 안에해야하므로 Arduino UNO를 설정하여 3-LED 시퀀스를 재생해야합니다 모든 LED가 1 초 동안 켜지고, 그 다음에 왼쪽으로 이어지는 세 번째 LED, 그리고 세 번째 LED가 차례로 켜지 며, 버튼 (하드웨어의 보드 위)을 누를 때까지 계속 반복됩니다. 그런 다음 순서가 돌아가며 세 번째 LED가 켜집니다.Arduino UNO Help Needed

void setup() 
{ 
    pinMode(ledPin, OUTPUT); 
} 

void loop() 
{ 
    digitalWrite(ledPin1, HIGH); 
    delay(1000);     
    digitalWrite(ledPin2, LOW);  
    delay(1000); 
    digitalWrite(ledPin3, LOW);  
    delay(1000); 

} 
if (<Button Pressed condition>) 
{ 
    digitalWrite(ledPin3, HIGH); 
    delay(1000);     
    digitalWrite(ledPin2, LOW);  
    delay(1000); 
    digitalWrite(ledPin1, LOW);  
    delay(1000); 
} 
else 
{ 
digitalWrite(ledPin1, HIGH); 
    delay(1000);     
    digitalWrite(ledPin2, LOW);  
    delay(1000); 
    digitalWrite(ledPin3, LOW);  
    delay(1000); 
} 

내가 아무것도 실종 : 지금 세 번째, 첫 번째는 이것은 내가 지금까지 만든 한 일 등, 마지막이다? 또한 Pull-Up 또는 Pull-Down 저항이 있으면 무엇을 변경해야합니까?

답변

0

I/O 핀의 "값"을 변경하는 풀업 저항 또는 풀다운 저항에 대하여. 당신이 풀업과 땅에 버튼을 가지고 있다면 포트는 버튼을 누르지 않았고 0을 눌렀을 때, 포지티브 버튼과 풀다운 저항이 있다면 그 포트의 역 (정상적으로 열린 푸시 버튼을 고려함).

ATMega328은 일부 포트에서 내부 풀업을 가지고 있으므로 pull-up 값이 낮지는 않지만 외부 포트는 필요하지 않으므로 외부 포트를 필요로하지 않는다는 점에 유의하십시오. EMI, RFI 등이 있으며 대부분의 버튼 와이어는 길다. 코드에 대한

, 나는 C 프로그래머 해요,하지만 당신은 같은 좀 판독이 필요합니다,

http://arduino.cc/en/Reference/PinMode http://arduino.cc/en/Reference/DigitalRead

버튼을 pinMode(pin, mode)를 사용하면 INPUT_PULLUPINPUT을 사용할 수를 를한다는 설정 setup()

핀을 "읽으려면"val = digitalRead(inPin);을 사용하거나 변수를 지정하지 않은 상태에서 if 문을 사용하십시오. 이 값은 풀업 및 풀다운에 관한 내용에 따라 결정됩니다.

led 시퀀스를 구현하는 방법은 몇 가지 방법으로 만들 수 있습니다. 사용자의 경우에는 loop() 내부에있는 것들을 만들어야합니다.

입력이 전체 시퀀스 만 검사되고 확인 될 때까지 버튼을 눌러야하기 때문에 타이밍에 약간의 문제가 있습니다. 나는 너를 위해 일하지 않을 것이란 점을 유감스럽게 생각하지만 너는 그 생각을했다고 생각한다.

0

먼저 테스트를 받아야 할 경우 특히 자신의 작업을 수행해야합니다!

그러나 자신의 대답을 개발하는 관점에서이 문제에 대해 조금씩 접근하십시오.

먼저 ONE Led에서 작동하도록 코드 버전을 가져온다. 켜져 있고 꺼져있는 곳에서 버튼을 누르면 바로 켜지거나 (켜져있는 경우) 즉시 켜진다 (꺼져있는 경우). ISR (Interrupt Service Routine)을 코딩해야하기 때문에이 버전도 쉽지 않습니다.

일단이 코드를 작성하고 버전 2로 이름을 지정하십시오. 버전 2를 사용하여 2 개의 Led에 대해 작업하십시오. 이렇게하려면 첫 번째 버전에서 얻은 지식을 모두 사용해야합니다. 버전 2에 문제가있는 경우 언제든지 V1로 돌아가서 작은 변화를 통해 작동하는 코드를 사용하여 문제를 테스트 할 수 있습니다!

마지막으로 동일한 라인을 따라 V3을 수행하십시오. 단 3 개의 LED 모두에 대해서만하십시오.

답변을 제공하는 사람이 이 아닌 경우 시험에 도움이됩니다. 행운을 빌어 요, 특정 질문이있는 StackOverflow로 돌아가십시오.