We may earn an affiliate commission when you visit our partners.
Sergio Andres Castaño Giraldo

In this beginner's course in Applied Control Systems, you will learn how to put the abstract theory of control into practice using embedded devices. In this particular case, we will use the

This will be a totally practical course, from the beginning, you can follow along and develop at home the same practices that the instructor carries out in the videos. Best of all, you will learn to create your own practice system for control theory.

I will show you step by step:

Read more

In this beginner's course in Applied Control Systems, you will learn how to put the abstract theory of control into practice using embedded devices. In this particular case, we will use the

This will be a totally practical course, from the beginning, you can follow along and develop at home the same practices that the instructor carries out in the videos. Best of all, you will learn to create your own practice system for control theory.

I will show you step by step:

  1. How to create your own temperature system to be used in practices of modeling, programming, and control systems.

  2. We will perform data acquisition with the embedded system and our plant to obtain the mathematical models that characterize the dynamics of the temperature plant.

  3. Program different control algorithms, from tuning to designs.

  4. Verify the possible causes of error that prevent the implementation of a control system in real life.

  5. How to translate into C programming language the different control structures, so that you can easily extend it to any other structure you want to implement in your microcontroller.

  6. We will perform controllers in both implicit and explicit forms within the microcontroller.

  7. We will see the importance of engineering tools like Matlab for the development and design of control systems.

Enroll now

What's inside

Learning objectives

  • Create your own temperature laboratory to study modeling and control disciplines.
  • Land the abstract concepts of control systems in practice
  • Program control algorithms step by step with the arduino board
  • Understand the implementation concepts that must be considered in control systems.
  • Interpret block diagrams to translate them into a programming language
  • Perform data acquisition and model systems

Syllabus

Construction of the System to Control with Arduino
Maximize Your Learning Experience – Special Access Available!

Start of the Course. In this section we are going to learn how to create the control system for our embedded system

Read more

In this video we show the temperature laboratory plant, which we will use throughout the course to test each of the control systems implemented in the Arduino.

We will see how the electronic circuit of the control plant that we will use in the course of control systems in embedded devices using the Arduino is structured.

We will see the design of the electronic PCB card of the control plant that we are going to use in the control theory course using the Arduino.

In this video, we will see the files that make up the base code of our Arduino development board, for the programming and implementation of the various control systems that we are going to carry out throughout the course.

This video explains in detail the Arduino base code for reading the sensors and activating the heaters in our plant. Based on this code we can develop control systems using embedded devices.

Adicionamos al código base del Arduino, la etapa de recepción de datos directamente del Serial Plotter o de la interfaz gráfica de Matlab, para posteriormente realizar la implementación del sistema de control en Arduino.

In this video we learn how to program the Arduino to transmit data to Matlab or the Serial plotter in order to later program the control systems in microcontrollers, in this case a control system in Arduino.

Comprobamos el funcionamiento de la interfaz que se comunicará con el Arduino, para el monitoreo de las variables del sistema de control que será programado en el dispositivo embebido.

Download and installation process of the graphical interface in Windows.

In this video, we perform a data acquisition with our Arduino, with which we are going to build an input - output model (transfer function) for the variable temperature of the TCLAB, with the objective of being able to design and project the different control structures within the microcontrolled system.

We began to program our first controllers in the course on control systems applied to embedded electronic devices. For this case we start with the most popular controller of all, the PID.

Learn in detail how to transform a Proportional + Integral + Derivative (PID) controller into its discrete representation, to implement it on the Arduino.

In this video we understand the concept for proper selection of our sampling period when developing discrete controllers. In this case, when implementing control systems within an embedded device such as the Arduino, we must have an adequate selection of the sampling time so that the microcontroller can adequately control the process or plant.

In this video we will understand how to update the control law vectors that contain the different signals spaced in time due to the regressors. In this case we create the update_past library on our Arduino to achieve the implementation of control systems with our onboard device.

In this video we see the sampling period that we are going to use for our TCLAB temperature laboratory for programming the different control systems implemented in an electronic device such as the Arduino Processing.

