Summary of PIC24 Speech Output of Temperature Reading using PIC24FJ128GA010 with Proteus Simulation
This project builds a speech-enabled talking thermometer using a PIC24FJ128GA010 microcontroller in Proteus. It reads analog temperature from a TC1047A via the ADC, converts the value to °C, selects pre-recorded ADPCM .dat speech clips from MPFS, decodes them, and generates audio with PWM (OC1 + Timer2). The PWM audio is filtered and amplified by two op-amp stages before driving a speaker. A push-button triggers readings; Proteus simulates ADC, PWM, and audio paths for testing.
Parts used in the Talking Thermometer Project:
- PIC24FJ128GA010 microcontroller
- TC1047A temperature sensor
- Push button (RD13 input)
- Op-amps U1 and U2 (anti-aliasing and audio amplification)
- Capacitors: 100n, 3.3n, 2.7n, 5.6n (and others)
- Resistors: 9.31k, 19.1k, 8.45k, 12.4k, pull-ups (and others)
- PWM audio driver hardware (OC1, Timer2)
- Speaker / audio output
- MPFS file system storage with ADPCM .dat speech clips
- Why is there no sound in Proteus?
Ensure PWM frequency, Timer2 settings, and the audio output model match the code configuration. - My speech files don’t play—why?
Filenames must match exactly as stored in MPFS, for example 0.dat, 15.dat, deg.dat, cel.dat. - Can I use another temperature sensor?
Yes; update the ADC scaling formula to match the new sensor’s voltage curve. - How do I modify the audio quality?
Change ADPCM parameters or increase PWM/sample rate and adjust Timer2 and OC1 settings accordingly. - Why is the audio distorted?
Check the analog filter network components (C1–C5, R1–R4) and ensure proper grounding in the simulation. - Can I switch the microcontroller to a PIC18 or dsPIC?
Yes, but you must rewrite PWM setup, file system support, and ADC configuration. - How do I add more spoken phrases?
Record audio, convert to ADPCM, and store new .dat files in MPFS. - Why is the temperature reading wrong?
Verify ADC pin configuration (AN4/AN5) matches the schematic wiring and code. - Can this output speech in Fahrenheit?
Yes; modify the temperature conversion formula and file-selection logic to use Fahrenheit speech clips. - Why does the playback pause between digits?
The code includes intentional delay loops to space speech clips.