Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 2 of 2

Thread: External Speaker & Audio Shield Question

  1. #1

    External Speaker & Audio Shield Question

    Hi everyone -- I'm sure this is a very novice question but I'm having some problems playing a sound through external speakers, using Teensy 3.2 plus audio shield. I just want one of two songs to play when a button is pressed. (Code is pasted below.) Everything works perfectly fine when I play through the headphone jack of the audio shield, so I'm pretty sure the problem isn't the code. The problem is when I try to get it to play through the external speaker.

    Circuit looks like this:

    Click image for larger version. 

Name:	circuit.png 
Views:	47 
Size:	29.2 KB 
ID:	20228

    The speaker outputs just a loud fuzz noise. You can barely make out the song being played when the button is pressed, but the loud noise is just constant.

    I've tried with a 4ohm 20w speaker and a 8ohm 3w speaker. Same problem with both. Also tried with 100k instead of 4.7k resistors going into the op amp. Didn't change the problem at all.

    I've searched the forum (e.g.,
    HTML Code:
    ) and other online help. One problem I'm having is that the other examples I'm seeing are using the LM386 whereas I have the TLV2462 (
    HTML Code:
    HTML Code:
    ), and I suspect that me not fully understanding this op amp is one major source of the problem.

    Any help would be greatly appreciated, thank you!!

    Click image for larger version. 

Name:	IMG_3155.jpg 
Views:	66 
Size:	183.6 KB 
ID:	20229

    #include <Audio.h>
    #include <Wire.h>
    #include <SPI.h>
    #include <SD.h>
    #include <SerialFlash.h>
    #include <Bounce.h>
    // WAV files converted to code by wav2sketch
    #include "AudioSampleCucaracha.h" 
    #include "AudioSampleTarantellalow.h"      
    // Create the Audio components.  These should be created in the
    // order data flows, inputs/sources -> processing -> outputs
    AudioPlayMemory    sound0;
    AudioPlayMemory    sound1;  // six memory players, so we can play
    AudioMixer4        mix1;    // two 4-channel mixers are needed in
    AudioOutputI2S     headphones;
    AudioOutputAnalog  dac;     // play to both I2S audio board and on-chip DAC
    // Create Audio connections between the components
    AudioConnection c1(sound0, 0, mix1, 0);
    AudioConnection c2(sound1, 0, mix1, 1);
    AudioConnection c8(mix1, 0, headphones, 0);
    AudioConnection c9(mix1, 0, headphones, 1);
    AudioConnection c10(mix1, 0, dac, 0);
    // Create an object to control the audio shield.
    AudioControlSGTL5000 audioShield;
    // Bounce objects to read six pushbuttons (pins 0-5)
    Bounce button0 = Bounce(0, 5);
    Bounce button1 = Bounce(1, 5);  // 5 ms debounce time
    void setup() {
      // Configure the pushbutton pins for pullups.
      // Each button should connect from the pin to GND.
      pinMode(0, INPUT_PULLUP);
      pinMode(1, INPUT_PULLUP);
      // Audio connections require memory to work.  For more
      // detailed information, see the MemoryAndCpuUsage example
      // turn on the output
      // by default the Teensy 3.1 DAC uses 3.3Vp-p output
      // if your 3.3V power has noise, switching to the
      // internal 1.2V reference can give you a clean signal
      // reduce the gain on mixer channels, so more than 1
      // sound can play simultaneously without clipping
      mix1.gain(0, 0.4);
      mix1.gain(1, 0.4);
    void loop() {
      // Update all the button objects
      // When the buttons are pressed, just start a sound playing.
      // The audio library will play each sound through the mixers
      // so any combination can play simultaneously.
      if (button0.fallingEdge()) {;
      if (button1.fallingEdge()) {;

  2. #2
    Senior Member
    Join Date
    Apr 2020
    Your chip is rated for 6V max poower, and you have a 9V battery. Already not good news.

    Your amp is an op-amp, not a power amp. It needs gain and feedback resistors in order to set closed loop gain, otherwise it's just a fast comparator swinging wildy from fail to rail. You need an lm386, or my favorite a tda2822. But most importantly, learn how op amps work. Dave Jones has a great video on this on youtube "eevblog."

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts