반응형

안녕하세요!
녹칸다입니다!

녹칸다의 산업용 아두이노(fa-duino)의 빠른 내용 전달을 위해서 코드와 작동결과만을 별도로 정리해보도록 하겠습니다~!
녹칸다의 산업용 아두이노 4편에서 1번예제를 정리해보도록 하겠습니다~!

 

이번 에제는 산업용 아두이노(faduino)의 38번핀에 연결된 파일럿램프 1개를 millis()함수를 사용해서 켜짐과 켜짐을 1초간격으로 반복하도록 하는 목표가 있습니다~~~~!

 

millis()함수에 대한 기본적인 설명은 아래와 같습니다~!

1.millis()함수는 아두이노의 시계같은 것이다!
2.아두이노가 켜지면 0이고 켜져있는 동안 지속적으로 값이 커진다!
3.millis함수가 호출되면 호출된 당시의 시간값이 밀리초 단위로 반환된다!
4.절대적인 시간은 알수없지만 어떤 지점부터 다른 지점사이의 상대적인 시간은 계산할 수 있다!
5.millis함수의 반환값을 받는 자료형은 unsigned long이다!

예제에 사용한 소스코드는 아래와 같습니다~!

//산업용 아두이노에 task가 1개이다!
//task1 38번이 1초마다 on/off
//램프가 켜진다...1초쉰다 ...램프가꺼진다 .... 1초쉰다
//task마다 타이머가 하나씩 필요하다고 생각하면 OK
unsigned long t1 = 0; //타이머1
int step1 = 0; //1==램프가 켜진다, 2==램프가 꺼진다

void setup() {
  Serial.begin(9600);
  pinMode(38,OUTPUT); //빨간 램프
}
void loop() {
  //t1은 산업용 아두이노가 켜졌을때의 시간이다!
  //millis()는 loop에 의해서 계속 반복적으로 호출되므로 흘러가는 시간이다!
  if(millis() - t1 > 1000 && step1 == 0){
    //산업용 아두이노가 켜진지 1초가 지났다!
    //어떤 작업~
    t1 = millis();
    digitalWrite(38,HIGH);
    step1++;
  }else if(millis() - t1 > 1000 && step1 == 1){
    t1 = millis();
    digitalWrite(38,LOW);
    step1 = 0;
  }
}

예제의 실행결과는 아래와 같습니다~!

https://youtu.be/6RjVbPI6uG8?t=2673 

 

반응형
Posted by 덕력킹
,