Introduction: PIC16F1847 and AR1010 Based FM Radio Music Box
This is my first Instructable post. I made a Digital FM Radio box using this cheap AR1010 FM Radio receiver module that I bought from Ebay and a PIC16F1847 Microcontroller from MICROCHIP. Why PIC's? Why not use Arduino? Because i have bunch of these IC's stocked in the parts bin. And also because most of the Digital FM Radio instructables and tutorials use the arduino.
Let's Make it.....
Step 1: Parts and Tools Needed...
The Basic parts are the Following:
The Brain - Microchip Pic16F1847
Digital FM Radio Receiver - AR1010 Module
Display - MAX7219 8 Digit 7 Segment Led Module
Audio Amplifier - PAM8403 5V DC Audio Amplifier Board 2 Channel 2*3W Volume Control
Power/Charging - 3V to 5V 1A Step Up Module USB Charger Boost Converter w/ 1pc. 18650 battery salvaged from old laptop battery pack.
- Interface - 3 pcs. push button micro switches
3D Printed Box Enclosure - STL files link here
Tools to Use:
- Soldering Iron
- Long Nose Pliers
- Digital Multi tester
- Exacto Knife
- Cutter Plier
- Glue Gun
- 3D Printer
- Microchip PICKIT 3 Programmer/Debugger
Step 2: SCHEMATICS and WIRING ASSEMBLY
The Schematic is drawn using the Free version of Autodesk Eagle PCB design software.
The parts list for the main board are the following:
1 pc. PIC16F1847 MCU PDIP-18
1 pc. AMS1117-3.3 Voltage Regulator SOT223
6 pcs. 4.7Kohm / 0.5 watt Resistors
1pc. 10uf / 16v electrolytic capacitor
All these parts are mounted on a custom cut 30mm x 30mm single sided perf board to fit it inside the casing. The PIC Mcu is mounted on the top side the board. The AMS1117-3.3 SMD regulator and the AR1010 module are soldered on the copper side .
There is no external Oscillator because i used the internal 32 mhz clock of the PIC16F1847 MCU. I didn't use any headers and connectors to connect the modules, they are soldered with jumper wires. The headers are for serial debugging and ICSP programming.
Step 3: CODE
The code is written and compiled using the Code Limited version of the MikroC for PIC.
I used the Ar1010 Arduino Library of adamjansch/AR1010lib and ported it to be compatible with the MikroC for PIC IDE.
I wrote my own Max7219 library.
That's all... thanks
Step 4: Future Updates:
I will add an RTC for Time and maybe some sensors like Temperature and Humidity.
Bluetooth audio input.