2018年9月21日星期五

High performance microstep driver for unipolar stepper motors



What is it? 

I originally designed the LiniStepper as a versatile PCB that could be used to drive most small to medium UNIPOLAR stepper motors for my own CNC projects. Because this was designed for me the design may seem a little eccentric. There is massive reliability from over-rating components, great versatility from using discrete power components and a PCB with numerous setup options, and an on-board microprocessor that can be programmed to do any microstepping mode and even act as complete motion controller "brain" all on the one board if needed.

Since "proper" commercial stepper motor drivers for sale are very expensive there was an interest from people to buy the LiniStepper as a low cost kit that will provide good performance for home CNC uses. The LiniStepper soon evolved into an open-source project with the help of the wonderful people who run the PICLIST electronics forum.

The LiniStepper gives great motor performance with some very nice microstepping features, but it is linear in its method of controlling motor current, so it can give off a lot of heat if driving a large motor. In most cases this is no big deal, you just bolt it to a decent heatsink and maybe a small PC type fan and enjoy the great performance of smooth linear current control.


Features:
Step modes of 200, 400, 1200, 3600 steps/rev
(full step, half step, 6th step, 18th step)
Linear current smoothing, gives smooth "stepless" operation
Extremely rugged
Uses large power transistors, not a flimsy stepper driver chip
Best suited for stepper motors up to 1.5A per phase
Can be used for 4A per phase BUT ONLY IN FULL STEP MODE
PSU voltage 4v to 35v
Can be set up for a huge range of motor sizes
On-board PIC chip and free source code
PIC chip is ALREADY programmed for you!
Source code can be modded to give ANY step resolution or infinite angle control
Requires +5v logic supply for PIC
Has "standard" step and direction inputs
Compatible with most freeware home CNC driver software
Can be wired directly to a PC parallel port for home CNC
Works with 5-wire and 6-wire (unipolar) motors

Disadvantages;
It gets hot with larger motors, needs a big heatsink
It is a kit, you have to build it
Does NOT work with 4-wire (bipolar) motors


High performance 

The Linistepper is a bit like myself; eccentric, quirky, rugged, old-fashioned and offers a very high level of performance. :o)

As far as I know this is the only LINEAR constant-current microstepping stepper driver available for sale apart from a couple of very expensive high-end industrial units costing many hundreds of $.


Look at that linear smoothing! This is the actual current through one motor winding in 3600 step mode, measured through one of the current sense resistors.


Open-source project 
This one page is all I have here on the LiniStepper, but there is a large open-source project available which contains many pages;
Technical, how it works and linear microstepping theory
How to build it with step by step photos
Circuit diagram and parts list
PCB parts layout
High torque half-stepping theory
Full PIC .asm software
Tips for using it
How to tune it for different step motor sizes
Owner's questions and answers

You can buy the kit there too and it has been priced cheaply, for a similar price to the costs of the parts alone if bought from Digikey or other hobby electronics stores. The kit includes all the components, a high quality plated through hole double sided PCB, the plugs/sockets for all connections, and mounting hardware for the power transistors but DOES NOT include heatsink angle bracket or heatsink. All kit instructions are web-based and can be downloaded. The (very small!) profits from kit sales are divided equally between myself and the forum and help to support the forum.

hybrid Stepping Motor Advantages and Disadvantages

2018年9月20日星期四

HOW TO CONTRO L LINEAR STEPPER MOTOR ACTUATORS

n this post we will be going over how to use relay boards to control the motion of linear actuators. We have 2-channel, 4-channel and 8-channel relay boards available and each one does the same thing, the only difference being how many channels are usable. We will be combining the relay boards with our LC-066 Arduino Uno to show off their control capabilities. The relays control the direction in which the actuator moves. They work by using current from the input source to activate an electromagnet, which pulls a switch that allows higher currents on the opposite side of the relay to flow.
IMG_0050

On the control side of our relays you will find a GND pin, IN pins numbered from 1 to 8 depending on the relay model, and a VCC pin. Our relays require a fair amount of power to stay activated so we'll need at least a stable 5V power supply. Otherwise the Arduino will have trouble powering the higher channel relay modules. Usually they can produce a few hundred milliamps which is more then enough to power a 2 channel relay module like our LC-200 but no where near enough for an 8 channel relay module like our LC-202. For this example we'll be using the 2 channel relay. As for wiring the relay modules you'll need to follow some simple steps.
On the control side of the relay, first we need to connect our 5V power supply to the VCC and GND pins. Next we'll need to connect the IN pin to the corresponding Arduino pin, then the relays will activate once the IN pins are connected to the GND pins. On the relay side there are three main parts of each relay, three screw terminals.
IMG_0041

These terminals are referred to as the Normally Closed (NC) connection, the top one, the Common (COM) connection, the middle one, and the Normally Open (NO) connection on the bottom. If there are no connections to the IN pin then the relay will connect between the NC and COM terminals. If the 5V power source is connected to the IN pin then the relay will connect between the NC and COM terminals as well. Finally if you connect the IN pin to the GND pin the relay will connect between the NO and COM terminals.

IMG_0044

Now that everything is wired up its time for some basic coding with the Arduino Uno. Below is an example showing how the programming works.
const int forwards = 7;
const int backwards = 6;//assign relay INx pin to arduino pin

void setup() {
 
pinMode(forwards, OUTPUT);//set relay as an output
pinMode(backwards, OUTPUT);//set relay as an output

}

void loop() {
  
 digitalWrite(forwards, LOW);
 digitalWrite(backwards, HIGH);//Activate the relay one direction, they must be different to move the motor
 delay(2000); // wait 2 seconds

 digitalWrite(forwards, HIGH);
 digitalWrite(backwards, HIGH);//Deactivate both relays to brake the motor
 delay(2000);// wait 2 seconds
 
 digitalWrite(forwards, HIGH);
 digitalWrite(backwards, LOW);//Activate the relay the other direction, they must be different to move the motor
 delay(2000);// wait 2 seconds

 digitalWrite(forwards, HIGH);
 digitalWrite(backwards, HIGH);//Deactivate both relays to brake the motor
 delay(2000);// wait 2 seconds

}


We've included a video showing off what we talked about in this article, be sure to check it out and stay tuned for more videos like it in the coming weeks. In conclusion, using relays to control linear actuators allows for some creative control options like the one we went over above and combining them with other motion control devices provides even more capabilities. If you want to learn more about our linear step motor actuators and motion control devices check out our blog for a variety of different articles like this. You can also contact us and talk to one of our on staff expert engineers to answer some of your more specific questions.

See more:https://www.oyostepper.com/