Piezo-Powered Self-Lighting Circuit

Xiao Xiao

Goal:

test the feasibility of self-powered circuit that can be embedded in a shoe for wearable fashion applications.

Result:

a circuit that flashes 10 LED’s with the press of a button on a piezo spark generator.

Explorations:

I started by looking at the self-powered shoe from Responsive Environments group and wanted to acquire a large piece of piezo film that could be embedded in the sole of a shoe. After consulting with Mark Feldmeier, I learned that the piezo elements large enough to generate enough power for the shoe would be too expensive to use if I wanted to make more than just a single prototype.

Mark recommended that I look into the piezo push-button switch that he made (link to paper). The switch excites a piezo element at its resonate frequency and is thus able to generate much more power with a compact form. Here’s a picture of the power-harvesting circuit from the paper:

The piezo element generates a waveform with very high voltage. The waveform goes through the transformer, which lowers its voltage, and then a diode-bridge full-wave rectifier, which converts the negative portions of the signal to positive. The energy from the piezo is then stored in the capacitor. The capacitor is connected to a linear regulator, which outputs a constant 3v to some load circuit whenever the capacitor has enough charge.

Prototyping:

I got a switch, transformer, diode bridge and capacitor from Mark along with the original board, which is fairly small and would definitely fit under high heels. I soldered the parts on and checked the output of the capacitor on a scope to see that it gets to about 20v with each button press.

To test the power of the circuit in practice, I hooked up 10 red LEDs (2v voltage drop, 16mA) in series coming out from the capacitor. When I press the button, they all light up fairly brightly for a fraction of a section.

(Incidentally, I wired the LEDs in parallel initially by mistake, and the circuit still worked. I feel like this isn’t so kosher as each LED is getting 20v with each click, but Mark says that since the transformer has very high impedance, it’s not actually as horrible as I think.)

Cost

  • Piezo switch harvested from Scripto Aim ‘N Flame – $5.99 each
  • Transformer: ~$1
  • Tank capacitor: ~$1
  • Diode bridge (DF01S): $.62
  • Linear regulator (MAX666, not used right now): $4.14

Math!

I also did some math to figure out what other types of applications this circuit could power.

  • The small switch (that I used) generates 0.5mJ per push.
  • Given 3 pushes/sec, this gives 1.5mW (1.5 mJ/s) of power.
  • With 30 minutes of continuous walking, this generates 30 minutes * 60 sec/minute * 1.5 mJ/sec = 2700 mJ

There’s also the possibility of using a bigger switch (like below), which can still fit in a high heel but generates 20mJ per push

  • 20mJ/push gives 60mW given 3 steps/sec
  • In 100 steps, this gives us 2000mJ. Given 3 steps/sec, 100 steps takes about 30 seconds.
  • With 30 minutes of continuous walking, this gives 30 * 60 * 20 36000 mJ = 36J.

 

Some possible efashion applications:

  • Low power LEDs: 1.6 mW (red), 1.9 mW (yellow), 2.8mW (white)- this is given that the lights are continuously on. Flashing lights would definitely have enough power.
  • Accelerometer: 3.5V * 1.5mA = 5.25mW
  • ATtiny13 (small microcontroller): at 3v, 0.72mW
  • Speaker: .25W = 250 mJ/s. Let’s say we want to play 10 seconds of sound, that’s 2500 mJ
  • Vibration motor: 3v * 75mA  = 225 mW
  • Spinning motor: 3v * 320 mA = 960 mW

The small switch would enable occasional usage of most these features after some charging. The large switch would enable even more frequent usage.

Onwards:

I ordered a large switch. It’s arriving soon. Will build a power-harvesting circuit around that.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>