10-19-2023 11:30 PM
Hello,
I recently purchased a brushless peristaltic pump and have a question about it, which I'm hoping someone on this forum can answer. As you can see from the attached PDF file, where the specs for the pump I purchased is in section 2.2, the pump has 5 wires. I've already figured out how to send a PWM signal and change the flow direction of the pump using LINX and an Arduino UNO, but the wire I am specifically enquiring about in this post is the green one, or the feedback signal. I am trying to control the peristaltic pump with a PID controller, and from what I understand, I need a measured process variable to help the controller determine how to minimize error, which I'm assuming the feedback signal can provide me with. 1.) How exactly would I go about reading/interpreting the signal from the green wire using LINX and an Arduino UNO? Is there a standard protocol to follow when attempting to read the feedback signal of a brushless motor? 2.) I'm aware that I need to know the pulses per revolution of the motor, which I already know, in order to calculate the RPM, but what equation should I be using after I've figured out how to interpret the feedback signal from the green wire?
10-20-2023 06:38 AM
hello!
not sure if i can help, but i'll try.
are you powering motor using arduino? i would not recommend that. use an external supply with same ground reference. Arduino can output little current, but a friend of a friend once burnt his USB trying to power a motor with arduino.
Try measuring the signal from FG wire with a multimeter or oscilloscope, in different pwm speeds of the pump.
The major concern here is how to measure flow directly with an indirect measurement. That is a nice hypothesis: "Can I measure flow by getting feedback from the motor?" but since you are trying to build a PID controller, I would use an external sensor for that.
i mention this because datasheet states:
"Actually, there will be certain errors in the flow rate according to different media, different outlet pressures, and DC motor speed
errors. The data are only for reference"
Is it a flow PID Controller? level PID controller?
10-21-2023 02:12 AM - edited 10-21-2023 02:50 AM
Thank you for your reply Jorge,
@jorgemondadori wrote:
are you powering motor using arduino?
No I am not using the Arduino's power supply for the motor. I am using an external 12V power source to energize the motor. Only GND from the Arduino is connected to the negative terminal of the external power supply.
@jorgemondadori wrote:Try measuring the signal from FG wire with a multimeter or oscilloscope, in different pwm speeds of the pump.
I currently don't own a multimeter or oscilloscope but I can get one. I'll report back here after I get one of the two to see what sort of readings I am getting.
@jorgemondadori wrote:The major concern here is how to measure flow directly with an indirect measurement. That is a nice hypothesis: "Can I measure flow by getting feedback from the motor?" but since you are trying to build a PID controller, I would use an external sensor for that.
I'm actually trying to calculate the RPM of the brushless motor at certain PWM levels, so that I can replicate the speed every time I turn it on. I will calculate flow rate of the pump by taking some measurements i.e reading the mass of liquid dispensed from the pump after a certain time period. I have the density of the liquid being used, so I can convert the mass measurements into milliliters or volume. With this data, I will then plot a volume versus time linear curve to get the flow rate. It may not be the exact flow rate, but a rough estimate will do, as the dispensed amount from the pump does not have to have extreme precision. Maybe an error of ± 2ml is fine. Once I have the flow rate at a certain PWM level, and have acquired the RPM at that level, I will use the PID controller to try and replicate that same speed every time I use the peristaltic pump. When you say external sensor, do you mean something like a Tachometer? if not, what external sensor do you recommend I use?
@jorgemondadori wrote:Is it a flow PID Controller? level PID controller?
I'm not too sure myself as this is the first time I'm trying to use a PID controller. Probably a speed PID controller, if there is such a thing.