Linear Actuator Control System with Arduino

This project focuses on creating a versatile control system for linear actuators using an Arduino Uno. It is designed for applications requiring precise, repetitive motion with customizable settings for time, cycles, and direction. Below is a detailed explanation of the project, including its features, components, and functionality.

Linear Actuator System with Arduino

Key Features

  1. Customizable ON/OFF Times
    • Users can set specific durations for the actuator’s active (ON) and idle (OFF) states.
    • Settings are accessible through an intuitive menu system displayed on an LCD screen.
  2. Adjustable Cycles
    • Define the number of cycles the actuator should complete before stopping automatically.
    • Each cycle consists of an ON period (movement) followed by an OFF period (idle).
  3. Direction Control
    • Toggle between “UP” and “DOWN” movement directions for the actuator.
    • Allows precise positioning or material handling tasks.
  4. Real-Time Clock (RTC) Integration
    • A DS3231 RTC module ensures accurate timekeeping for process synchronization.
    • The system can start or stop processes at specific times if needed.
  5. Interactive LCD Menu
    • A 20×4 I2C LCD display provides real-time feedback and allows users to navigate through settings.
    • Displays parameters like ON time, OFF time, cycle count, and runtime progress.
  6. Rotary Encoder Input
    • Enables fine-tuning of settings and easy navigation through menu options.
    • Provides tactile feedback for precise control adjustments.
  7. Safety and Precision
    • Built-in logic prevents unintended operations (e.g., conflicting settings or sudden direction changes).
    • Relays and push buttons ensure secure control over actuator power and motion.

Components used in the Project:

Arduino Uno

  • Acts as the brain of the system, controlling the actuator and processing inputs/outputs.

DS3231 RTC Module

  • Provides accurate timekeeping for synchronization and scheduled operations.

20×4 I2C LCD Display

  • Displays the menu interface and real-time status updates.

Rotary Encoder

  • Allows users to adjust settings and navigate menus with precision.

Linear Actuator

  • Performs the mechanical movement as per the defined parameters.

Push Buttons and Relays

  • Push buttons provide manual control for starting, pausing, or stopping the system.
  • Relays control the power supply to the actuator for safe operation.

Work Flow of Linear Actuator Control System:

Set Parameters

  • Users adjust the settings via a rotary encoder and push buttons.
  • Parameters include:
    • ON Time: Duration for which the actuator remains active.
    • OFF Time: Duration of idle state between movements.
    • Direction: Choose between UP or DOWN.
    • Cycles: Number of repetitions for the process.
    • Runtime: Optional setting for defining the total operation time.

Start the Process

  • After setting parameters, the process is initiated.
  • The system alternates between ON (movement) and OFF (idle) states as per the user-defined timings.

Monitor Progress

  • The LCD displays:
    • Real-time cycle count.
    • Elapsed time.
    • Current actuator status (e.g., moving up, idle, moving down).

Stop Safely

  • A dedicated button allows users to pause or terminate the process at any time.
  • Safety mechanisms ensure smooth stopping without abrupt movements.

Circuit Diagram:

Circuit Diagram of linear Actuator with Arduino
Circuit Diagram of linear Actuator Control System with Arduino

Arduino Code:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
String t, T, D, Date;
int H, M, S, Hr, Mn;
int E_Mn, prevmin = 0, E_Sec = 0, prevSec = 0, prevSec1 = 0, prevSec2 = 0 , T_minutes = 0;
int C_S = 0, Last_S = 0;
//--------------------------I2C LCD----------------

LiquidCrystal_I2C lcd(0x27, 20, 4);

//--------------------------RE---------------------
#define CLK A0
#define DT A1
#define SW 7
#define Btn 2
#define R1 3
#define R2 4

int counter = 0;
int currentStateCLK;
int lastStateCLK;
String currentDir = "";
unsigned long lastButtonPress = 0;
//--------------------------------------------------

String Dir = "UP";
int Open_T = 10, Close_T = 10;   //20 seconds inner cycle,   10 move out (fully open)   10 move back (fully closed)
int C = 1, ONT = 60, OFFT = 60;  //120 Seconds outer cycle
int R = 0, L = 0, E = 0, scr = 0, cycle = 0;
bool Edit = false, flag = true, Start = false, flag5 = true;
int count = 0;
String process_status = "Stop";
int T_Hr = 0, T_Mn = 0;
bool LOCK_1 = false;

void setup() {
  Serial.begin(9600);

  lcd.begin();
  lcd.backlight();
  lcd.clear();

  pinMode(CLK, INPUT);
  pinMode(DT, INPUT);
  pinMode(SW, INPUT_PULLUP);
  pinMode(Btn, INPUT_PULLUP);
  pinMode(R1, OUTPUT);
  pinMode(R2, OUTPUT);

  digitalWrite(R2, HIGH);
  digitalWrite(R1, HIGH);

  lastStateCLK = digitalRead(CLK);

  rtc.begin();
  rtc.setDOW(WEDNESDAY);      // Set Day-of-Week to SUNDAY
  rtc.setTime(20, 54, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(18, 05, 2022);  // Set the date to January 1st, 2014
}

void loop() {
}

Demo Video of Working of Linear Actuator System:

Applications of Project:

This system can be adapted for a variety of automation tasks, such as:

  • Automated Testing: Simulate repetitive movements for endurance or stress testing.
  • Material Handling: Precise lifting, pushing, or positioning of materials.
  • Repetitive Motion Systems: Ideal for production lines or research experiments requiring repeatable actions.

Need This Project?

If you need this Project with or without Modifications or Customization then you can contact us through WhatsApp. We can deliver you this Project in the Following Ways.

Project Code:
we can provide you Project Code along with Zoom Assistant, through Zoom meeting for Setup of this Project or any other Arduino Project of your need.

Fully Functional Project with Hardware/Components Shipment:
if you can not make this project yourself then you can use this option. We will assemble the Project and will ship it to your Doorstep with Safe Packaging.

Leave a Reply

Your email address will not be published. Required fields are marked *

Facebook
YouTube
× Contact us