Automated Arduino system going up and down

Hi,

I’m pretty new to Arduino.

I am tasked to create a pulley system for a beam. The beam (5m long, approx. 40kg) is then pulled by a button controlled winch.

Now, I am tasked to create and arduino system and program, that makes the pulley system go up and down 24/7. Specifically, from its original position it goes 1m up and 1 m down.

My question is, what is the most efficient way to make this beam go up and down? I had an idea that involves 2 infrared sensors top and bottom, so that when the beam is detected it goes to the opposite direction. However, i feel like there’s a better way.

Please give me any suggestions.

Do not go by "feel". Test your system.

you didn't say anything about your beam. Maybe you should...

At the moment it’s more of a concept, then an actual physical thing at the moment.

I don’t want to buy 2 infrared sensors straight away only to find out that I can do the same thing by a bunch of lines of code that I didn’t know of.

Do you have any suggestions or is my initial idea the most efficient way?

Come on, even a concept needs some definition. So far, your question has no legitimate answer. Not only the hardware is unknown. The definition of "efficient" is unknown in this case...

Also please don't go back and edit your posts to correct problems that were pointed out in replies. It makes the replies seem crazy.

If you’re asking how it’s being pulled regardless of how heavy it is, it is being pulled by a strong enough winch that it is able to go up and down.

However my question is, how do I get the Arduino to make the winch pull the beam so that it goes up and down indefinitely?

Do I just give it a function from the Arduino IDE or do I use a couple of hardware so that the Arduino detects it reaching a certain height so it could go the opposite way and so on.

Edit: To make my term of efficiency clearer, I want the system to be as low-cost as possible, so that I don’t need to buy any redundant hardwares that could be replaced with a bunch of line of codes. Again, I am quite new to programming and Arduino in general, so I might not know some programming functions.

Well, one crucial question that comes to mind, is there a timing spec? For example, is there a maximum beam travel time when activated? Is there a maximum time that it can remain in one position? Many more questions????

Otherwise I will hand you a solution and you will say, "but that won't work because...

If this is a school assignment, more than half the value is in simply learning to define a problem properly.

As mentioned before, I just need the beam to continuously go up and down indefinitely. The travel time is dependent of the winch itself. The Arduino won’t have any control of that.

It won’t stay in a certain spot, and so on.

Any suggestions would be appreciated.

"It won’t stay in a certain spot, and so on." is not even close to a description of what it has to do.

What is your question again may I ask?

I was under the impression I’ve answered it already, please excuse me.

Post #7 although you could look back yourself and review your answers....

With IR sensors you have a feedback loop. Without, no feedback loop, sometimes called "running open loop". Bang bang back and forth blindly.

If you don't want advice choosing one of those, please pick one and your problem is solved.

Is there a timing spec?
No, there are no specific timing spec.

For example, is there a maximum beam travel time when activated?
Using the winge that I already have it takes approx. 5 seconds for it to go up 1m. It doesn’t accelerate, it’s at a constant speed.

Is there a maximum time that it can remain in one position?
No, it continuously goes up and down without having to stop at any point in time or in any position.

Ok, so just command it to go up and down every X seconds. Why not?

Does it harm the motor or anything else to hit an end stop?

But, is it mandatory that it reach the end points?

That is a good point, I should’ve mentioned that it is required to go up maximum 1 meter from it’s original position and then down 1 meter from it original position.

My concern is how should I go about telling the Arduino that it reached one meter, and telling it to go to the other direction until it reaches one meter then go the opposite direction again.

Unless you are using a stepper motor, you will need some kind of positional feedback for that.

As this is just a "concept" I am giving you the concept, not a hardware recommendation. If you want that, you need to reveal your current hardware details.

You are not thinking this very clearly! There is NO controlling needed. All you need is a switch at each end of the beam travel to turn on or off a single relay that reverses the winch. Start it and it will run until power is removed.

Is this a classroom assignment or something?

I can not see how this is a tutorial. Topic moved to a more suitable location on the forum.

Simpler solution would just be a rotating crank arm, like the mechanism used for oil well pumps. For something that will run 24/7 you don't want to get overly complicated.

A double-pole double-throw relay. When the 'bottom' limit is reached, switch the relay to the "go up" position. When the top limit is reached, switch the relay to the "go down" position.

You could eliminate the Arduino if you use a two-input latching relay. The input from the bottom limit would switch the relay to the "go up" position and the input from the top limit would switch the relay to the "go down" position.

I would put a collar on the winch cable and use that to hit the top and bottom limit switches, rather than infrared sensors.

1 Like