We implemented our first PID controller on the Arduino, using the most famous technique known as Ziegler and Nichols tuning.

In this video we implement a digital PID controller on our Arduino, using the C language. For this practice, we use the CHR PID controller tuning method.

In this video we implement a digital PID controller on our Arduino, using the C language. For this practice, we use the PID controller tuning method proposed by authors Cohen and Coon.

In this video we implement a digital PID controller on our Arduino, using the C language. For this practice, we use the PID controller tuning method proposed by the authors Lopez et. to the. and Rovira et al. Using the integral error criteria such as the IAE and the ITAE.

We began to apply more advanced controllers that require linear algebra for their implementation. In this case we will dedicate a section to the RST reference tracking controller.

This video introduces the concept of the RST Controller (Reference Signal Tracking), which is a very useful controller and we will learn to program it on the microcontroller of our Arduino board.

We will learn how to create the library to carry out products between two polynomials equivalent to the matlab conv function and we will additionally install the Arduino Basic Linear Algebra that will allow us to perform powerful calculations based on linear algebra with our Arduino.

For the implementation of the RST controller within Arduino, it will be necessary to define some global variables that will be used in the Scope of our main file.

In this video we use all the functions exposed in the previous videos to calculate all the parameters of our RST controller using linear algebra within our Arduino.

We learn how to program the RST controller within our Arduino prototyping board using C language programming notions, the basic linear algebra library.

En este video realizamos la implementación directa del controlador RST en nuestra placa de Arduino. En este caso realizamos todo el cálculo del controlador RST directamente en MATLAB y en el microcontrolador del Arduino realizamos la implementación sobre el laboratório del control de temperatura.

We will learn to implement a cascade control structure within the programming of our microcontrolled system. This control application is very common at an industrial level to eliminate possible disturbances within the control loop.

In this video we introduce the cascade controller which we are going to implement in our embedded device. Our Arduino will have this controller implemented for the temperature variable and the current that circulates through the transistor.

We will see the code in Arduino where we place the system in open loop and send the current data to the graphical interface in order to be able to perform data acquisition.

In this video, we perform a data acquisition of the Current variable, and we build the model through a transfer function using Matlab.

This video explains step by step the implementation of a cascade control structure implemented in C language adapted to be executed on the Arduino microcontroller system.

In this video we can see the response of the Cascade Control implemented by Arduino

In this section we will learn how to involve the state space within a microcontrolled system, and for this particular case we will see how to design and implement a state feedback controller.

En esta entrada vemos el conceptual sobre el control por realimentación de estados discreto del tipo servo (con seguimiento de referencia) a ser implementado en nuestro Arduino. Inicialmente, realizamos el proyecto de control usando MATLAB para posteriormente implementarlo en el dispositivo embebido.

This video explains step by step how to program a state feedback control implemented directly in an embedded device using C language programming logic within the Arduino IDE.

In this video we see the excellent dynamics of the TCLAB system governed by a state feedback controller programmed and implemented in the Arduino.

  • In this video we introduce the Difuso controller, of the Mamdani type, which will be implemented in the embedded device such as the Arduino. For this, it is necessary to understand how the controller works and for that we will see a quick implementation in Simulink of Matlab to understand the concept and to later create a code to be implemented in the Arduino.

For the implementation and programming from scratch of the PI Fuzzy controller code within the Arduino embedded system, it will be necessary to understand how some functions necessary for the implementation of the fuzzy controller work, such as the maximum and minimum functions and how to program the membership functions in C language.

In this video we will understand how the fuzzy stage works and the inference mechanism with the rules of fuzzy control programmed in C language to be implemented directly in the Arduino embedded system.

In this video we will see how to program in C language the Defuzzy stage of the PI Fuzzy controller which is programmed in the Arduino microcontrolled system.

