How to make my arduino move a 3d printed ferris-wheel

Hi i am making a 3d printed ferris-wheel and i dont know if an arduino with a hall sensor can help me to do this:
I want with the hall sensor, a stepper motor and a fisical button start the ferris-wheel stopping on every cabin for 30 seconds (I'm thinking stting how many steps the motor has to do) doing 1 lap, after that 3 laps without stoping and last lap stopping again
Second i want to use the cheapest board do you recommend me
Third i i can I want to add a sound module to the proyect
My questions are
If possible to make it?
I need to make a pcb for the project or just with the arduino is possible?
Any other suggestion?
Thanks and sorry for any mistake english is my second language

1 Like

Yes perfectly possible.

No. It will require wiring up some parts to the Arduino, but I would use strip board soldered up. Using solderless bread board might be alright for prototyping, although it is sometimes hard to get good connections on it, especially at the currents you might need.

I would get a stepping motor, I suspect you only need a small one, along with a stepping motor driver. The cheapest ones are based on a chip called L293 but don't get one of those, they are very old and very bad. Get something of quality here, it will save you time in the long run. This is a good make:-

For the sound get a DFplayer that is the simplest way of producing sound.

Yes it will. You need one hall sensor at the stopping place, and a small magnet in each gondola.

1 Like
  1. Place a neodymium magnet at each "cabin" for the Hall sensor to detect, and stop the wheel.
  1. Arduin Nano will work.

https://www.amazon.com/HiLetgo-ATmega328P-Controller-Compatible-ATmega328/dp/B09KGVDXZY/

  1. DFPlayerMini

https://www.amazon.com/AOICRIE-Dfplayer-Compatible-DFPlayer-Support/dp/B08V8G1TQZ

  1. make a pcb for the project? Use perf-board and header pins for the Nano

https://www.amazon.com/2-54mm-Breakaway-Female-Connector-Arduino/dp/B01MQ48T2V/

  1. Stepper motor with a stepper driver board
  2. Power supply (for the motor, audio and the Arduino)
1 Like

I would recommend a PCB if you are going to make a lot of them but pref board is great for just a few.

1 Like

You're moving a stepper motor to a series of fixed locations: you shouldn't need a Hall sensor, just program the stopping points.

Cheapest board to do this is probably a nano clone (Aliexpress generally has them for under $3) and probably a TB6612 driver.

1 Like

Absolutely! Building a ferris wheel with a stepper motor, hall sensor, and button control is a great project.

For the most financially savvy choice, I energetically suggest the Arduino Uno R3. It's a fabulous starter board with a huge web-based local area and a lot of instructional exercises. It has sufficient ability to deal with your ferris wheel project with stepper engine control, corridor sensor input, button control, and, surprisingly, an essential sound module.

1 Like

I agree.. I look at the hall sensor as an easier way to identify the many stop points.

What is the point of using a stepper motor? If you run it slowly, it will really shake your wheel as it moves step, stop, step.

Thanks for answer me and I have another question if I put one magnet in every cabin how the arduino knows when the ferris-wheel already pass for every cabin for start doing the 3 laps without stopping?, and is any way to be able to put as many buttons as cabins able to go to an specific cabin example : I have cabins 1 to 8 an when i press a button # 6 go to that cabin

You have 8 cabins and you count 25 hall sensor pulses, the wheel has rotated three times and is one cabin farther from the start cabin. (25 pulses / 8 pulses per wheel = 3 wheels + 1 remainder).

8 buttons will let you select your cabin.

Your Uno has 17 DIO pins (two of the 19 DIO pins are reserved for TX/RX). Your motor will be using 2 pins for your motor (direction and speed). The Hall sensor will need 1 DIO pin. You have 14 pins remaining for other input. 8 buttons will leave you with six DIO pins.

1 Like

Thanks thats help me a lot never though in count the pulses and i just ordered the items i need but if I need to assign a number to every cabin and be able to call that cabin to the hall sensor with a button how i can do that. Mabye setting the cabin 1 with different polarity making that home and if the ferris-wheel is in a different cabin or place star looking first for home cabin and after that start counting the pulses example: Cabing is in number 7 and i want to call the number 4, first go to the number 1 thats the one with different polarity and after that count to 4 or are an easier option
Thanks again

1 Like

If your hall sensor can sens polarity, this is a good idea.

If your hall sensor does not sense polarity, use two magnets on Cabin 1, which will give two pulses in a very short time, compared to the other cabins which will only give one pulse in the same length of time.

That is a valid method.

Also, consider keep a cabin count and know exactly which cabin is in front of the hall sensor.

Do you mean keep a cabins count as a save the number of pulses the machine use the last time to go to a cabin in order to calculate the next position or means assig a variable to each cabin with the number of pulses
Thans and sorry if i dont understood english sometimes kill me hahajhaha

On reflection I would use one magnet in just one cabin. This will act as your reference point, so when you start up you keep turning the motor until the hall sensor detects the magnet. Then you have stopped at a known reference point.

Now you need to calibrate the wheel and find out how many pulses it takes to arrive at the same position again. That way you can tell the distance between each cabin.

So you can always know where you are, because you just keep a count of how many cabins you have moved between.

The movement requirement you have stated seems over specified, so it looks like you have been given an assignment to do, and you are getting us to do it for you. I hope we get good marks for this.

1 Like

When doing this using a magnet on each cabin and a hall to detect them. On cabin 1 offset the magnet and add an additional hall sensor. This allows you to rotate to home position or any other. The offset sensor detects home and gives you the information is there. The others tell you there is a cabin there but it is not the home cabin. In setup() you can spin the wheel until it reaches home. This way every time you start it it is in the home slot.

Yes. You will find cabin #1 (using two magnets or opposite polarity) , then as you rotate the wheel and the hall sensor detects another magnet, cabin = cabin + 1 until you reach the cabin number you need.

1 Like

Thanks for answer and is a personal challenge for a men is his 40 hahhahha and in your example is easy to me to tell to the wheel every time I turn on home first to be allways in a reference point and fron that if i want pressing a button to start the secuence but in the case i want to go to and specific cabin its more tricky because if i am in home just count the numbers of steps from home to the cabin but if i not in home example : From home i went to cabin 7 that is 70 pulses is easy to code because i assigned the number of pulses to every cabin and after be in 7 i want to go to 3 what i do in that case? I can code like a storage for number of cabin i call last time

You simply keep a variable containing the current cabin. You can move from that cabin to another by simple arithmetic of how many cabins you have to move to in order to get to the cabin you want.

1 Like

Thanks again thats wath i was thinking and is going to be my aproach but if i goes further what happens if someone move the wheel and is not in the right cabin. Imagine I press cabin number 4 move to there but someone manually move it to de middle of cabin 5 and 6 or to cabin 7 for example if i press for example cabin 3 the cabin or position dosent go to be accurate

The point about a stepping motor is that you can't manually move it. Especially if you are using a stepping motor with built in gears. A stepping motor is producing its maximum torque when it is stationary.

1 Like