In this article, we explore how to use ESP32 PLC PWM Outputs to regulate motor speeds efficiently using NORVI IIOT Device, equipped with an ESP32-WROOM32 module.

With its built-in features like OLED display, digital and analog inputs, relay outputs, and DIN-rail mount, NORVI IIOT proves to be a versatile platform for motor control applications.

Understanding PWM

ESP32 PWM Outputs

PWM stands for Pulse Width Modulation. It is a modulation technique used to encode a message into a pulsing signal. 

In PWM, the digital signal is turned on and off at a certain frequency with varying pulse widths, or duty cycles. 

The duty cycle refers to the percentage of time the signal is on (high) compared to the total period of the signal.

PWM is commonly used in various applications, 

  • Motor control
  • Power regulation
  • Communication systems
  • LED dimming. 

As an example, In motor control applications, PWM is used to control the speed of motors by varying the average voltage or current supplied to the motor. By adjusting the duty cycle of the PWM signal, the effective power delivered to the motor can be controlled, thus regulating its speed.

PWM offers several advantages, 

  • Efficiency 
  • Simplicity
  • Flexibility (It allows for precise control over the average power delivered to a load, enabling smooth and accurate adjustments in motor speeds or other controlled systems.) 
  • Simple and cost-effective implementation

ESP32 PWM Outputs

ESP32 PWM Outputs

The ESP32 microcontroller, which features a dual-core processor and Wi-Fi/Bluetooth connectivity, offers flexible PWM (Pulse Width Modulation) capabilities suitable for various applications.

The ESP32 provides multiple PWM channels, allowing simultaneous control of multiple devices or components. Here’s an overview of the ESP32 PLC PWM Outputs:

  • Number of PWM Channels: It provides up to 16 PWM channels, which can be distributed across different GPIO (General Purpose Input/Output) pins.
  • PWM Frequency: The PWM frequency is configurable, allowing you to adjust it based on your application requirements. The frequency range typically spans from a few Hz to several kHz.
  • Resolution: The PWM resolution refers to the number of bits representing the duty cycle. The ESP32 supports adjustable PWM resolution, commonly ranging from 1 to 16 bits—higher resolution results in smoother and more precise control over the output signal.
  • Duty Cycle Control: The duty cycle of each PWM channel can be adjusted independently. The duty cycle represents the ratio of the signal’s on-time to its total period and is often expressed as a percentage.
  • Programming Interface: You can control the PWM outputs on the ESP32 using the ESP-IDF (Espressif IoT Development Framework), Arduino IDE with the ESP32 board package, or other compatible development environments. Libraries and APIs provided by Espressif Systems facilitate easy configuration and control of PWM channels.

Utilizing NORVI IIOT for Motor Speed Control

In the context of motor control, PWM is used to regulate the power supplied to the motor by controlling the average voltage and current through varying the duty cycle of the signal. A higher duty cycle translates to a higher average voltage and vice versa, thus controlling the speed of the motor. 

Let’s look into the process of how ESP32 PLC PWM Outputs are used for controlling the Motor speeds.

Hardware Setup:

    • Connect the motor to the PWM output pins (transistor outputs) of the NORVI IIOT device.
    • Ensure proper power supply and grounding for both the NORVI IIOT and the motor.
    • Utilize the built-in 0.96 OLED display for monitoring and feedback purposes. (If not NORVI ESP32 HMI can be connected for monitoring and feedback purposes)

Software Implementation:

    • Initialize the PWM module on the NORVI IIOT using the provided libraries or SDK.
    • Configure the PWM output pins for motor control.
    • Implement a control algorithm to adjust the duty cycle based on desired speed inputs.
    • Utilize the digital and analog inputs for receiving speed commands or feedback signals.
    • Implement safety features such as overcurrent protection and emergency stop functionalities.

User Interface and Interaction:

      • Utilize the built-in button on the front panel for manual control or mode selection.
      • Develop a user-friendly interface on the OLED display (or ESP32 HMI) for displaying motor speed, status, and other relevant information.
      • Enable remote monitoring and control capabilities through network connectivity options supported by NORVI IIOT.

Expansion and Integration:

    • Take advantage of the expansion port to add additional functionalities or modules for enhanced motor control capabilities.
    • Integrate with other industrial automation systems or IoT platforms for seamless data exchange and interoperability.

Benefits of Using NORVI IIOT for Motor Speed Control:

  • Compact and robust design suitable for industrial environments.
  • Versatile inputs and outputs for interfacing with various sensors, actuators, and peripherals.
  • Real-time monitoring and control capabilities.
  • Scalability and expandability for future requirements.
  • Cost-effective solution compared to traditional PLC-based systems.


By using the ESP32 PWM outputs of the NORVI IIOT device, associated with its advanced features and capabilities, system integrators, engineers and developers can effectively regulate motor speeds in industrial applications. Whether it’s for controlling conveyor belts, pumps, fans, or other motor-driven equipment, NORVI IIOT provides a reliable platform for achieving precise and efficient motor control, ultimately contributing to improved productivity and operational performance in industrial settings.

If you have any questions, Please reach our technical team at [email protected]

VISIT OUR Product Pages to get More Information: NORVI IIOT & NORVI ESP32 HMI