text.skipToContent text.skipToNavigation

Low Battery Alarm

Download Project Resources View on Github

Simple alerts with the low battery alarm

hero image

Perfect for 12 - 24V boating applications! Use this adjustable low voltage alarm for your next time out and about to make sure you're never stuck with low power again. Uses a 2.5v reference with the 358 Dual op-amp to compare the battery voltage and to oscillate a small buzzer on the board if it gets too low. Wire in a small LED indicator light so you can see it on your dash

You will need some spare wire to connect to battery and LED.

What it does

This essentially hooks onto the battery and gives you two outputs when the battery goes below a certain level:

  1. constant 12V HIGH
  2. pulsing ground connection. (used for grounding the buzzer and making the alarm.)

With this, the idea is that you can hook it up to anything you want. for instance, a LED that warns you about "Low Voltage" could be connected on port 1. and the buzzer could be connected to port 2. or if you wanted a flashing LED and a constant tone, you'd connect the LED to 2. and a buzzer from 1. to ground.

Bill of Materials

Qty Code Description
1 ZL3358 LM358 Dual Op amp IC
1 ZV1624 LM336Z precision 2.5v reference
1 RR0596 10k resistors
1 RT4650 10k 25turn trimpot
1 RE6110 electrolytic cap 47uf
1 AB3459 PCB buzzer
1 HP9570 Experimenters PCB
2 HM3172 2 way screw terminal
1 ZR1100 diode ZR1100



It's clear from the start that we're trying to COMPARE the battery level, and so we'll need a comparator to do that.

I had some idea that there was oscillator patterns online using a simple op-amp/comparitor circuit, so using a dual op-amp (ZL3358) was going to be the way to go.

We ended up with a design chaining the two of them together like this:

Circuit of op-amp oscillator

There was a problem with this being active low which we tried to mitigate with using a 555 timer, but that involved too many components to be worthwhile.


We played around with a falstad circuit here: falstad.com or you can scan this with your phone:

qr code

Nevermind the 1k resistors; we're using 10k in our project. 1k is just for example as it was the default resistor value when making the system.

Just to get the logic right; when the voltage of the battery drops below a certain level, we want one of the LEDs to light up, and one of the LEDs to blink. When the battery is high, we want them both to be off completely. It works fairly well, albeit with the negated logic on the second op-amp.

If you open up the link, you will be able to change the "resistance" on the right. If you change it to a low value, you should find the outputs we want flashing on the falstad applet.

circuit animation


Now comes to the meat of it. Start with the pinout:


ZV1624 voltage reference is just an easy 2 wire hookup, we're going to go for the attached diagram with the two pins (center and right). Don't worry about the ADJ for now, because we don't need it to be a precise voltage, just a voltage reference of some point value X which we then compare on the positive input of op amp A.

After a bit of experimentation we ended up a circuit that looks somewhat like this on paper:


We've colour coded the

And it looks like this on the HP9570 PCB:

in board circuit

The diagram on paper above wasn't quite able to match what we had on the PCB due to the size, and the PCB had some benefits such as the power rails coming down under the PCB which tided up a bit of the wiring.

The only other thing is attaching the buzzer to it and trying it out. We have a MP3842 power supply that we're able to adjust the voltage on and see how it works.

The build from this point is nothing other than to put the parts together, if you want to see some step by step photos, we've got a bunch of photos in the project folder which you can download from the top of this page.

Using the device

It might be easiest to connect it to a variable power supply, we use MP3842 in the lab, but any adjustable power supply can do ( grab an MP3844 while they're hot.)

The basic idea with calibrating the unit, is you want to give it a set voltage that you want to trigger at, for instance, 10V. Then adjust the RT4650 potentiometer until the buzzer sounds or the light turns on. Then that's it. if you put any higher voltage (ie: a full battery) it should appear "off" until the battery flattens to give the voltage that you specified.

Troubleshooting and future improvements

  • Play around with the circuit on falstad first to see how things work, then test for voltages on a multimeter. always triple check connections.
  • If there's some issues when you hook up loads to the output, it's usually related to the output current of the op amps. I was able to light up an LED for this project but anything more like driving a relay might need some sort of MOSFET or otherwise to trigger it. Something like ZT2466 should work perfectly on the swinging output, and you'll have to get the equivalent on the constant positive output.
  • The quickest change is to get this onto 24V systems, using a bigger voltage divider circuit so that the voltage range can drop lower. It wasn't investigated but it might just be introducing another 10k resistor on the input to comparitor A. Look up how to do voltage divider circuits and remember ohms law.