A Control System on the Syringe Pump Based on Arduino for Electrospinning Application

In this research, a control system in the form of a syringe pump has been developed to control the volume and flow rate of a liquid or a solution. The syringe pump is fabricated by controlling the speed and pulse width modulation (PWM) of stepper motors based on the Arduino Uno microcontroller board. The tools used are a stepper motor as a syringe driver, the Arduino Uno as a controller, a four-digit seven-segment display and a keypad matrix as an input interface. The syringe pump works by pushing the injection pump whose speed has been adjusted to the flow rate. The speed of the flow rate and volume are obtained by setting the delay time of the stepper motor using PWM pins from the Arduino Uno. The syringe pump is observed to work in the flow rate range of 0.10–12.00 ml h–1. The system can be applied to medical settings as the control of volume and flow rate of drug fluids as well as with nanofibres using electrospinning technique.


INTRODUCTION
Researchers have been developing syringe pumps with various variations. However, the making of a syringe pump based on Arduino Uno with pulse width modulation technique for electrospinning applications has so far not been carried out. A syringe pump is a device that controls the volume and flow rate of millilitres to microlitres for a certain period with a very high accuracy. Besides for medical purposes, a syringe pump can also be used in the research field, such as nanotechnology in the form of electrospinning machines. [1][2][3][4] The early syringe pump invention involves a simple alarm clock mechanism using the clock coil rotation that turns the screw, which gradually pushes the injection plunger. This use of the syringe pump for administering drugs has been practised for years. The working principle of this system involves the installation of two steel springs to push the syringe plunger at a speed regulated by an alarm clock that works through the pulley system. The technological advancement has allowed the use of a motor as the syringe driving force filled with fluid released through a needle, with the electronic system in this tool used as a controller. The syringe pump consists of a power supply block, a microcontroller (as a controller), a sensor (as a liquid detector using an optocoupler system), a motor (as a driver) and a display. [5][6][7][8] A new electric syringe pump design capable of obtaining less than 10% of error value has previously been reported. 9 The pump design uses a linear tubular actuator, which is a mechanical component that serves as a driver of the injection stem. The effect of heat generated from the stator is also important to note when the system is working. [8][9][10] Previous studies have shown that the syringe pump can work on volumes of 1-50 ml, with an accuracy rate of 1 ml h -1 , indicating that the syringe pump is still not properly used for micro fields or nanotechnology. 9,11 Based on the previous explanation, this study makes reference to the syringe pump design using an Arduino Uno-based stepper motor to regulate the flow rate in the electrospinning application. 10 This research method consists of several steps, namely making syringe pump software and hardware. The hardware is then implemented with the components needed to build the syringe pump with the Arduino Uno as the brain of the system and the stepper motor as a plunger pusher. The flow rate on the syringe pump can be set with a keypad and displayed on the seven-segment display.

ExPERImENTAl
The materials used in the research are the keypad as an input interface of time and flow rate parameters, the Arduino Uno as controller of all systems, stepper motor as screw rod drive or pusher, L293N as the driver of the stepper motor, real-time clock (RTC) as controller time, seven segments with MAX7219 as a display for time and flow rate, and acrylic as a box from the syringe pump. Furthermore, polyvinyl alcohol (PVA) is used as the liquid or solution for this experiment with a concentration of 10 wt%. Each measurement is performed five times, and the average data are used in the experiment. The Arduino Integrated Development Environment (Arduino IDE) is used to program the Arduino Uno by a crossplatform application written in C and C++ languages. It is used to write and upload programs to the Arduino Uno compatible boards, but also, with the help of thirdparty cores, other vendor development boards. Figure 1 shows a block diagram of the syringe pump. In Figure 1, the block diagram of the syringe pump consists of a power supply, a push button, the Arduino Uno, stepper motor, stepper motor driver, keypad, RTC and seven segments, which have their respective functions. A DC voltage source provides the voltage required by the Arduino Uno to work and also supplies voltage to the stepper motor driver. The Arduino will regulate the entire work process of the system or act as the hardware brain by processing the flow rate and the timer values entered through a four-by-four keypad that gives commands to the stepper motor driver. The push button will start the command given after entering the flow rate and timer values; the start function will begin running the machine, the stop function is to stop/pause, and the reset function will reset all programs. The stepper motor driver used in this study is L298N to adjust the motor speed according to the command given by the Arduino, which are the flow rate and timer settings. Seven segments installed in the MAX7219 module will display information about the amount of flow rate and also the timer that has been set. RTC is used to store time data in real-time at the syringe pump. The circuit diagram of the syringe pump based on Arduino is shown in Figure 2. From Figure 2, the system can be explained as the following. First, the Arduino Uno is used as a control circuit for the entire syringe pump system. The Arduino Uno will also process input and output data on each pin. The control is done by activating each pin on the Arduino. The pins work by following the program injected into the Arduino, which is made using Arduino IDE software. In designing this circuit, a four-by-four keypad is used as an interface for input flow rate values, and several other keys are used as the start and stop functions.
Next, the L298N is used as a stepper motor driver, which controls the speed and rotation direction of the stepper motor. In the stepper motor driver circuit, eight IN5401 diodes are used, which has a current of 3 A and a maximum voltage of 100 V, which secure the motor in the event of a current surge caused by induction of motor windings. RTC is a chip capable of running time and calendar functions accurately and can store time data in real-time. RTC can also be used to store hours of information which keeps updating even though the device is not lit. This is because RTC is equipped with batteries that act as suppliers of power to the chip. In this study, the DS 3231 type RTC module was used to improve the accuracy of the timers of the syringe pump. Finally, seven segments are used to display numbers and decimal numbers. In this study, two four-digit seven segments were used. Addressing seven segments with Arduino Uno directly will use a lot of Arduino pins; to overcome this problem, the MAX7219 is used as a driver module of seven segments to facilitate connection to Arduino Uno. One MAX7219 module can be used for two seven-digit seven-segment pieces. 11 The push button functions as a start, stop and reset. When in the normal function, the start button (green) starts the syringe pump when the variable flow rate and timer variables are entered.
The stop (red) button works as a pause and the reset (yellow) button functions to restore the initial function of the syringe pump. When the device is turned on, by pressing the D button on the keypad, the push button start and stop will change functions. The function is used to adjust the position of the injector to start the syringe pump automatically, and useful in facilitating the installation and release of the injection tube in the holder. The start button functions to rewind the injection stem pusher quickly and the stop button serves to advance the injector stem pusher quickly when the D function commands.

