ISSN ONLINE(2278-8875) PRINT (2320-3765)
Prithviraj Shetti1, Shital S. Bhosale2, Amrut Ubare3
|
Related article at Pubmed, Scholar Google |
Visit for more related articles at International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering
Now a day’s many industrial applications demand remote speed control and feedback monitoring of DC motors. Also speed control has to be accurate enough for many practical purposes. In present paper we employ GSM technology for sending control commands and monitoring speed in feedback. The desired speed control is achieved by using built in PWM function of Arduino and PID control scheme. GSM interfacing and PID control scheme is implemented with the help of popular open source Arduino board. PID scheme is implemented in form of program and with more emphasis on Proportional control part of PID. This in actual forms advantage part of project since proportional part is easy to implement and handle.
Keywords |
Arduino board, PID control, GSM modem, AT commands, Proportional control, IR based sensor for speed monitoring. |
I.INTRODUCTION |
Since their invent motors have now become inseparable from industrial applications. With advent in machinery there is more and more demand on power and accuracy in speed control of motors. Furthermore many applications demand remote speed monitoring and control. With this in view we attempt to implement remote speed monitoring and control with help of Arduino board, GSM modem and PID control scheme. The GSM platform is used because it facilitates remote operation and provides reliable message delivery system. Arduino board is an open source general purpose microcontroller platform and is used for analog/digital sensing and actuation. Here it senses current speed, communicates with GSM modem, implements PID control logic and controls the speed of motor using PWM signal. It is also used to send back current speed value of motor in form of SMS when desired speed is achieved. The required speed value is set by using PID control scheme. The PID control logic is used for its popularity, accuracy and ease of use. The PID control logic is implemented in program and necessary change in speed is achieved by generating PWM signal which is applied to motor driver IC L293D. The current speed of motor is monitored by using IR sensor arrangement working in conjunction with Arduino board. |
II. RELATED WORK |
Speed control of DC motor is mainstay of Industrial and research laboratories. The way speed control is implemented depends on size of motor and amount of precision required. In case of precision geared motors, the favoured method is of PWM based control. In this method supply to the motor is changed by varying duty cycle of PWM signal. As Duty cycle changes from 0% to 100%, the PWM output signal value at Arduino pin changes from 0 to 255. This changes the supply to the motor from 0 to 12volts and hence its speed. There numerous attempts which use such a scheme. [1] Then there are attempts of PC based speed control and monitoring. Here a PC based application is used for serial communication with microcontroller in order to send control commands and receive messages that are displayed in user interface.[2],[3] Also there is an attempt of GSM based simple remote ON-OFF control of remote appliances. In such case GSM platform is used with microcontroller to send control commands. When controller receives authentic control command as ON/OFF in the form of SMS, it generates necessary control signal to switch motor ON/OFF.[4] With added complexity there is an attempt of speed control based on GSM technology. Here along with normal ON/OFF control, speed control commands are sent and the microcontroller processes such commands to bring about change in speed and position of motor.[5] PID control scheme came into picture with demand on more accurate speed control. As such there are attempts of speed control using PID control logic. Here current speed of motor is monitored and provided as process variable to the PID system. The other input to PID system being setpoint. Here setpoint refers to desired speed. The difference between current speed and setpoint is considered error. The PID system then generates Output signal which attempts to minimise error to zero. This actions follows on a continuous basis unless current speed of motor becomes equal to desired speed or say setpoint.[6],[7] The PID control scheme is combination of Proportional, Integral and derivative control. Mathematical form is shown in Fig 1. |
Here error=setpoint-current speed, Kp = proportional gain, K i= Integral gain and Kd = differential gain. |
The proportional part is related to amount of difference between setpoint and current speed. The differential part is related with how fast we achieve the desired value. And Integral part related to time span for achievement of desired value. What then remains is combination of all or some of above features to have a remote, flexible and accurate system. |
III. PROPOSED SYSTEM |
In our project we combine all above mentioned features to achieve a single flexible and accurate speed control system. Fig 2 shows Block Diagram of proposed system. Here Arduino board works as main processing unit. Arduino helps in communication with GSM modem and sending/receiving SMS. IR sensor pair is used to monitor the speed of DC motor. At start the user sends an SMS as a demand for required speed. Arduino receives and retrieves SMS for desired speed value. The desired value of speed is given as setpoint to PID control logic whose other input is current speed of motor as sensed by IR pair and computed by Arduino. PID control logic then gives an Output so as make error zero. Over this Arduino generates proportional PWM signal which is given to motor driver IC L293D. The H-bridge motor driver then carries out change in speed. But the error does not reduce to zero immediately. Thus PID action continues until error becomes zero. That is, when required speed is achieved. In our system when required speed is achieved a notification is sent to the user by SMS. The time taken by system to achieve desired speed depends on gain factors as shown in Fig 1 for PID equation. These are referred to as tuning parameters. With trial and error we can set their value for fast and accurate achievement of desired speed. As desired speed is achieved Arduino sends a notification to the user via GSM modem. |
IV.HARDWARE SETUP |
As shown in Fig 2 there are various parts viz. Arduino board, Motor driver IC L293D, GSM SIM300 modem, IR pair, Motor, User mobile and Power supply. Fig 3 shows circuit setup in Fritzing.[8] Fig 4 shows the actual setup of experimentation in laboratory. A separate 12 volt, 1Ampere power supply is used for motor. As mentioned above, as the PWM signal changes from 0 to 255, the supply to motor changes from 0 to 12 volt causing speed change. |
Arduino: Arduino with Atmega328 chip is used. This is a popular open source prototyping platform. There 2 hardware interrupts, about 11 digital pins and 5 analog pins along with +5volt and Gnd. Pins 3 and 4 are used as motor driver and are connected to pins 2 and 7 respectively of IC L293D. The output of IR sensor pair is given to int0 of Arduino.Pin5 which PWM capability is connected to Pin1 of L293D. It is used to change motor speed. |
H-bridge driver: The H-bridge motor driver IC is L293D. Motor is connected between Pins 3 and 6 of L293D. A separate supply for running motor is given to Pin8 of IC. +5volt operating supply at Pin16 and Pins 4, 5 are Ground. |
GSM SIM300 modem: GSM SIM-300 modem is interfaced with Arduino. Tx of GSM goes to Pin6 and Rx of GSM goes to Pin7 of Arduino. Gnd goes to Gnd. Pins 6, 7 are used to form a Software Serial port. This works same as Hardware serial and leaves a spare port for debugging. The need 12volt, 1A supply which is provided with the help of a Adapter. |
IR sensor pair: IR sensor pair consists of simple IR LED and IR photodiode. The signal at junction of IR photodiode and 10K resistor is used as interrupt for Arduino to keep track of current speed of motor. |
Motor: Motor used is a 12volt, 1000 rpm rated motor. Rated motor is used to debug proper functioning of our system. |
V. SOFTWARE DESIGN |
The program is written in C++ using Arduino IDE. The Program structure is broadly divided into following parts |
1. Communicating with GSM modem |
2. Reading new incoming SMS from Modem |
3. Implementing PID control |
4. Finding current RPM of motor |
5. Displaying results to Screen |
6. Send feedback SMS to user when desired speed is set. |
Fig 5 shows algorithm of program flow. |
VI. RESULTS |
Fig 6, 7, 8 are screen shots of Arduino serial monitor during experiment. The entire image of serial monitor is scaled so as to fit with zoomed view. Here results are shown for user requested value of 666 RPM. Fig 6 shows current speed of motor and error calculated by Arduino. Fig 7 shows calculated PIDterm which is sum of P+I+D and corresponding PID output. And finally fig 8 shows the PWM proportional to PID Output. It is clearly seen that when current speed is not equal to required speed, the proportional term of PID acts on Feedback Output and new Output is computed which tends to restore the current RPM to required value. Here though the output does not sharply reduce to zero, it is close enough to zero for many practical purposes. For example as seen an error of 0.03 is quite permissible. As seen during implementation of PID control logic, the use of Integral and Differential term seemed unnecessary. The control logic is therefore implemented with proportional control only. And Integral and Differential terms are reduced to zero. |
Combining all images we see that speed catches to near about 666 RPM and output from PID logic reduces to almost about 0.03 so that PWM signal is generated which is just enough to maintain speed at 666 RPM. |
VII. CONCLUSION |
The Control logic is implemented here using proportional term only with fairly good results. This is true in sense that PID control logic must be implemented as per requirement. If Proportional control alone gives good results then using Integral and Differential terms becomes unnecessary as demonstrated here. The system thus becomes an easy to use and accurate tool to precisely control the speed of motor remotely by using SMS mode. As mentioned above error does not reduce to zero completely but is fairly small to be considered zero for all practical purposes. As such in many applications Speed in RPM of 600 and 598 can be treated one and same. |
References |
|