아두이노 슬립모드 깨우기

아두이노 슬립모드 깨우기

작성일 2022.05.26댓글 1건
    게시물 수정 , 삭제는 로그인 필요

#include <avr/sleep.h> // sleep 모드 라이브러리
#define interruptPin 2 // sleep 모드 탈출을 위한 인터럽트 핀
#include <Stepper.h>

int stepsPerRev = 2048; // 한바퀴(360): 2048 , 반 바퀴(180) : 1024
Stepper stepper (stepsPerRev, 11,9,10,8); // ( IN4,IN2,IN3,IN1)



void setup() {
Serial.begin(9600);
stepper.setSpeed(10); // 스텝모터의 스피드 설정
Serial.begin(9600);
pinMode(LED_BUILTIN,OUTPUT); // sleep 모드 확인용 led
pinMode(interruptPin,INPUT_PULLUP); // 내장 풀업을 사용하는 인터럽트 핀
digitalWrite(LED_BUILTIN,HIGH); // LED on
}

void loop() {
stepper.step(stepsPerRev/360*180); // 한 바퀴 회전 명령
delay(5000);
delay(5000); // led On상태에서 5초 지연
Going_To_Sleep(); // sleep 함수 call
stepper.step(-stepsPerRev/360*180); // 반대 방향으로 한 바퀴 회전
delay(5000);

}

void Going_To_Sleep(){
sleep_enable(); // Enabling sleep mode
attachInterrupt(0, wakeUp, FALLING); // 인터럽트 0 (2번 핀) 을 falling으로, wake 함수를 콜 설정
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep모드 설정
digitalWrite(LED_BUILTIN,LOW); // led Off
delay(100); // led off를 위한 지연 시간
Serial.println("Entering Sleep Mode!");
delay(100);
sleep_cpu(); // sleep mode 진입
Serial.println("just woke up!"); // 인터럽트에 의해 wake up 되면 출력
delay(100);
digitalWrite(LED_BUILTIN,HIGH); // led on
}

void wakeUp(){
Serial.println("Interrrupt Fired"); // 인터럽트 발생 문구 출력
sleep_disable(); // sleep mode 중지
// detachInterrupt(0); // 인터럽트 중지
}
여기서 스위치 말고rtc3231을써서 wake up하고 싶은데 방법을 알수있을까요?


#아두이노 슬립모드 #아두이노 슬립모드 타이머 #아두이노 esp32 슬립모드

profile_image 익명 작성일 -

아두이노 슬립모드 깨우기

#include <avr/sleep.h> // sleep 모드 라이브러리 #define interruptPin 2 // sleep 모드 탈출을 위한... // sleep 모드 확인용 led pinMode(interruptPin,INPUT...