Design and Realisation of the Syringe Pump System
In making a syringe pump, the mechanical principle works by converting rotational motion from a stepper motor into a straight motion via the screw iron connected to the motor. The mechanical system greatly influences the success of the syringe pump developed. In the driving section, there are three irons, which are mounted on the bottom with a plain and threaded type. The plain iron used has a diameter of 8 mm and the screw iron used is 8 mm in diameter with a 1 mm thread pitch. Two plain irons are installed on the right and left sides that have been perforated; the iron acts as a rail for propulsion support in the road, and one screw iron is located in the middle of the booster that is directly connected to the stepper motor. The construction of the automatic syringe pump based on Arduino is shown in Figure 3.
The units and labels in Figure 3 refer to the following: 1 = injection tubes, 2 = syringe, 3 = stepper motor, 4 = four-by-four keypad, 5 = seven segments, 6 = injector steams, and 7 = iron rail. The screw iron M8 is not directly inserted into the hole that has been made when printed like the other two irons (see Figure 4); the M8 screw nut insert is placed in the hole following the size of the screw iron used. This screw nut will move (forward/backwards) the drive when the screw is rotating. A flexible coupling is used as a connector between stepper motors with threaded iron. Figure 4 shows the mechanical system of the syringe pump made.  The entire mechanical system of the syringe pump as in Figure 4 is installed inside the top cover of the syringe pump box. Placing the Nema 17 stepper motor requires brackets (number 2 and 3). After the stepper motor is installed, each iron tip is placed on an 8 mm KP08 pillow block bearing (1) as a metal iron holder (6). KP08 is attached to the acrylic using a bolt whose position is adjusted to the position of the iron using flexible coupling and screw iron (4 and 5). The level of precision of the installation of these irons greatly affects the driving process when the syringe pump is run in an automatic function. 12 The initial test is done to find out that every full rotation of the stepper motor will shift the injector pusher as far as 1 mm. At first, the injection is filled with a volume of 3 ml, marking the starting position; then, the pusher is slowly slid until the volume that comes out is 1 ml. The driver can move (forward/backwards) because there is already a simple program uploaded to Arduino Uno to run the driver manually without setting the flow rate and timer values.

The Accuracy of Syringe Pump
The variable set when testing are the values of the flow rate and the timer (when the syringe pump works). The volume amount that should be measured is half the value of the input flow rate for 30 min. Measurements are made three times using two types of measuring cups with a scale of 0.02 ml and 0.5 ml for five times, respectively. The results of the syringe pump test are shown in Figure 5. Testing is done by measuring the final volume that comes out when the syringe pump has stopped working using a measuring cup with the smallest scale of 0.02 ml and 0.5 ml. Based on the results, the error value of the average volume measurement obtained is 4.44%, and the accuracy rate of the syringe pump is 95.56%. 5 It can be concluded that the syringe pump results of this study have high accuracy and are safe to use with error values less than 5%, because the error tolerance value of the syringe pump based on laboratory tests following the requirements for safety using syringe pump is ±5%. 1,13,14

The linearity of the Syringe Pump
Linearity testing of the syringe pump is done by measuring the volume of fluid coming out of the injection every 5 min for 1 h at flow rates of 0.6 ml h -1 , 6 ml h -1 and 12 ml h -1 . The selection of the flow rate variable is done because the measuring cup used as a means of verifying the volume of fluid coming out has the smallest scale of 0.1 ml. The linearity of the graph for the flow rate of 0.6 ml h -1 is shown in Figure 6.
Based on the linear equation, the average volume is R = 0.99458, as in Figure 6(a). Figure 6(b), meanwhile, indicates that R = 0.99807. This value is very close to 1, indicating that the test results for the 1-12 ml h -1 range have a high linearity level; the volume of the test results with reference volume is also higher because the value of deviation in volume is relatively very low. The error value in the form of the coefficient of variation (CV) for the flow rate of 12 ml h -1 is 4.83%. 15-17 Figure 6: The linearity testing of the syringe pump for (a) 0.6 ml h -1 , (b) 6 ml h -1 , and (c) 12 ml h -1 .

CONClUSION
Based on these results, the implementation and analysis of the test data on the automatic syringe pump based on Arduino Uno have been successfully done, and the system has been found to work well. It is concluded that the syringe pump box made of 10 mm acrylic is rectangular. The syringe pump can work in a volume range of 0.10-12.00 ml with the lowest flow rate resolution of 0.10 ml h -1 , and with an error value of less than 5%. The system is equipped with seven segments as the display and a four-by-four keypad as input values for the flow rates and times. The accuracy of the automatic syringe pump assembled is 95.56%.