Building a piece to control four motors. The four motors are in sets of two. Its going to work to build this controller to handle two sets of motors.
The motors are 1/4hp turning around 100 rpm on 24v. I am getting the required speed from a GPS controller. The GPS controller has a speed output for each individual motor. The sets of motors need to not only run at the same speed but also be timed with each other. Each motor has an eight tooth sprocket. So I am using a hall-effect style sensor to not only monitor the speed but also the timing of the motors relative to each other. For this deal, I need to see the sprocket evenly spaced between each motor. So I will see even time between sprocket teeth between the two mated motors.
I have checked the four motors and when all four are being powered at the same time with the same power source, the rpm isn't exactly the same. Exact being a couple revs off, over time this is critical.
The attached schematic takes in the four GPS signals into two Microchip 16F876A chips. I have to use two chips because I am using the Hardware PWM outputs to control the speed of the motors. Each chip has two HPWMs. Anyway, I read in the required speed from the GPS signals labeled Pulse Ground on the schematic. The pic then outputs a PWM through a P type MOSFET outputting to the PWM1-4 channels on the schematic.
To monitor the timing of a set of motors I am using the Hall Effects to turn on and off a flip flip. One sprocket/hall effect turns on the flip flop and the other will turn off the flip flop. The output of the flip flop goes into the pic. I will count the time the input is high and low. If I see the time not 50/50 I will then adjust the HPWM for the required motor to get it back in time. This time measurement will also be used to calculate the true rpm of the motor and I will compare that with the Pulse Ground input (required rpm) and also adjust the HPWM accordingly.
Is this the right approach?
The motors are 1/4hp turning around 100 rpm on 24v. I am getting the required speed from a GPS controller. The GPS controller has a speed output for each individual motor. The sets of motors need to not only run at the same speed but also be timed with each other. Each motor has an eight tooth sprocket. So I am using a hall-effect style sensor to not only monitor the speed but also the timing of the motors relative to each other. For this deal, I need to see the sprocket evenly spaced between each motor. So I will see even time between sprocket teeth between the two mated motors.
I have checked the four motors and when all four are being powered at the same time with the same power source, the rpm isn't exactly the same. Exact being a couple revs off, over time this is critical.
The attached schematic takes in the four GPS signals into two Microchip 16F876A chips. I have to use two chips because I am using the Hardware PWM outputs to control the speed of the motors. Each chip has two HPWMs. Anyway, I read in the required speed from the GPS signals labeled Pulse Ground on the schematic. The pic then outputs a PWM through a P type MOSFET outputting to the PWM1-4 channels on the schematic.
To monitor the timing of a set of motors I am using the Hall Effects to turn on and off a flip flip. One sprocket/hall effect turns on the flip flop and the other will turn off the flip flop. The output of the flip flop goes into the pic. I will count the time the input is high and low. If I see the time not 50/50 I will then adjust the HPWM for the required motor to get it back in time. This time measurement will also be used to calculate the true rpm of the motor and I will compare that with the Pulse Ground input (required rpm) and also adjust the HPWM accordingly.
Is this the right approach?
Attachments
-
46.3 KB Views: 34