아두이노 나노와 RDA8057M으로 소형 FM 라디오 만들기
부품 및 소모품
| 아두이노 나노 R3 |
1개 |
| ElectroPeak 0.96인치 OLED 64x128 디스플레이 모듈 |
1개 |
| RDA 마이크로일렉트로닉스 RDA8057M FM 라디오 모듈 |
1개 |
필요한 도구 및 장비
프로젝트 소개
최근 RDA5807 모듈을 알게 되었는데, 이는 매우 작은 패키지의 FM 라디오 튜너입니다. 가격이 저렴하고 I2C 프로토콜을 사용해 통신하므로 단 두 개의 선만으로 IC와 통신할 수 있습니다. 배선도 간단하죠!
어머니께서 요리하면서 매일 라디오를 듣곤 하셨는데, 라디오가 고장 나셨습니다. 제가 직접 만든 라디오로 깜짝 선물을 드리고 싶었습니다.
이 튜토리얼에서는 RDA5807 IC를 아두이노와 연결하는 방법을 보여드리겠습니다. 보기 좋게 케이스를 설계해 3D 프린팅했습니다. 3D 설계는 초보라 단순한 디자인입니다.
시작해 볼까요!
준비물
- 아두이노 나노 1개
- RDA5807M FM 라디오 튜너 IC 1개
- I2C OLED 디스플레이 1개
- 3W 스피커 1개
- PAM8403 오디오 앰프 모듈 1개
- 6x6 택타일 스위치 2개
- 100k 포텐셔미터 1개
- DC 파워 소켓 1개
- 선택 사항: 3D 프린터
1단계: 계획
모든 것을 단순하고 깔끔하게 유지할 계획입니다. 아두이노 나노를 두뇌로 사용합니다. 모듈과의 통신은 라이브러리가 이미 처리해 주므로 라디오 라이브러리를 꼭 설치하세요. 다양한 기능을 활용할 수 있습니다. 참고: 이 라이브러리는 SI4703, SI4705, TEA5767에도 작동합니다.
전면의 버튼 하나는 '주파수 선택' 모드로 진입하고, 다른 버튼은 주파수를 선택하는 데 사용합니다. 포텐셔미터로는 코드에 설정된 프리셋 주파수(거주 지역에 맞게 설정)를 스크롤합니다.
OLED 디스플레이는 현재 수신 중인 주파수를 표시합니다. 라디오 모듈의 오디오 출력이 매우 약해 3W 스피커를 직접 구동할 수 없으므로 PAM8403 모듈로 증폭합니다. 볼륨 조절과 ON/OFF 스위치가 내장된 버전을 사용했습니다.
2단계: FM 라디오 모듈 준비
모듈이 매우 작고 패드 간격이 브레드보드나 퍼프보드에 맞지 않습니다. 따라서 브레이크아웃 보드를 만들어야 합니다. 모듈 크기만큼 퍼프보드를 자르고 양쪽에 최소 5개 이상의 구멍이 있게 합니다. 사진과 같이 수컷 헤더 핀을 납땜한 뒤, 모듈을 올리고 모듈 패드와 헤더 핀 사이에 얇은 선(부품 다리 자투리 활용)으로 연결합니다.
3단계: 케이스 제작
퓨전 360으로 설계하고 크리얼리티 엔더 3로 출력했습니다. 사용한 모든 STL 파일을 첨부합니다. 전면 플레이트는 흰색 필라멘트만 있어 흰색으로 도색했습니다. 외장 본체의 구멍에 M3 나사 인서트를 인두로 삽입했습니다. 이너 림을 슈퍼 글루로 외장 본체 안쪽에 고정합니다. 백 플레이트에는 앰프 노브용 6mm 구멍과 안테나용 2mm 구멍을 뚫어야 합니다(설계 시 빠뜨림).
4단계: 회로 기판 준비
두 개의 회로 기판이 필요합니다. 메인 보드(아두이노 + FM 모듈)와 전면 플레이트에 장착할 버튼용 보드입니다. 각 부품을 수/암 헤더 핀 커넥터로 연결해 탈착이 쉽게 했습니다(생략 가능). 회로도대로 배선하세요.
5단계: 코딩
첨부된 .ino 파일을 아두이노 IDE에서 열고 업로드 전 두 가지를 수정해야 합니다.
- 지역 라디오 방송국과 주파수를 구글 검색으로 확인한 뒤, 'stations[]' 배열에 소수점 없이 입력하세요. 예: 91.10MHz → 9110, 101.10MHz → 10110. 배열 크기도 수정합니다(예: 12개면 stations[12]).
- 총 방송국 수에서 1을 뺀 값을 코드에 입력하세요(12개면 11). 더 좋은 방법이 있지만 에러가 나서 이렇게 처리했습니다.
수정 후 업로드하세요!
6단계: 조립
OLED 디스플레이와 스피커를 전면 플레이트에 핫글루로 고정합니다. 3D 프린팅한 버튼을 위치시키고, 택타일 스위치에 슈퍼 글루 한 방울을 떨어뜨린 뒤 버튼과 스위치가 맞도록 기판을 올립니다. 포텐셔미터를 전면 플레이트에 나사로 고정합니다. 이너 림에 슈퍼 글루를 넉넉히 바르고 전면 플레이트 전체를 올립니다. 모든 부품을 메인 보드와 연결하고, 라디오 모듈의 오디오 출력을 백 플레이트에 장착된 앰프와 연결합니다. 커넥터 주변에 핫글루로 응력 완화를 해줍니다. M3 나사로 백 플레이트를 조입니다. 마지막으로 핫글루 스틱을 2-3mm 두께로 4조각 잘라 바닥에 붙여 고무 발 역할을 하게 합니다.
7단계: 완성!
5V 전원으로 라디오를 켭니다. 5V 어댑터가 없으면 7805 레귤레이터로 12V를 5V로 강압해 사용하세요. 끝까지 봐주셔서 감사합니다. 이 프로젝트가 마음에 드셨길 바라며, 직접 만드셨다면 알려주세요. 유튜브 채널 구독도 부탁드립니다!
코드
FMRadio_final.ino (아두이노)
깃허브: Radio 라이브러리
3D 프린팅 파일
- Face Plate.stl
- Back Plate.stl
- Button.stl
- Inner Rim.stl
- Knob.stl
- Outer Body.stl
회로도
회로도 파일 참조