Automotive Gauge Stepper Motor

The idea behind the project is simple: take a stepper motor, put a needle on it, and connect it to a mbed. Instant analog gauge, measuring anything the mbed can calculate.

Description

These stepper motors are often used in gauges for motorcycles and cars to replace the old-style fully-analog type. They have extremely fine step precision of about 1/2 a degree per step, 600 steps for single stepping, fast response for quick movements, and a range of 315° degrees. Their smooth motion makes good for small projects that need a dial indicator, and more precision motion than you can get with a needle gauge.

This is a bi-polar stepper motor and you need to have some sort of H-Bridge to drive it. A L293D or TB6612 will do the job nicely. You can have a microcontroller that can drive 200 ohm loads; this way you will be able to use the direct pins without extra MOSFETs.

The motor is quite 'weak', not good for moving anything but a light indicator. We have a red-line dial that fits nicely on top by pushing onto the needle shaft.

/media/uploads/nhimani3/2.jpg

/media/uploads/nhimani3/1.jpg

/media/uploads/nhimani3/gauge_motors.jpg

/media/uploads/agarg45/20151022_115806.jpg

Technical Details

  • Axial Force Maximum: 150N
  • Axial Pull Force Maximum: 100N
  • Radial Force Maximum: 12N
  • Rotation Angle Maximum: 315°
  • Coil Resistance: 260 ohm
  • General Tolerance: ± 0.1 / ± 5°
  • Rotation Angle Maximum: 315°
  • 600 steps per 'rotation' (315 degree rotation)

Dimensions:

  • ​Red-Line Dial Diameter: 13mm / 0.5"
  • Red-Line Dial Length: 42mm / 1.65"
  • Dial Thickness: 1mm / 0.04"
  • Motor Diameter: 32mm / 1.3"
  • Motor Thickness (w/o pins): 9mm / 0.35"

Schematic

/media/uploads/nhimani3/schematic.png

/media/uploads/nhimani3/breadboard.png

Video

The movement of the needle is amazingly smooth and quite fast, as seen in the video. This is really good if you want a more analog display than LEDs and LCDs can provide.

Source Code

include the mbed library with this snippet

#include "mbed.h"
#include "StepperMotor_X27168.h"

StepperMotor_X27168 smotor(p25, p26, p23, p22);

int main() {

    smotor.step_position(180);
    wait(0.5);
    
    smotor.step_position(100);
    wait(0.5);
    
    smotor.angle_position(270);
    wait(0.5);
    
    smotor.step_position(0);
    wait(0.5);
}

Import libraryStepper_Motor_X27168

The API for a Stepper Motor providing position and speed control for an Automotive Gauge Stepper Motor.

Import programECE_4180_Lab_4

Demo Code for the Automotive Gauge Stepper Motor moving the needle to several locations starting from zero initial position


4 comments on Automotive Gauge Stepper Motor:

23 Jan 2016

Hi please send algo and schmetic on mail2santosh.sneh@gmail.com. thnx

29 Jan 2016

This motor and needle is available at Adafruit - https://www.adafruit.com/products/2424.

The Dual H-bridge module is available at Pololu - https://www.pololu.com/product/713

30 Jan 2016

The wiring table is missing a few obvious power pins.

mbedH-bridge
gndgnd
VoutVcc
VU(5V)Vmot

It will run on the mbed LPC1768 without an external supply since it is so small, if nothing else is hooked up. Most motors and servos need an external power supply. This stepper has mechanical stops at around 300 or so degrees of rotation (it was designed for speedometer use). Most larger stepper motors can keep rotating.

19 May 2016

Sometimes this library lets the motor "slip" and miss steps when stopping and starting.

Moving from single phase to dual phase drive can increase the power applied, as found here -https://developer.mbed.org/users/yhbyhb4433/notebook/automotive-stepper-motor/

Combining that with adding pointer acceleration, as found in the library linked below, will dramatically increase the speed with which the pointer can move without missing steps and losing track of position. https://developer.mbed.org/users/clively6/code/Stepper_Motor_X27168/

Additionally, getting the speed over 1500 steps/sec makes the buzzer noise go away.

Please log in to post comments.