Controlling of two stepper motors mounted on the microscope instrument for x-y direction using
an Arduino Uno board and stepper motor driver. Precise positioning of Laser through the
microscope to focus on the miniature sensor.
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
Controlling and optimization of 3d optical stage for precise movement
1. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
1 | P a g e
Department of Electrical Engineering and Information
Technology
Chair of Measurement and Sensor Technology
“Controlling and optimization of 3D optical stage for precise
movement”
Project Lab Embedded Systems
Group: 13
Members: AvadhutKhade
Vinay Venu
Yash Inaniya
Supervisor: Ammar Al-Hamry
Date: 24/6/2017
2. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
2 | P a g e
Contents
Abstract ……………………………………………………………………………………… 3
List of figures………………………………………………………………………………… 4
List of tables ………………………………………………………………………………………………………………………………….. 5
1. Introduction……………………………………………………………………………… 6
2. Members Responsibility………………………………………………………………… 6
3. Project Description……………………………………………………………………… 7
3.1 Definition……………………………………………………………………….. 7
3.2 Details…………………………………………………………………………… 7
3.3 Block Diagram………………………………………………………………….. 7
3.4 Circuit Diagram…………………………………………………………………. 8
4. Components Required…………………………………………………………………... 9
4.1 Specification and Requirement…………………………………………………. 9
4.1.1 Arduino Uno………………………………………………………………… 9
4.1.2 Keyes A4988 stepper motor driver…………………………………………..11
4.1.3 Stepper motor ………………………………………………………………..13
5. Project Implementation…………………………………………………………………..15
5.1 Software …………………………………………………………………………15
5.1.1 Arduino Uno (Code Generation)……………………………………………. 15
5.1.2 Tera Term (Serial Communication )…………………………………………17
5.1.3 Flow chart…………………………………………………………………… 19
5.2 Hardware…………………………………………………………………………21
5.2.1 Actual connection Diagram…………………………………………………..21
5.2.2 Set Max Current……...………………………………………………………22
6. Applications………………………………………………………………………………23
7. Conclusion………………………………………………………………………………..24
8. Description of files………………………………………………………………………..24
9. References………………………………………………………………………………...25
3. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
3 | P a g e
List of figures
1. Block diagram of design implementation
2. Arduino and A4988 driver connections to stepper motor
3. Arduino board layout
4. A4988 Keyes Stepper Motor Driver
5. Schematic diagram of the A4988 stepper motor driver carrier
6. Cross-sectional view of Stepper Motor
7. Bipolar Stepper motor
8. Project stepper motor interfaced using RS232 serial communication
9. Arduino IDE
10. Tera Term setting to select serial communication
11. Motor selection from terminal
12. Flow chart of software implementation
13. Actual circuit connection
14. Controlling of two stepper motors with 1 Arduino and 2 A4988 stepper driver
15. CNC miller
16. CNC Pen Plotter
4. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
4 | P a g e
List of Tables
1. Pin description of Arduino Uno
2. Operating voltage range of A4988
5. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
5 | P a g e
Abstract
Stepper motor has been quite popular in Industrial Automation and Robotics. It’s simple working
principle and operation has made its usage inevitable in areas relating to control and positioning.
Computer controlled stepper motor are in high demand as they provide precise positioning and
thus lay down the ground for our project where we implement control of stepper motor using
Arduino Uno.
6. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
6 | P a g e
1.Introduction
In today’s Industrial automation and robotics, whenever we want to control the position of an
instrument according to our requirements, stepper motor is the easiest solution available. Stepper
motor, a DC electric motor rotates in the form of number of equal steps. The motor position can
be controlled and be hold at particular step which helps us to get the precise position we want to
achieve. Due to its advantage of precise positioning, speed control and low speed torque, stepper
motor has found its usage in several application like 3D Printer, Camera Platforms and X, Y
plotters.
With the advent of Arduino microcontroller boards, it is easy to control the stepper motor in
desired steps. Stepper motor has been quite popular in robotics due to their ability to move in
steps .The advantage of these motors is that they can be made to response using digital input
which in turn makes it easy to control and less costly.
2. Members Responsibilities
Members Responsibilities
Avadhut Khade • Circuit designing
• Hardware components research
• RS232 configuration
• Presentation
Vinay Venu • Software Implementation
• Source code development
• Stepper motor Analysis
• Presentation
Yash Inaniya • Circuit Designing
• Debugging/Source code optimization
• Signal tapping
• Report
7. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
7 | P a g e
3. Project Description
3.1 Definition
Controlling of two stepper motors mounted on the microscope instrument for x-y direction using
an Arduino Uno board and stepper motor driver. Precise positioning of Laser through the
microscope to focus on the miniature sensor.
3.2 Details
As the project requires precise focus of the laser beam, it can be realized by controlling of the
stepper motor mounted on the microscope instrument through which the laser is passing. The
simplest way to do that is with Arduino Uno. Arduino Uno has inbuilt library for stepper motor
and thus can be easily applied for controlling stepper motor. The output of stepper motor is a
RS232 serial communication cable which is interfaced with the Keyes A4988 stepper driver
board. The stepper driver board is the central communication device here and will vary the
voltage to keep a constant current across the stepper motor. The driver also provides the required
step resolutions in five different types and thus can be suited for different positioning.
The software part is implemented through Arduino which also sends signal to the driver as to
how many steps the motor should run. The value of the number of steps is input through the
terminal and accordingly the motor is selected for either X positioning or Y positioning.
3.3 Block Diagram
Fig 1: Block diagram of design implementation
Keyes A4988
Stepper Motor
Driver
Bipolar
Stepper Motor
Arduino Uno
Board
Power supply Computer or
laptopStepper
Motor
8. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
8 | P a g e
3.4 Circuit Diagram
Fig 2: Arduino and A4988 driver connections to stepper motor
The connection of the circuit on the bread board is easy and straight forward. As the stepper
motor here is bipolar, therefore the 2 coils are connected to the A4988 Keyes stepper board
as marked in the figure to the pins 2B , 2A , 1A, 1B .
Other connection are listed below :
Arduino Uno to Keyes board :
• DIR – D8
• STEP – D9
• GND - Arduino GND
• GND - Motor power GND
• VMOT - Motor power
• A4988/DRV8825 microstep control
o MS1/MODE0 - D10
▪ MS2/MODE1 - D11
▪ MS3/MODE2 - D12
• DRV8834 microstep control
▪ M0 - D10
▪ M1 - D11
• ENABLE - D13(To check if coils are active)
A 100 µf capacitor is connected ground and voltage for motor (Vmot) to protect the driver
from voltage spikes.
9. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
9 | P a g e
4. Components Required
• Arduino Uno board
• 2 Bipolar Stepper motor
• Keyes A4988 Stepper Motor Driver
• 100 µf Capacitor
• 12 DC Power supply
• Connecting / Hook-up / Jump wires
• A breadboard
4.1 Component specification
The technical specification of the components used is specified here :
4.1.1 Arduino Uno
Arduino is an open-source prototyping platform based on an easy-to-use hardware and
software.Arduino UNO (Fig 3) is a microcontroller board based on ATMega328P. It has 14
digital input/output pins (6 can be used as PWM outputs) and 6 analog inputs (description in
Table). The 16 MHz quartz crystal controls the timing and clock of the UNO board. The
communications to the UNO board is through the USB cable which powers the board as well.
A separate power jack is provided for remote applications. The operating voltage of the UNO
board is 5V. It has 2 KB SRAM and 32 KB Flash memory. The board can be programmed
using Arduino IDE software and the hex code can directly be flashed to the board without
any external programming devices
Fig 3: Arduino Uno Board
10. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
10 | P a g e
Details of Arduino Pins
S No Name of the Pin Function of Pin
1.
USB Plug
Serial communication interface between Arduino and
PC
2. Analog reference pin
(AREF)
Analog reference pin that decides the reference voltage
for ADC
3. Digital ground Ground for digital inputs.
4.
Digital I/O Pins (2-13)
Pins to read and write digital data. Total of 12 pins,
where 6 pins support PWM
5. Serial Out Serial Communication Output Port
6. Serial In (Rx) Serial Communication Input Port
7. Reset Button Hardware Reset. The button with the highest priority.
8.
In-Circuit Serial
Programmer (ICSP)
The ICSP pin has two purposes:
(a) Boot-loading
(b) SPI communication
Boot-loader is a program which runs prior to the start
of Arduino IDE. SPI is a serial synchronous data
protocol used by the Atmega328 microcontroller to
communicate with peripheral devices
9.
Atmega328 microcontroller
Processor manufactured by Atmel, the main processor
of the Arduino UNO board
10.
Analog pins (0-5)
Analog input pins. These support digital input/output
as well.
11. Voltage in (Vin) Input voltage
12. Ground pins Voltage reference ground
13.
5V power pin
5V power pin is used for giving 5V to Arduino Uno
Board
11. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
11 | P a g e
Table 1 : Pin description of Arduino Uno
4.1.2 Keyes A4988 stepper motor driver
❖ The A4988 is a microstepping driver for controlling bipolar stepper motors which has built-
in translator for easy operation. This means that we can control the stepper motor with just 2
pins from our controller, or one for controlling the rotation direction and the other for
controlling the steps.
❖ The Driver provides five different step resolutions: full-step, haft-step, quarter-step, eight-
step and sixteenth-step. Also, it has a potentiometer for adjusting the current output, over-
temperature thermal shutdown and crossover-current protection.
Fig 4: A4988 Keyes Stepper Motor Driver
❖ Its logic voltage is from 3 to 5.5 V and the maximum current per phase is 2A if good addition
cooling is provided or 1A continuous current per phase without heat sink or cooling
❖ The resolution (step size) selector inputs (MS1, MS2, and MS3) enable selection from the
five step resolutions according to the table below. MS1 and MS3 have internal 100kΩ pull-
down resistors and MS2 has an internal 50kΩ pull-down resistor, so leaving these three
microstep selection pins disconnected results in full-step mode. For the microstep modes to
function correctly, the current limit must be set low enough (see below) so that current
14.
3.3V power pin
3.3V inputs to Arduino Uno. Some peripherals require
to be operated below 3.6V. Also used to power
external shields.
15.
Reset pin
The function of reset pin is same as the Reset button. It
is an alternative way to reset Arduino Uno.
16. External power supply pin 9V-12V external DC supply
12. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
12 | P a g e
limiting gets engaged. Otherwise, the intermediate current levels will not be correctly
maintained, and the motor will skip microsteps
Table 2: Operating voltage range of A4988
❖ One stepper driver can help us control only one stepper motor at up to 2A output current at
the coil. The supply provided to the driver should have appropriate decoupling capacitors
close to the board and they must deliver expected current.
❖ The A4988 driver IC has a maximum current rating of 2 A per coil, but the actual current you
can deliver depends on how well you can keep the IC cool. The carrier’s printed circuit board
is designed to draw heat out of the IC, but to supply more than approximately 1 A per coil, a
heat sink or other cooling method is required.
❖ Each pulse to the STEP input corresponds to one microstep of the stepper motor in the
direction selected by the DIR pin. The important aspect here to consider is that the STEP and
DIR pins are not pulled to any voltage internally, so we should not leave either of these pins
floating in our application. For rotation injust a single direction, we can tie DIR directly to
VCC or GND. The chip has three different inputs for controlling its many power
states: RST, SLP, and EN.
❖ For details about these power states, it is recommended to refer the datasheet. Also,
the RST pin is floating ; if we are not using the pin, we can connect it to the adjacent SLP pin
on the PCB to bring it high and enable the board.
13. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
13 | P a g e
Schematic diagram
Fig 5: Schematic diagram of the A4988 stepper motor driver carrier
4.1.3Stepper motor
❖ A stepper motor is an electromechanical device it converts electrical power into mechanical
power. Also, it is a brushless, synchronous electric motor that can divide a full rotation into
an expansive number of steps. The motor’s position can be controlled accurately without any
feedback mechanism, as long as the motor is carefully sized to the application. Stepper
motors are similar to switched reluctance motors.
❖ The stepper motor uses the theory of operation for magnets to make the motor shaft turn a
precise distance when a pulse of electricity is provided. The stator has eight poles, and the
rotor has six poles. The rotor will require 24 pulses of electricity to move the 24 steps to
make one complete revolution. Another way to say this is that the rotor will move precisely
15° for each pulse of electricity that the motor receives.
14. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
14 | P a g e
Fig 6: Cross-sectional view of Stepper Motor
➢ There are two types of stepper motors :
▪ Unipolar &Bipolar Stepper motors
In our project, we are using Bipolar stepper motors and with bipolar stepper motors there
is only a single winding per phase. The driving circuit needs to be more complicated
to reverse the magnetic pole, this is done to reverse the current in the winding. This is
done with a H-bridge arrangement, however there are several driver chips that can be
purchased to make this a simpler task.Unlike the unipolar stepper motor, the bipolar
stepper motor has two leads per phase, neither of which are common. Static friction
effects do happen with a H-bridge with certain drive topologies, however this can be
reduced with dithering the stepper motor signal at a higher frequency.
Fig 7: Bipolar Stepper motor
15. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
15 | P a g e
Fig 8: Project stepper motor interfaced using RS232 serial communication
5. Project implementation
5.1 Software Implementation
5.1.1 ArduinoUno
❖ The software part is implemented through Arduino Uno. To run Arduino , we can either use
online Arduino IDE and save our project on cloud storage or we can download the free
Arduino compiler .
❖ On the Arduino board, we are just interested in some of the pins as we are giving a digital
input and therefore we don’t need to work with the analog pins
❖ The pins on the Arduino can be configured as either inputs or output
❖ Arduino (Atmega) pins default to inputs, so they don't need to be explicitly declared as inputs
with pinMode() when you're using them as inputs
❖ The Arduino file contains two partwhere we have to write our code:
➢ Setup() function - The setup() function is called when a sketch starts. Use it to initialize
variables, pin modes, start using libraries, etc. The setup function will only run once, after
each powerup or reset of the Arduino board.
➢ Loop() function - After creating a setup() function, which initializes and sets the initial
values, the loop() function does precisely what its name suggests, and loops
consecutively, allowing your program to change and respond. Use it to actively control
the Arduino board.
16. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
16 | P a g e
Fig 9: Arduino IDE
❖ First we have to define the Step and Direction pins. In our case they are the pins number 4
and 2 for the first stepper motor and 10 and 8 for the second motor on the Arduino Board and
they are named stepPin and dirPin and the setup section we have to define them as an
outputs.
• Some of the basic instruction to be used for setup are :
➢ pinMode() - Configures the specified pin to behave either as an input or an output .
Syntax is pinMode(pin, mode)
➢ Begin () -Sets the data rate in bits per second (baud) for serial data transmission. For
communicating with the computer, use one of these rates: 300, 600, 1200, 2400, 4800,
9600, 14400, 19200, 28800, 38400, 57600, or 115200. You can, however, specify other
rates - for example, to communicate over pins 0 and 1 with a component that requires a
particular baud rate.Syntax -Serial.begin(speed)
➢ Serial.setTimeout() - It sets the maximum milliseconds to wait for serial data when
using Serial.readBytesUntil(), Serial.readBytes(), Serial.parseInt() or Serial.parseFloat().
It defaults to 1000 milliseconds
➢ Also, we have used Enable signal here for both the stepper motors , so it is initialized at
the beginning of the code and in the setup is connected to pin 6 and 12 respectively .
17. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
17 | P a g e
❖ Basic Instruction used for main body loop are :
➢ Println() - Prints data to the serial port as human-readable ASCII text. This command can
take many forms. Numbers are printed using an ASCII character for each digit. Floats are
similarly printed as ASCII digits, defaulting to two decimal places. Bytes are sent as a
single character. Characters and strings are sent as is .Syntax -Serial.printin(val)
➢ digitalWrite()- Write a HIGH or a LOW value to a digital pin.If the pin has been
configured as an OUTPUT with pinMode(), its voltage will be set to the corresponding
value: 5V (or 3.3V on 3.3V boards) for HIGH, 0V (ground) for LOW.If the pin is
configured as an INPUT, digitalWrite() will enable (HIGH) or disable (LOW) the
internal pullup on the input pin. It is recommended to set the pinMode()
to INPUT_PULLUP to enable the internal pull-up resistor.
➢ digitalRead() - Reads the value from a specified digital pin, either HIGH or LOW .
❖ In the loop section first we will set the Direction pin on high state that will enable the motor
to move in a particular direction. Now using this for loop we will make the motor make one
full cycle rotation. As the driver is set on Full Step Mode and our Stepper Motor has 1.8
degrees step angle, or 200 steps, we need to send 200 pulses into the Step Pin to make one
full cycle rotation. So the for loop will have 200 iterations and each time it will set the Step
pin on high and then low state for making the pulses. Between each digitalWrite we need add
some delay from which the speed of the motor will depend.
❖ After this full cycle rotation we will make one second delay, then change the direction of
rotation by setting the dirPin on a low state and now make 2 full cycle rotations with this
loop of 400 iterations. At the end there is one more second delay. Now let’s upload the code
and see how it will work.
❖ For serial communication , there are different software available and in our project we have
used “Tera Term” software as terminal to give input value to the stepper motor .
5.1.2 Tera Term Software
• Tera Term (rarely TeraTerm) is an open-source, free, software implemented, terminal
emulator (communications) program. It emulates different types of computer terminals, from
DEC VT100 to DEC VT382
• We should see a “TeraTerm: New connection” pop-up within the program as soon as you
open Tera Term icon after installing it. Here, you can select which serial port we’d like to
open up. Select the “Serial ” radio button. Then select your port from the drop-down menu.If
the Ardunio Uno is already connected to the computer , it will show in the list. (If this
window doesn’t open when you start TeraTerm, you can get here by going to **File > New
connection…“.)
18. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
18 | P a g e
Fig 10: Tera Term setting to select serial communication
• Since we are controlling 2 stepper motors with one Arduino, we can use one for X-axis and
the second motor for Y-axis . As soon as we select the Arduino Uno in port list , the terminal
will start and it will give us the option of selection of motor ,i.e. which motor you want to
select first .
• After selecting the motor , we can select in which direction we want it to rotate . For that we
have two options :- Clockwise and Anti-Clockwise . Select the appropriate one .
Fig 11: Motor selection from terminal
• The terminal is our communication with the motors . The interfacing of the terminal with the
motors is already done in the arduinocode .
19. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
19 | P a g e
• The stepper motor is connected directly to a shaft and with rotation in the motor makes the
shaft position goes up and down. Select the appropriate distance you want the shaft to move
in millimeters.
• If you want to get really fast with TeraTerm, some of these shortcuts really help :
• ALT+N: Connects to a new serial port.
• ALT+I: Disconnects from the current port.
• ALT+V: Pastes text from clipboard to the serial port (not CTRL+V).
• ALT+C: Copy selected text into clipboard (not CTRL+C).
• CTRL+TAB: Switch between two TeraTerm windows
5.1.3 Flow Chart
• The software code is based on the following flow chart :
➢ As stated in the tera term procedure, we have to first initialize the stepper motors using
the terminal and then proceed with the selection of motors
➢ After selecting the motor we have to select the axis, thus giving a direct control of the
position.
➢ With the selection of axis, we have to also select the parameters for movement and
direction.
➢ Next step is to validate if the selection parameters are correctly chosen or not.
➢ If yes, then calculate step for one revolution and particular movement which will in turn
give us the distance till which the shaft is going to move upwards or downwards
➢ If the input parameters are not valid, then display a message on the terminal stating
invalid input.
➢ If everything is connected properly and the parameters are chosen correctly, we will
generate PWM for the stepper motor and thus successfully position our shaft with the
rotation of the stepper motor
➢ We have implemented only for 2 axis X and Y axis . If we have a third motor , we can
have a full 3 D controlling and thus can be used for further application .
20. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
20 | P a g e
Fig 12: Flow chart of software implementation
21. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
21 | P a g e
5.2 Hardware Implementation
5.2.1 Connection
Fig 13: Actual circuit connection
• As we can see in the figure above, our main components are Arduino, stepper motor , jumper
wires , bread board , Keyes A4988 stepper motor driver and DC 12V power supply.
• For connecting the components refer to fig 2. showing the circuit diagram with connection.
• Along with that we have connected ‘Enable’ pin for both the motors.
• Also, we have shorted MS1 and MS2 pins.
• In the fig. 13, it is only shown the connection for one stepper motor. As we are controlling 2
stepper motors, we have to use two stepper driver and provide the same connection to the
second driver as is done with the first driver.
22. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
22 | P a g e
• Set Max Current
❖ The max current is set via the potentiometer on board. Turn it while measuring voltage at the
pass through next to it. The formula is V = I5R where I=max current, R=current sense
resistor installed onboard
For Keyes board, R=0.1 and V = 0.5 * max current(A). For example, for 1A you will set it to
0.5V.
Fig 14: Controlling of two stepper motors with 1 Arduino and 2 A4988 stepper driver
23. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
23 | P a g e
6. Application
Stepper motor controlling helps to implement in mechanical automation for positioning and
movement of machines controlled by computers or electrical devices .
It has found its usage in several application especially 3D printer , CNC Mill conversion , Pen
Plotter . Here we have mentioned how our project can be further improvised and adapted to
develop further application :
As the current implemented model is controlling two axis, that is X-axis and Y-axis. It can be
upgraded to support 3rd Axis. Currently the movement of axis input is provided with millimeter
yet it can also be upgraded to accept micrometer input. The reason for providing input in
millimeter is user/operator can clearly observer the change. So scope of improving the resolution
is simple and can be done just by modifying the equation to calculate steps. Once 3D
implementation of the stage is complete, the same system can be used for drawing a shapes or
alphabet etc. With the replacement of one stepper motor with an implementation of servo motor
it would allow the system to behave as a CNC miller or a CNC machine. The upgradation of the
firmware or an application written to handle this three motor would suffice the software
requirement. wherein still the hardware requirement need to be met. Hardware like servo motor
which is assembled to the stage, pen plotter or PCB mill with certain supportable arduino shields
are required
Fig 15: CNC miller Fig 16: CNC Pen Plotter
24. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
24 | P a g e
7. Conclusion
Stepper motor advantage of Precise positioning and repeat-ability of movement have made its
presence in different automation machines. Usually good stepper motors have an accuracy of 3–
5% of a step and this error is non-cumulative from one step to the next. The controlling of
stepper motor done with Arduino as implemented in our project shows how easily the stepper
motor response to digital input and thus can be used for Robotics. Arduino as stated is an open
source platform and is easy to program and modify the code, and thus is suitable for controlling
motors . The only disadvantage of stepper motor is that they cannot run at high speed and thus
restricts it utilization in few applications.
8. Description of files
File name Description
1. Project report.docx Project description
2. Project presentation.pptx Project design and implementation
3.Arduino.ino Arduino program
4. Source files.rar Source code for project
25. TechnischeUniversität Chemnitz
Chair of Measurement and Sensor Technology
Prof. Dr.-Ing. OlfaKanoun
25 | P a g e
8. References
• [1]" A4988 Driver and Arduino ", Itead.cc, 2017. [Online]. Available:
https://github.com/laurb9/StepperDriver. [Accessed: 2- Jun- 2017].
• [2]" How to use A4988 to control stepper motor ", Itead.cc, 2017. [Online]. Available:
http://howtomechatronics.com/tutorials/arduino/how-to-control-stepper-motor-with-a4988-
driver-and-arduino/. [Accessed: 27- May- 2017]
• [3]" A4988 Specification and purchase ", Itead.cc, 2017. [Online]. Available:
https://www.pololu.com/product/1182 [Accessed: 21- Jun- 2017]
• [4]" Bipolar and Unipolar Stepper Motor", Itead.cc, 2017. [Online]. Available:
https://www.circuitspecialists.com/blog/unipolar-stepper-motor-vs-bipolar-stepper-motors/
[Accessed: 5- May- 2017]
• [5]" TeraTerm ", Itead.cc, 2017. [Online]. Available:
https://learn.sparkfun.com/tutorials/terminal-basics/tera-term-windows [Accessed: 20- Jun-
2017]
• [6]" Stepper motor using arduino ", Itead.cc, 2017. [Online]. Available:
http://www.instructables.com/id/Drive-a-Stepper-Motor-with-an-Arduino-and-a-A4988-/
[Accessed: 20- Apr- 2017]
• [7]" Arduino pin out ", Itead.cc, 2017. [Online]. Available:
http://www.electroschematics.com/7958/arduino-uno-pinout/ [Accessed: 13- Apr- 2017]