Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Linear Actuator position control with microcontroller

Status
Not open for further replies.

codemaster11

Advanced Member level 4
Full Member level 1
Joined
Sep 2, 2019
Messages
115
Helped
9
Reputation
18
Reaction score
7
Trophy points
18
Activity points
1,221
is it possible to control the position of a linear actuator by using microcontroller through relay & LDR sensor?
or once powerd will move to its max limit? can i use it for my single axis solar tracking system, i want to control the actuator with specific position
for a specific reading of LDR and to stop the actuator & then move back or forward according to reading is it possible?
 
Last edited:

Yes, it is possible but may not be the best solution. You can take advantage of the fact that the Earth rotates 360 degrees every day so the peak radiation angle is very predictable. Trying to 'home in' on the peak insolation angle is rather pointless if you only have a single linear actuator because you have to align the other axis manually. The simplest solution is to pulse the actuator motor to move it at regular intervals rather than measure the light level, it also prevent the problem of variance from cloud cover. All you need to do is make sure it returns to the sunrise position after sunset each day. If you build a clock into it, you can make it automatically move to peak position even if switched on part through the day by working out the best angle and from there how long to drive the motor. Most actuators have a feedback switch or potentiometer so you can read its present position or displacement and adjust from there.

Brian.
 

    codemaster11

    Points: 2
    Helpful Answer Positive Rating
"The simplest solution is to pulse the actuator motor to move it at regular intervals rather than measure the light level, it also prevent the problem of variance from cloud cover."

how a two wire actuator can be pulsed ? is there other actuators with 3 wire Vcc, Gnd & signal available?
 

Attachments

  • actuater2.JPG
    actuater2.JPG
    26.8 KB · Views: 175

how a two wire actuator can be pulsed ? is there other actuators with 3 wire Vcc, Gnd & signal available?
Actuators with a pulse output, once per rotation of the motor (or gear mechanism) are available. They are commonly used on steerable satellite dishes so the dish can be moved to pre-set positions without having to search for the signal. The controller remembers the last position and when a different satellite is selected, it switches the motor polarity appropriately and counts pulses until it assumes it has reached position then the power is turned off. They are generally accurate to about 0.5 degrees.

When I suggested pulsing the motor power what I meant was the angle of the Sun is very predictable so if you turn the motor power on for say 1 second then off again with the correct delay between pulses it will track quite accurately. There is no need to sense the light level to find the best position.

Brian.
 

i tried my single axis solar tracker model initially with "mg945 servo" motor with three LDR sensor one left, one right & third at top for dark sensing
it works fine by programming it with arduino UNO. now i 'm going to do it with linear actuator. . .
 

the idea as suggested in post#2 is quite good to use the 360 degree rotation of the earth in 24 hours but i want to make
my system so that it can only move from sunrise to sunset position mean for 12 hours. i will put a specific delay through mcu
so that the actuator motor can be pulse for a specific duration and then turn off and again on. i think that it my only need a single
actuator to do that. returning it to initial position after sunset (180 degree movement) my not be difficult through the use of microcontroller.
 

Using the known solar position and pulsing the motor is by far the easiest method. The problem with sensing light levels is you have to cater for partial or full cloud cover. If clouds reduce the light on one sensor it sends the actuator to the wrong position and it may then have difficulty finding the Sun again. On very cloudy days, the light will be so diffused that the sensors all see the same value all the time.

What I suggest you do is either use a clock to read the time or a light sensor to detects darkness so it knows when to go back to the Sunrise position then every few minutes give a short burst of power to move it along to track the Sun. That way it will even work through a solar eclipse!

A good addition would be a microswitch operated when the actuator is in the sunrise position. To go to the sunrise position you just drive it 'backwards' until the switch operates.

Brian.
 

the micro switch my be an optocoupler operated relay control by digital output of mcu. its not difficult.
i think that instead of using clock we my use a counter starting from "0 to 43200" for 12 hours ( 43200 sec) using
unsigned int data type. reset the counter to initial value after 12 hours as the mcu see the initial value of counter it will.
move backward to sunset position. for forward & backward movement can i adopt a two micro switch operated relays ?
 

With two change-over microswitches (NC -C-NO) you can simply wire the actuator across the common 'C' tags and cross over the Normally Closed 'NC' and normally Open 'NO' tags so it automatically reverses at each end of the travel. You can then pulse it from any timer, even a 555 would do. It would go backwards at the same rate it goes forward which might be a problem if you are away from the equator where the difference in daytime and nighttime varies far more throughout the year.

I have a similar system here for controlling lighting, I use an ESP8266 module and a cheap DS3231 clock module. In theory it keeps time accurate to two minutes per year but my code resets the clock every day to NTP using a WiFi connection. The software calculates the sunrise time and sunset time based on my longitude and latitude. As I am 52 degrees North, the time between sunrise and sunset varies between just over 7 hours in Winter to over 16 hours in summer.

If you do use a software timer as suggested in post #8, make sure the timing interval is stable, preferably crystal controlled or the time the counter resets will gradually drift and over long periods you might even see it resetting in daylight hours.

Brian.
 

    codemaster11

    Points: 2
    Helpful Answer Positive Rating
off course i will use arduino uno with built in 16MHz crystal to keep the time delay interval
stable through software timer.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top