Day1 05_millis(라이브러리 호출)

2024. 1. 17. 18:17arduino

  • ino 파일(millis를 사용하여 LED 점등)
#include "LedControl.h"

// 예제 사용법
const int customLedPin1 = 2;
const int customLedPin2 = 3;  // 원하는 핀 번호로 변경
const int customLedPin3 = 4;  // 원하는 핀 번호로 변경

long customInterval1 = 1000;  // 원하는 간격으로 변경
long customInterval2 = 2000;  // 원하는 간격으로 변경
long customInterval3 = 3000;  // 원하는 간격으로 변경

LedControl myLed1(customLedPin1, customInterval1);
LedControl myLed2(customLedPin2, customInterval2);
LedControl myLed3(customLedPin3, customInterval3);

void setup() {
  // 초기 설정 코드
}

void loop() {
  // LedControl 클래스의 update 메서드를 주기적으로 호출
  myLed1.update();
  myLed2.update();
  myLed3.update();
  // 다른 작업 수행 가능

 
}
  • cpp
#include <SoftwareSerial.h>

#include "LedControl.h"

LedControl::LedControl(int pin, long updateInterval) {
  ledPin = pin;
  interval = updateInterval;
  ledState = LOW;
  prevMillis = 0;
  pinMode(ledPin, OUTPUT);
}

void LedControl::update() {
  unsigned long currMillis = millis();
  if (currMillis - prevMillis > interval) {
    prevMillis = currMillis;
    ledState = !ledState;
  }
  digitalWrite(ledPin, ledState);
}

 

  • 헤더파일
#ifndef LedControl_h
#define LedControl_h

#include "Arduino.h"

class LedControl {
  private:
    int ledPin;
    int ledState;
    long interval;
    unsigned long prevMillis;

  public:
    LedControl(int pin, long updateInterval);
    void update();
};

#endif

'arduino' 카테고리의 다른 글

Day1 07_analogWrite  (0) 2024.01.17
Day1 06_LED8  (0) 2024.01.17
Day1 04_LED_mission  (0) 2024.01.17
Day 1 03 - for LED  (0) 2024.01.15
Day 1 02 - serial  (0) 2024.01.15