In this video, we finally put the PI Fuzzy controller programmed in C language to work in the Arduino IDE. We will see the dynamic behavior of the system with the Fuzzy controller.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides hands-on experience with Arduino, bridging the gap between theoretical control systems concepts and practical implementation, which is valuable for aspiring engineers
Uses a temperature control system as a practical example, allowing learners to build a tangible project and reinforce their understanding of control algorithms
Requires learners to build their own temperature system, which may require purchasing additional electronic components and tools beyond a standard Arduino kit
Covers various control algorithms, including PID, RST, cascade, state variable, and fuzzy controllers, offering a comprehensive overview of different control strategies
Emphasizes the use of Matlab for modeling, simulation, and analysis, which is a standard tool in control systems engineering and provides a pathway for further exploration
Focuses on translating control algorithms into C code for implementation on the Arduino, which is essential for embedded systems development and provides practical coding experience

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical applied control systems with arduino

According to the course materials provided, this course offers a highly practical, hands-on approach to applied control systems. Learners can expect to build their own temperature laboratory using Arduino to apply abstract control theory concepts. The syllabus indicates coverage of various controller types, including PID, RST, Cascade, State Feedback, and Fuzzy controllers, with detailed steps on implementation in C for Arduino. While not based on actual student reviews, the course structure suggests it is well-suited for those who learn by doing and wish to translate theoretical knowledge into real-world embedded systems. Potential challenges, inferred from the need to build hardware and utilize software like Matlab, might include the cost and effort of setting up the lab or the assumption of basic electronics and programming skills. The emphasis is clearly on practical implementation and understanding the nuances of applying control systems on a microcontroller.
Leverages Matlab for modeling and design.
"The course highlights the importance of engineering tools like Matlab."
"We used Matlab for data acquisition and building input-output models."
"Designing controllers like RST and State Feedback often starts in MATLAB before Arduino implementation."
Includes PID, RST, Cascade, State Feedback, Fuzzy.
"Programming our first PID controller on the Arduino was a great start."
"We learned to implement more advanced controllers like RST and State Variable."
"Implementing a Fuzzy controller from scratch on Arduino was a unique part."
Focuses on programming control algorithms in C.
"I learned step-by-step how to program control algorithms with the Arduino board."
"Translating control structures into C programming language was a key skill I gained."
"The course shows how to implement controllers in both implicit and explicit forms on the microcontroller."
Emphasis on building and using a real system.
"The course guides you through creating your own temperature system for practices."
"I liked that it was totally practical, allowing me to follow along and develop at home."
"Building the temperature laboratory plant was key to applying the concepts."
Need to acquire parts and build the system.
"You have to create your own temperature system to be used in practices."
"Requires obtaining the plant material and setting up the electronic circuit."
"Be prepared for the construction phase of the control plant hardware."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Applied Control Systems in Arduino with these activities:
Review Basic Control Systems Theory
Solidify your understanding of fundamental control systems concepts before diving into the practical applications with Arduino.
Browse courses on Control Theory
Show steps
  • Review textbooks or online resources on control systems fundamentals.
  • Work through example problems related to open-loop and closed-loop systems.
  • Familiarize yourself with concepts like transfer functions and stability.
Brush Up on C Programming
Strengthen your C programming skills to effectively implement control algorithms on the Arduino platform.
Browse courses on C Programming
Show steps
  • Review C syntax, data types, and control structures.
  • Practice writing functions and working with pointers.
  • Familiarize yourself with Arduino-specific C libraries.
Read 'Understanding Basic Statistics' by Brase and Brase
Gain a deeper understanding of statistical methods used in data acquisition and system modeling.
Show steps
  • Read the chapters related to data analysis and regression.
  • Work through example problems involving statistical modeling.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Build a Simple Temperature Control System
Apply the concepts learned in the course by building your own temperature control system using Arduino.
Show steps
  • Gather the necessary components (Arduino, temperature sensor, heater, etc.).
  • Connect the components according to a schematic diagram.
  • Write Arduino code to read the temperature sensor and control the heater.
  • Tune the control parameters to achieve desired performance.
