Go Down

Topic: wiring a 8ohm .25w speaker (Read 2322 times) previous topic - next topic

bryanmc1988

Dec 11, 2014, 04:50 pm Last Edit: Dec 11, 2014, 04:51 pm by bryanmc1988
cant seem to get the speaker to play or do anything...

is there a test sketch or something to test if the speaker works? maybe the wiring is wrong? i'm not even sure where to begin -.-

5v was powered from the arduino
gnd was also from the arduino...


i tryed both of these :


the left side i tryed using a 4.7k resistor not a 120 as i dont have one...
the right side i tryed using a bc546B trans as i dont have a bc337 trans. wired it up just lik the diagram showed...




i have also tryed this:


just the top where it uses a cap and i was using a 220uF as the cap and still doesnt work...


the data pin i was using is the Digital pin 47 on the arduino mega 2560


this sketch was what i was testing it on:
Code: [Select]
/*
  Melody
 
 Plays a melody
 
 circuit:
 * 8-ohm speaker on digital pin
 
 created 21 Jan 2010
 modified 30 Aug 2011
 by Tom Igoe

This example code is in the public domain.
 
 http://arduino.cc/en/Tutorial/Tone
 
 */
 #include "pitches.h"

// notes in the melody:
int melody[] = {
  NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};

// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
  4, 8, 8, 4,4,4,4,4 };

void setup() {
  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < 8; thisNote++) {

    // to calculate the note duration, take one second
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDurations[thisNote];
    tone(47, melody[thisNote],noteDuration);

    // to distinguish the notes, set a minimum time between them.
    // the note's duration + 30% seems to work well:
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    // stop the tone playing:
    noTone(47);
  }
}

void loop() {
  // no need to repeat the melody.
}

Grumpy_Mike

Not surprising that non of those would work. In fact the one with just the capacitor to the speaker will damage your arduino due to putting too much load on it.
You want an amplifier, this is one I have used on projects:-

polymorph

You didn't have a 120 ohm resistor, so you tried a 4.7k resistor. That is 39 times more resistance. Power is in proportion to the inverse of the square of the resistance. Assuming the speaker resistance is too small compared to either resistance to worry about, that means .00065 times the power. I'm not surprised you can't hear anything.

The complementary emitter follower should work, but you should put that 4.7k resistor between the Arduino and the transistor bases.

You know you are only driving this with a digital signal, correct? If you try to use analogWrite, it outputs a PWM of only 490 or 980Hz (depending on the model Arduino), so you'll just hear that.

So you -could- just output an analogWrite of 127, that is about 50% duty cycle. Then you'll just hear the 490 or 980Hz buzz. Note that analogWrite only works on certain pins, dependent on which Arduino you are using.

http://arduino.cc/en/Reference/analogWrite

Or you could use the tone library, or toneAC.

http://arduino.cc/en/reference/tone


http://playground.arduino.cc/Code/ToneAC
Steve Greenfield AE7HD
Drawing Schematics: tinyurl.com/23mo9pf - tinyurl.com/o97ysyx - https://tinyurl.com/Technote8
Multitasking: forum.arduino.cc/index.php?topic=223286.0
gammon.com.au/blink - gammon.com.au/serial - gammon.com.au/interrupts

raschemmel

I was able to run the ToneAC examples using just a 470 uF cap  and a 2" 8 ohm speaker with no resistor.
No problems.
Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,<br />DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

polymorph

With some of the extreme paranoia about drawing more than 40mA from an Arduino pin, I'd add a resistor. Or at least, not mention not using one here.  ;)
Steve Greenfield AE7HD
Drawing Schematics: tinyurl.com/23mo9pf - tinyurl.com/o97ysyx - https://tinyurl.com/Technote8
Multitasking: forum.arduino.cc/index.php?topic=223286.0
gammon.com.au/blink - gammon.com.au/serial - gammon.com.au/interrupts

Go Up