본문 바로가기

아두이노

아두이노 OLED 시계 멈춤 현상 -> 와치독 사용 아두이노 OLED 시계 (maxpulse.tistory.com/270)를 사용하다가 며칠 후에 보니 OLED가 멈춘 상태였다. (2-3일 연속 동작시 멈추는 듯) 전원을 분리했다가 다시 연결하니 RTC에 의해서 정확한 시간으로 동작했다. 아두이노가 다운되었거나 OLED가 다운되었거나 두가지 경우가 가능한데, 우선은 아두이노의 와치독 기능도 시험해볼겸, 와치독(Watchdog) 기능을 추가하였다. 와치독이란, 집을 지키는 개란 뜻처럼 집(아두이노 프로그램) 을 감시하다가 문제가 생기면(무한 루프) 짖어서 알려주는 것(리셋)을 말한다. 실제 동작은.. 와치독 타이머가 다른 타이머와 별도로 동작하면서 시간을 측정하다가 정해진 시간이 되면 아두이노를 리셋 시켜버린다. 아두이노가 리셋되지 않으려면 loop() 함.. 더보기
아두이노, OLED, RTC (DS3231) 시계 만들기 (2) 지난 번 소스에서 글꼴을 좀 수정하고 시간을 수정할 수 있는 코드를 추가함 소스 코드에 컴파일할때 컴퓨터의 시간을 전송하게 해주는 코드가 있으나 컴파일 후 전송까지의 시간 차이 때문인지 시간이 맞지 않아 시간 설정하는 코드를 추가함 시리얼 모니터에서 TYYMMDDHHMMSS 형식으로 전송하면 시간 셋팅이 되게 된다. (T문자를 패킷의 시작 문자로 사용하는 구조) rtc 설정에는 2020년 형식으로 써야하지만 전송할때는 8비트 변수를 사용하므로 2000부분 없이 전송한다 2020년 9월 15일 17시 35분 56초 -> T200915173556 * 본인이 원하는 형식으로 시간이 전달되면 rtc.adjust 함수에 필요한 인자를 만들어서 전달하면 됨 소스코드 참조 추가로 3d 프린터로 케이스 제작 1.3 인.. 더보기
아두이노 캐릭터 LCD(CLCD)에 큰 글자 쓰기 아두이노 캐릭터 LCD(CLCD) 16*2 에 큰 글자 쓰기. 일반적인 캐릭터 LCD는 이미 정해진 문자만 표현할수 있는데, 사용자 정의 문자를 8글자 정의할수 있다. 그 문자들을 조합해서 캐릭터 LCD에 꽉 차는 큰 글씨를 출력할 수 있게 된다. 아두이노 우노 + CLCD 쉴드 (알리익스프레스 구입) 인스트럭터블 참고~ http://www.instructables.com/id/Custom-Large-Font-For-16x2-LCDs/ 원래 글에서의 소스는 좀 정리가 안되어있는데 댓글 중에 누군가 더 잘 편집한 소스임 함수 설명 - 참고만 int writeBigChar(char ch, int x, int y) : 한글자씩 출력하면서 출력한 위치를 반환 void writeBigString(char *str.. 더보기