Syamsudduha Syahrorini (1), Mohammad Akmaludin (2), Mohammad Syahrul Mubarok (3), Adriana Anteng Anggorowati (4)
Design and optimization of PID controller for Arduino Uno-based DC motor with encoder feedback and signal conditioning using LM324 op-amp. The method used is Ziegler–Nichols (ZN) to obtain the initial parameters Kp, Ki, and Kd from the measurement of ultimate gain (Ku) and oscillation period (Pu). The plant model uses a digital implementation of a DC motor including anti-windup, first-order filtered derivatives, and PWM voltage limiting. The test data in the form of step response, disturbance rejection, and sensitivity to noise are analyzed using rise time, overshoot, settling time, IAE, and ISE indicators. The analysis results of Ku≈11.3 and Pu≈0.3 s produce Kp≈6.80, Ki≈45.31, Kd≈0.25, with fast response and acceptable overshoot; fine-tuning reduces oscillation and accelerates steady-state time. The conclusion is that the LM324 encoder improves feedback accuracy, while ZN is effective as a starting point for tuning for stable and robust performance.
Highlights:
Accurate tuning using Ziegler–Nichols method provides effective initial PID parameters.
LM324 signal conditioning enhances encoder feedback precision.
Optimized response achieves fast rise time with minimal overshoot and stable steady-state.
Keywords: PID, Ziegler–Nichols, motor DC, encoder, LM324
[1] M. M. Maung, M. M. Latt, and C. M. Nwe, “DC Motor Angular Position Control using PID Controller with Friction Compensation,” Int. J. Sci. Res. Publ., vol. 8, no. 11, 2018, doi: 10.29322/ijsrp.8.11.2018.p8321.
[2] M. Putera and R. Hidayat, “Kendali Kecepatan Motor Dc Menggunakan,” vol. 7, no. 1, pp. 50–56, 2022.
[3] S. Chen, “Study on load disturbance rejection of PID control in DC motor speed regulation systems,” Adv. Eng. Innov., vol. 16, no. 5, pp. 118–122, 2025, doi: 10.54254/2977-3903/2025.23523.
[4] R. Bitriá and J. Palacín, “Optimal PID Control of a Brushed DC Motor with an Embedded Low-Cost Magnetic Quadrature Encoder for Improved Step Overshoot and Undershoot Responses in a Mobile Robot Application,” Sensors, vol. 22, no. 20, 2022, doi: 10.3390/s22207817.
[5] R. Rikwan and A. Ma’arif, “DC Motor Rotary Speed Control with Arduino UNO Based PID Control,” Control Syst. Optim. Lett., vol. 1, no. 1, pp. 17–31, 2023, doi: 10.59247/csol.v1i1.6.
[6] B. D. Ushofa, L. Anifah, I. G. P. A. Buditjahjanto, and Endryansyah, “Sistem Kendali Kecepatan Putaran Motor DC pada Conveyor,” J. Tek. Elektro, vol. 11, no. 2, pp. 332–342, 2022.
[7] X. Han, “Comparative study on PID for DC motor speed regulation,” MATEC Web Conf., vol. 404, p. 02003, 2024, doi: 10.1051/matecconf/202440402003.
[8] A. Maarif and N. R. Setiawan, “Control of dc motor using integral state feedback and comparison with pid: Simulation and arduino implementation,” J. Robot. Control, vol. 2, no. 5, pp. 456–461, 2021, doi: 10.18196/jrc.25122.
[9] G. Saravanan, C. Pazhanimuthu, and P. Naveen, “Performance improvement of DC motor control system using PID controller with Kookaburra and Red Panda optimization algorithm,” Sci. Rep., vol. 15, no. 1, pp. 1–23, 2025, doi: 10.1038/s41598-025-87607-2.
[10] S. Md Rozali, E. Ruslan, R. Ramli, M. N. Kamarudin, and M. F. Rahmat, “Development of Pid Controller for Conveyor Belt System with Different Tuning Method,” Int. J. Acad. Res. Bus. Soc. Sci., vol. 14, no. 12, pp. 4139–4153, 2024, doi: 10.6007/ijarbss/v14-i12/24399.
[11] Seborg, Process Dynamics and Control fourth edition, vol. 53, no. 9. 2019.
[12] P. Peerzada, W. H. Larik, and A. A. Mahar, “DC Motor Speed Control Through Arduino and L298N Motor Driver Using PID Controller,” Int. J. Electr. Eng. Emerg. Technol. , vol. 4, no. 2, pp. 21–24, 2021, [Online]. Available: https://www.ijeeet.com/index.php/ijeeet/article/view/94
[13] H. Supriyono, F. F. Alanro, and A. Supardi, “Development of DC Motor Speed Control Using PID Based on Arduino and Matlab For Laboratory Trainer,” 2024. doi: 10.25077/jnte.v13n1.1155.2024.
[14] G. A. K, M. D. D, G. A. B, and V. K. D, “DC Motor Controller Using Arduino,” vol. 11, no. 5, pp. 462–466, 2023.
[15] A. Uno, “MOTOR SPEED CONTROL USING ARDUINO PWM motor speed control using Arduino,” pp. 3–7.