The simplest charge pump
If you read my last post you know how to get fast PWM off pin 11 (or pin 3) without messing up your millis() and delay() functions. Keep in mind this is still using up one of your timers, so pin 3 and 11 should not be used for analogWrite() if you use this method.
I promised a quick and easy answer to the question “how do I generate a negative voltage. Here it is:
Use cheap electrolytics, and run PWM with about 50% duty cycle on pin 11. You will only be able to pull a few milliamps off your negative voltage, but that can be enough for some things.
How it works
The square wave is passed through the C1. When output is VCC, the other side of C1 grounds through D1. The voltage at the negative terminal of C1 is now equal to the diode drop (.7 volts for the shown 1N4004). Pin 11 goes to ground, and the voltage at the negative terminal is reduced by 5 volts. it is now -5+.7=4.3 V. This is pulled through D2, and charges C2. The voltage across C2 will be -5 V + twice the diode drop. That means for the configuration shown it will be about -3.6 V. The big problem with this is the 1.4 V drop through the two diodes. We can reduce that by using Schottky diodes, which will only drop around half the voltage.