Go Down

Topic: Fun project for you. Stepper motor, 12864 LCD, Menus, buttons.  (Read 863 times) previous topic - next topic


Hi, I'm really busy and just need to get this thing working.

My setup:

Arduino Mega,
DfRobot stepper shield
RepRap Full Graphic Smart Controller (I'd need to use the 128x64 screen, rotary switch button, and buzzer)
Stepper motor Linear Actuator
Momentary switches

What it does:

Controls a stepper driven linear actuator to operate a piston pump, and the menu has 5 different settings;
Dispense X (a specific pre-set volume)
Dispense Y (a specific pre-set volume)
Dispense Z (a specific pre-set volume)
Dispense Variable (a non- pre-programmed volume)
PRIME (Cycle the actuator fully twice)

What I want it to do:

I want to use the rotary knob to select which pre-set volume I want, bringing me into the sub-menu and use a separate "START" button to start the cycle. When the cycle is completed, I want the pump to "HOME" and a brief alarm to sound except on the "PRIME" cycle.

Also, have a secondary function of a switch with a time delay. this one is simple. but I basically need an electric motor running constantly in the background until a switch is triggered. It must reverse the motor for a very short period of time and restart it, as well as sound an alarm.


(All Momentary N/O)

"START" There will be a switch to start the pump cycle. I want the cycles counted and displayed until I exit that menu. (pin A12)

"Motor" A momentary switch that starts and stops the continuous motor subroutine (Pin A13)
"Motor stop" This is a switch that activates the motor stop delay. (Pin A14)

"Home" A switch for homing the actuator. (Pin A15)

The rotary knob; Turning it navigates the menu, button press confirms the main menu selection and moves you into the sub menu. (Pins A9 (up) A10, (down) A11 (Button))

While in the sub menu for dispense X, Y, and Z the rotary knob does nothing and the button press in the sub menu either brings you back to the main menu OR have a "BACK" menu option.

While in the Variable Dispense sub menu, I want the rotary knob to increase and decrease a value (maybe 15-500), and that value be translated into steps and activated with the "START" switch.

12864 LCD on any pins 22-53 (just please define which LCD pins you are using)
Stepper motor through the DfRobot shield (pins 6,7,8) 
Continuous motor output for the motor stop subroutine (on any pins 22-53, please clearly define)
Alarm 1 (For the cycle finish) (on any pins 22-53, please clearly define)
Alarm 2 (For the motor output subroutine) (on any pins 22-53, please clearly define)

Before wasting my time starting something, I'm asking for help. I know there are unknown variables as in how many steps are required for each volume, as well as how many steps are in the full travel, and the delays required. If you describe your code within the code I can figure out how to tweak things to my exact needs. but this sums up the function of my machine. I know I could figure it out, but I'm low on Tylenol and time. I just need to get this thing going!

Also, not to be rude, but please don't waste my time if you don't know exactly what you're doing. This is pretty straightforward IMO, but I'd hate to commission someone and wait for a code that doesn't work and have to find someone else. I ONLY say this because I know what it's like to bite off more than you can chew. You get the feeling of "I can probably do this" and then instant regret. I've done it too many times. That's why I'm posting in the gigs forum and not in the help sections this time.

As with everything in the life of someone with waning patience, I do need this ASAP haha.



Ok, after wasting a day fiddling, I decided to make this simpler.

What I want:

16x2 LCD with a dispense value displayed up top (0-266) , and a cycle counter on the bottom.
Potentiometer that changes that dispense value

A stepper step equation that takes the dispense volume value and turns it into steps. I will have to calibrate everything myself, but if the equation is there I can do it. It will be a volume displacement in ml calculated by screw pitch, and diamater of the piston in the pump to output steps.

The cycle starts with a button and counts the cycle.

a reset button will reset the counter.

A limit switch for homing the pump.

That's it.

The stepper motor is driven by a one-axis tb6600.

I'm hobbling together this code by copying sections but it's messy and I'm wasting a lot of time trying to figure it out.


So, how is the progress with this? It sounds like huge fun!

The only law for me; Ohms Law: U=R*I       P=U*I
Note to self: "Damn! Why don't you just fix it!!!"


Hi Havoc

Please get in touch with me @ mugambisoftware at gmail dot com

Go Up