BASIC4MCU | 질문게시판 | 아두이노 리셋버튼 설정 가능한가요?
페이지 정보
작성자 곰도리 작성일2021-10-13 10:22 조회8,758회 댓글4건본문
딜레이 값을 크게 주어서 딜레이가 걸려있는 상태에서 리셋버튼을 통해 다시 코드가 시작하도록 제작할려고 합니다.
리셋버튼모듈이 따로 있는지 혹은 단순히 버튼모듈로 하면 되는지를 알고 싶습니다.
댓글 4
조회수 8,758master님의 댓글
master 작성일
아두이노 리셋 버튼은 어떤 코드가 실행중이든 상관없이 시스템을 부팅시키는 하드웨어 리셋 버튼입니다.
과거 데스크탑의 리셋버튼과 동일합니다.(실행중인 어떤 프로그램이든 무시하고 다시 시작하므로 하드디스크를 사용중인 상태라면 하드디스크에 무리를 주기도 하죠)
곰도리님의 댓글
곰도리
글쿤요. 제가 생각한 리셋이 아두이노에서는 조금 다른가보네요. 감사합니다.
master님의 댓글
master 작성일
보드의 리셋버튼을 사용하지 않고
아두이노 핀에 버튼을 달아서 딜레이를 빠져나오드록 하고 싶다면
딜레이를 for()문 형식으로 변경하고 루프안에서 스위치를 체크해서 빠져나오도록 만드세요
예를들면
delay(60000); // 60초 딜레이
위 코드를 for()문으로 변경하면
for(int i=0;i<60000;i++){ // 60초 딜레이
delay(1);
if(digitalRead(2))return; // 스위치를 누르면 loop()함수를 다시 실행
}
실제로 1ms마다 스위치를 체크 할 필요는 없고 100ms정도마다 체크하면 적당합니다.
for(int i=0;i<600;i++){ // 60초 딜레이
delay(100);
if(digitalRead(2))return; // 스위치를 누르면 loop()함수를 다시 실행
}
곰도리님의 댓글
곰도리
정말 감사합니다. 딱 제가 원하는 대답을 답까지 알려주셔서 감사합니다.