xuansangdang gửi vào
- 13111 lượt xem
Sau khi các smart phone đời mới hầu như đã bỏ chức năng radio nên đôi khi muốn nghe 1 vài chương trình bằng sóng trực tiếp (cộng với tiếng rè rè quen thuộc) lại không có. Hôm nay mình sẽ chia sẻ 1 dự án làm 1 đài FM đầy đủ chức năng với Arduino và chip radio RDA5807M dễ mua và sử dụng. Các bạn có thể làm 1 cái để tặng gấu cùng nghe quà tặng âm nhạc nhé.
I. Giới thiệu chức năng
Đây là đài FM có lưu mặc định các đài FM phổ biến ở TP.HCM. Các bạn có thể dò thêm đài ở các nơi khác.
Các chức năng cơ bản:
1. Lưu trữ và play FM theo kênh lưu trước
2. Tự động tìm kênh
3. Play FM theo tần số đã set
3. Lưu trữ, chỉnh sửa và xóa các kênh đã lưu
4. Tăng giảm âm lượng, ngắt tiếng
5. Xem trạng thái các kênh đang phát (độ mạnh tín hiệu, station,...)
6. Điều chình thời gian sáng đèn nền LCD
II. Chuẩn bị
1. Arduin Nano x 1
2. Module RDA5807M giao tiếp với arduino bằng I2C (datasheet tại đây) x 1
3. LCD1602 x 1
4. Module touch sensor TTP223 (Nút cảm ứng thay cho nút bấm truyển thống) x 4
5. Module khuyếch đại PAM8403 x 1
6. Loa (1 hoặc 2 cái tùy các bạn)
7. PCBA Micro USB sang DIP (dùng để cấp nguồn cho mạch bằng sạc điện thoại) x 1
Thư viện cho module RDA5807M (download tại đây)
III. Sơ đồ mạch
IV. Lập trình
Tại vì mỗi nút có nhiều chức năng tương ứng với trạng thái hiện tại của thiết bị nên mình dùng state machine để điều khiển các trang hiển thị và các hoạt động tương ứng khi bấm nút.
Nguyên lý là sẽ liên tục check nút bấm, khi bấm nút thì sẽ check trạng thái hiện tại là gì và đưa ra các hành động tương ứng. Các bạn có thể tham khảo trên diễn đàn về state machine ở đây
V. Code
Các bạn có thể download Code tại đây.
VI. Kết Luận
Sau 1 hồi nghiên cứu thì mình đã có 1 chiếc Radio để nghe quà tặng âm nhạc . Các bạn có thể thay đổi 1 vài chức năng hoặc code lại để hiển thị giao diện tiếng việt nhé và thêm 1 cái vỏ để hoàn thiện.
Các chi tiết về chi RDA5807M các bạn có thể đọc datasheet hoặc tra cứu trên mạng nhé. Có thời gian mình sẽ viết chi tiết về con này.