MCU/IoT실험 기말 프로젝트
ATmega128 캐롤송 알람시계
ATmega128 펌웨어로 알람시계를 구현하고, 스위치 채터링을 소프트웨어 디바운싱으로 해결
- 타이머 로직에 스피커 주파수 기반 악보 로직을 결합해 알람시계 구현
- 여분 부품과 시간이 없는 상황에서 하드웨어 교체 대신 0.5초 제한 조건으로 채터링 해결
배경
AVR MCU인 ATmega128의 펌웨어를 프로그래밍해 원하는 장치를 만드는 자유 주제 과제였습니다.
수행
- 학기 중 배운 타이머 로직에 스피커 주파수 조정 기반 악보 로직을 결합해 캐롤송 알람시계 개발
- 초 단위 시간 구현을 위해 클럭 주파수 프리스케일링과 타이머 오버플로우 값 조정
- 인터럽트 스위치 모듈을 조작 리모컨으로 설정
통합 테스트에서 스위치 채터링으로 시간 설정 오류가 발생했습니다. 스위치 내구성 저하가 유력한 원인이었지만 여분 모듈이 없고 최종 테스트까지 시간이 부족했습니다.
성과
하드웨어 교체 대신 소프트웨어로 대응해, 기존 스위치 토글 로직에 0.5초 제한 조건을 추가해 채터링을 해결했습니다.
문제가 발생한 부품에만 시선을 고정하면 해결 방법도 제한된다는 것, 입력을 처리하는 소프트웨어까지 범위를 넓히면 실행 가능한 대안이 나온다는 것을 배웠습니다.