Implement PID Control on Arduino
Reinforce your understanding of PID control by implementing it on the Arduino platform.
Show steps
  • Review the theory behind PID control.
  • Write Arduino code to implement a PID controller.
  • Experiment with different tuning methods (e.g., Ziegler-Nichols) to optimize performance.
Document Your Control System Project
Solidify your understanding by documenting your control system project, including design choices, implementation details, and results.
Show steps
  • Write a report describing your project goals and design.
  • Include schematics, code snippets, and experimental results.
  • Discuss any challenges you encountered and how you overcame them.
Explore Advanced Control Techniques
Expand your knowledge by exploring advanced control techniques beyond the scope of the course.
Show steps
  • Research advanced control techniques such as model predictive control or adaptive control.
  • Find online tutorials or resources that explain these techniques.
  • Attempt to implement one of these techniques on your Arduino project.
Read 'Control Systems Engineering' by Norman S. Nise
Deepen your understanding of control systems theory and design principles.
Show steps
  • Read the chapters related to system modeling and control design.
  • Work through example problems and case studies.

Career center

Learners who complete Applied Control Systems in Arduino will develop knowledge and skills that may be useful to these careers:
Control Systems Engineer
A Control Systems Engineer designs, develops, and tests control systems. Taking this course helps build a foundation to implement control algorithms on embedded devices like Arduino, a crucial skill for this role. The course's focus on practical application, including creating a temperature control system and performing data acquisition, directly aligns with the tasks a Control Systems Engineer undertakes. Furthermore, learning to translate control structures into the C programming language, as covered in the class, helps implement these systems in microcontrollers. This course may be attractive to those who seek an engineering role.
Embedded Systems Engineer
An Embedded Systems Engineer designs, develops, and tests embedded systems, often using microcontrollers. This course may build a foundation for understanding control systems applied to embedded devices, particularly using Arduino. The course's hands-on approach, including creating a temperature system and programming control algorithms, is directly relevant. Learning to translate control structures into C, as well as understanding the importance of engineering tools like Matlab, helps implement and fine-tune embedded systems. An Embedded Systems Engineer may benefit from translating theoretical knowledge into practical applications.
Robotics Engineer
A Robotics Engineer designs, builds, and programs robots and automated systems. This course helps teach how to implement control systems on embedded devices, a core component of robotics. Specifically, learning to program control algorithms with Arduino and understanding the implementation considerations for control systems is invaluable. The practical experience of building a temperature laboratory and performing data acquisition that one gains from this course may be useful in developing robotic systems. Learning how to translate block diagrams into C code, also taught, is essential for programming robot controllers. This course may be attractive to those who seek an engineering role.
Automation Engineer
An Automation Engineer designs, develops, and implements automated systems for various industries. This course helps with skills for programming control algorithms on embedded systems like Arduino, essential for automation. The focus on practical applications, such as building a temperature control system and performing data acquisition and modeling, directly translates to automation tasks. This course helps you in the role of Automation Engineer. Also, the ability to translate control structures into C code, as taught in the course, helps program and optimize automated processes.
Mechatronics Engineer
A Mechatronics Engineer integrates mechanical, electrical, and computer engineering principles to design and develop automated systems. This course may be helpful for control systems using Arduino, a common platform in mechatronics. The course's focus on practical application, including the construction of a temperature laboratory and data acquisition for modeling, is highly relevant. Programming control algorithms using Arduino, and translating block diagrams into C code, are crucial skills for a Mechatronics Engineer. This course may be attractive to those who seek an engineering role.
Instrumentation Engineer
An Instrumentation Engineer designs, develops, and maintains instruments and control systems used in various industries. This course may build a foundation to implement control algorithms on embedded devices like Arduino, which you will find useful in instrumentation. The course's emphasis on practical applications, such as creating a temperature control system and performing data acquisition to obtain mathematical models, directly aligns with this role. The ability to translate control structures into the C programming language, and understanding the importance of tools like Matlab, aids in the implementation and analysis of instrumentation systems.
Process Control Engineer
A Process Control Engineer designs and implements control systems to optimize industrial processes. Taking this course may help one land abstract concepts of control systems in practice, particularly using embedded devices such as Arduino. The course focuses on practical application in the implementation of temperature systems as well as controllers in implicit and explicit forms within the microcontroller. The ability to translate control structures into C code helps create the system expected of a Process Control Engineer. Also, expertise in engineering tools like Matlab for developing and designing control systems may also be useful.
Electrical Engineer
An Electrical Engineer designs, develops, and tests electrical equipment and systems. This course emphasizes implementing control algorithms on embedded devices, particularly Arduino, which is valuable in many electrical engineering applications. The focus on practical application, through building a temperature control system and data acquisition, provides hands-on experience. This course will familiarize you with engineering tools like Matlab for system development. The ability to translate control structures into C code helps implement these systems in microcontrollers.
Aerospace Engineer
An Aerospace Engineer designs, develops, and tests aircraft and spacecraft. This course focuses on control systems, essential for stabilizing and controlling flight systems. In particular, it includes knowledge of control systems using embedded devices, particularly Arduino. The emphasis on translating control structures into C code is relevant for programming flight controllers. Understanding engineering tools like Matlab may also be particularly valuable for simulation and analysis in aerospace engineering. This course may be attractive to those who seek an engineering role.
Research Scientist
A Research Scientist conducts research to expand knowledge in a particular field. This course may be useful for those researching control systems or embedded systems. The practical experience gained from building a temperature laboratory and implementing control algorithms is relevant. The course's emphasis on data acquisition, modeling, and the use of Matlab may also be valuable research skills. An advanced degree is typically required for this role.
Mechanical Engineer
A Mechanical Engineer designs, develops, and tests mechanical devices and systems. This course may be useful for control systems within mechanical systems, especially using embedded devices like Arduino. The course's focus on practical application, including building a temperature control system and performing data acquisition, is relevant. Experience with Matlab, as covered in the course, may be valuable for modeling and simulation. This course may be attractive to those who seek an engineering role.
Software Engineer
A Software Engineer designs, develops, and tests software applications. This course may be useful for embedded software development, focusing on control systems. The ability to translate block diagrams into C code, as taught in the course, is a core skill for this role. Understanding the principles of control systems, and how to implement them on devices like Arduino, may be applicable to software-controlled systems. The course's hands-on approach may be a practical way to gain experience. This course may be attractive to those who seek an engineering role.
Data Scientist
A Data Scientist analyzes data to extract meaningful insights and inform decision-making. This course may be useful for those working with data from control systems, teaching data acquisition and modeling techniques. The course also introduces tools like Matlab for data analysis. While not directly related to core data science tasks, understanding the underlying control systems that generate data can be a valuable asset. The course may be useful for some specialized applications of data science.
Technical Sales Engineer
A Technical Sales Engineer sells complex technical products and services to businesses and organizations. This course may be useful for sales engineers selling control systems or embedded solutions, providing a technical understanding of the products. Knowledge of Arduino and the ability to explain the concepts covered in the course may help demonstrate product capabilities and address customer concerns. The practical experience gained through the course may enhance credibility with technical clients.
Project Manager
A Project Manager plans, executes, and closes projects, ensuring they are completed on time and within budget. While not directly related, this course may be useful for managing projects involving control systems or embedded systems development. Understanding the technical concepts and challenges involved may aid in project planning and communication. Knowledge of the tools and techniques covered in the course may facilitate better project oversight.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Applied Control Systems in Arduino.
Comprehensive resource on control systems engineering. It covers a wide range of topics, including modeling, analysis, and design. It useful reference for understanding the theoretical foundations of control systems. This book is commonly used as a textbook at academic institutions and by industry professionals.
Provides a solid foundation in statistical concepts. It is helpful for understanding data acquisition and model building, which are essential parts of the course. While not directly about control systems, it provides the necessary background for understanding data analysis. This book is more valuable as additional reading than as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser