Valve control system by using Arduino

I’m write this post for asking for assistance regarding this topic.

My project is about controlling the valve timing condition for a piston expander. I uses the rotary encoder to detect the crank angle and send the signal to the Arduino to control solenoid valve opening and closing. When the crank angle reaches certain position, intake valves and exhaust valve will open and close automatically.

The number of solenoid valve that needed to control is 5 and Arduino Uno will be used.

I’m a beginner of Arduino and I have some questions to ask :

1.) Is Arduino Uno suitable for the expander which operates at 2000 r.p.m.? Can it responses fast enough to the solenoid valves from the detection of crank angle from encoder?

2.) How I do write the code for this ?


2000 RPM is 33.3 revs per second - it is generally easier to deal with seconds when programming.

That is relatively slow by Arduino standards but you have not told us the important data -

  • how many encoder pulses will occur every second
  • how many solenoid actions must take place every second
  • what timing error in the action of a solenoid is acceptable (none is not the right answer).

If you want someone to write a program for you please ask in the Gigs and Collaborations section of the Forum and be prepared to pay.

If you want to do it yourself and you are completely new to programming then what you describe will be a very challenging project. You need to learn the basics first.