[SOLVED] Needing my zenor-diode white-sound generator to work.

I ordered a bag of 3.3 volt glass zenor diodes and have tried building the circuit below, but am not getting any white sound from it.

All three pictures are the same circuit. I changed only the resistors to match each picture, and always ran it on 5 volts with a 3.3 volt zenor and a 2N2222 transistor.

The page hosting the middle picture above stated that this circuit should "amplify that noise to a useful level of about 1 volt peak-to-peak". But I'm seeing nothing on my scope above normal background noise.

It didn't work. And I'm posting this message for info on if I have bad diodes? Or am I failing to understand how zener diodes respond to voltage and current?

I had thought that when reversed biased, the doide would pass no current until reaching 3.3 volts, and then pass current as needed to maintain 3.3 volts.

But instead, I see something between 2 volts, and 0.8 volts across the diode when reverse biassed (less when forward biassed). I would think this would mean no reverse diode current could flow, and yet connecting the diode to the transistor base (as shown) causes the transistor's collector voltage to drop from 5 volts to about 2 volts, proving the diode is conducting current.

So did I get a bad (or wrong) batch of zener diodes? Or am I misunderstanding how zenor diodes behave? And most importantly, Where's the white sound???

There is probably nothing wrong with your diodes.
For maximum white noise you must operate the diode at the knee region, that is just in the breakdown part of the curve. Try running the circuit at 3.3V, however it does not look like a promising circuit to me anyway.

I've built similar circuits in the past and have great difficulty believing the claim that a single stage transistor amplifier would amplify the noise produced by the Zener effect to "1 volt, peak-to-peak".

In any case the noise produced by the diode is highly dependent on temperature, bias, manufacturing characteristics (defects, etc.) and varies a great deal from device to device. Test the circuit with different devices by feeding into an audio amplifier.

A couple of other examples (the first uses a 3 transistor amplifier)
http://www.next.gr/audio/musical-circuits/noise-generator-circuit-l12875.html

That's great information, guys. With further experimentation, everything you said appeared to be true.

This image from Wikipedia shows that there really is a small reverse current flow, well before reaching the knee; so my diodes really are good, like you said.

But my experimentation showed that using a zener diode to generate white sound in an Arduino project is a very bad idea. The reason is all the digital noise from the Arduino! For starters, the amplification required to bring up the zener noise is so great, it's hard to filter out the digital noise enough before it gets amplified along wtih the desired zenor signal. But beyond that, I discovered the smallest variation in voltage across the zener diode junction (at the knee) from any digital noise, results in a cascade of electrons across the junction far exceeding what would match the voltage change. In other words, the zener diode acts as a powerful high-gain amplifier for any remaining digital noise it sees!

So then I thought about adding a digital "white sound" chip as an alternative, and read about such chips. I learned that:
(1) They use a shift register with feedback to about the 17th register bin to generate random values.
(2) This is also how random number generators work.
(3) Arduino has a random number generator already built in.

BINGO! The built in random number generator, is already the perfect random noise genaerator!

So I wrote some Arduino code to program my AVR to make it's own white sound, and it works perfectly. And better yet, it allows me to vary the loudness of my white sound by simply changing the maximum parameter in the random(max) function.

Here's the part of my code that generates the sound signal:

void whiteBreath() //here
{
  boolean up;
  byte vol = 0;
  while (true)
  
  {
    for (byte i=0; i<100; i++)
      PORTC = random(vol);  // load a random number onto the eight arduino pins
    if (up && (vol < 255)) // increase the loudness if not max already
      vol++;
    else if ((!up) && (vol > 0)) // decrease the loudness if not silent already
      vol--;
    else
      up = !up;  // reverse the direction between louder and softer
  }  
}

void setup()
{
  //......
  DDRC = B11111111; // sets the eight output pins to be outputs.
  // You also could have written the above line as:
  //  for (byte i=16; i<24; i++)
  //    pinMode(i,OUTPUT);
  //  to do exactly the same thing.
  //......
}

So now we have the eight bits of the random number output to the Arduino pins. Next voltages on these pins must be combined into an analog voltage, ready for an audio amplifier/buffer for a speaker:

These resistors give each of the eight pins their proper proportion in setting the final output voltage in the sound. The resistor arrangement is used in arduino projects with audio out put, such as this one.

And best of all it WORKS!

Of course, if you use the above, you'll need to change pin numbers and port name to fit the AVR chip you are using. Im now using the Atmega1284p chip.

PS-- An Arduino page that helped a lot in showing me how to do the above is Port Manipulation.