Author Options:

Need arduino sensor advice! - Inductive touch vs. reed vs. touch sensative Answered

Hi everyone - I am trying to make an elevator for my daughter's doll house - it is all set on a stepper motor and arduino - but I need a way for it to know when it has reached the bottom floor. Also, for reasons too strange to go into here though, I need it stop exactly when the elevator hits the ground floor.

I am hoping the simpler the solution the better...a reed switch with a magnet on the bottom of the elevator? or a Pressure sensitive resistor? Or a push button that is really sensitive?

Any suggestions would be much appreciated.




3 months ago

I see two possible solutions.
Optical or mechanical.

Without knowing your mechanics I have to go with just the cabin here.
A microswitch in the floor would only need the actual button to stick out.
The face can be flush with the floor.
Once the elevator pushes the button your have the signal you need.
A little adjustment screw to set the height of the switch will make sure it activates when the cabin is hitting the floor.
The mircoswitches with levers can be used for the other floor levels if required.

Optical I would use simple IR diodes and and receiving transistors.
Mounted on the sides they will detect when the cabin reaches the point where the beam is interrupted.
I would mount them at roof level of the cabin.
Software wise the first interruption (when going down) would slow the cabin down like the real thing.
When the cabin hits the floor the beam will be uninterrupted again and signal the stop.
For up it is in reverse order.
Starts at slow speed and once the beam is free again goes to full speed.


3 months ago

I would go with a reed switch. It is super easy to connect and read (Digital input) and gives you the option to finetune the distance: As the reed will switch before it touches the magnet physically, you can adjust the position of the magnet to have it stop exactly where it needs to. Also, A reed-switch is cheap, small (good for dollhouse) and does not need any power like other solutions like capacitive sensor, or infrared barrier.
As an alternative, you also could use bare metal to act as switch: Have a FET disconnect the GND of your motor my closing the circuit to the gate of the FET. Thats super fast (as it is solid state and not programm-driven) and also can be very small. If you then read the state of the connection with the arduino, you know: As soon as you first detect the closed circuit, you know: the motor is already disabled. If your Elevator-Sensor is much higher impedance than your arduino (There is a high resistorvalue to the elevator-switch and no resistor to the Arduino) you can now switch the arduino-pin from Tristate to output and enable the GND-connection to the motor again; ready for raising it upwards again...