Main Content

Hello and welcome back to another Instructable. In the previous two Instructables, I have shown you how I created PCB coils in Kicad using a Python script, covered the basics of an H bridge, and showed you how I will be using them to control the segments of the 7-segment mechanical display. Make sure you check those out. My aim is to replace the huge electromagnets in the Mechanical 7-segment Display with the PCB coils.
In this Instructable, I will combine the 7 coils and the H bridge drivers on a single PCB to create a working 7 segment display. Lets get started!

1x Arduino
7x DRV8837 H-Bridge Driver IC
2x 74HC04 NOT Gate IC
1x 74HC595 8-bit Shift Register IC
7x Neodymium Magnets 6mm x 1.5mm
4x M3 Screws

3D Printer

The plan is very simple. I will be just combining whatever I have shown in the previous two Instructables into one project. The first step is to design a circuit and PCB in KiCad with 7 coils along with 7 H-bridges to drive the coils. The next step is to design and 3D print the body with the segments. Arduino will be used to control the display.

As mentioned in the previous Instructable, I will be using DRV8837 H-bridge driver to control the segments. The driver requires two inputs from a microcontroller to control one segment and 14 inputs for a complete display (7 segments). Since the two inputs are always complemented of each other i.e. if IN1 is HIGH then IN2 is LOW and vice versa, instead of giving two separate inputs, we could directly send a signal (1 or 0) to one input while the other input is given after being passed through a NOT gate which inverts it. In this way, we can control the segment/coil using only one input same as a normal 7 segment display. I will be using 74HC04 IC which has 6 NOT gates in a single package. This arrangement will require 7 I/O pins on the Arduino for a single display. Since a single digit is not much of a use, I will be using at least 4 such digits to display something useful. This means a total of 28 I/O pins will be required. That’s a lot!

Shift register to the rescue! You can drive many digits using shift registers and just 3 I/O pins on the Arduino. You can read more about the shift register and it’s working in my older Instructable. I will be using the 74HC595 8-bit shift register.

I had found that a coil with 30 turns and 4 layers is suitable for my need. I arranged the coils as close as possible in order to make the display smaller. This method of making coils in KiCad makes the software a bit laggy (at least for me) if there are many coils.”

Link to article