Nghiên cứu Khoa học
Đài FM với Arduino Nano và chip RDA5807M
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.
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 Codetại đây.
VI. Kết Luận
Các chi tiết về chi RDA5807M các bạn có thể đọc datasheet.