Can I use this motor controller to control 2 solenoid proportional valves?
The solenoid valves - rated at 5 V - 11 ohms.
I also know the solenoids require only about 400Hz PWM.
This motor controllers PWM rage from3.9 - 31.5KHz.
The older version of the Dual serial motor controller had PWM- 600Hz - does the older version
suits better if I can use any of the contollers?
The faster PWM frequency shouldn’t matter (we generally consider it a feature, though we don’t think of solenoids much), and we don’t make the older controllers any more, so I think you should go for the qik 2s9v1.
I am trying to connect the driver to a dc motor prior to trying it on a VSO(variable solenoid valve).
I connected the driver as directed and I tried the DEMO mode - which worked as expected.
Then I connected to a dc motor and using a Propeller board sent the srial commands.
1.The green light blinks couple of times a second - NO red light.
2. NO movements noted on the motor.
3.Connected the Rx pin to the scope - receives the signal
Placed the driver back on Demo mode.
1.Diriver works well - red LED on/off - corresponding to Motor1 and motor2.
2.connected the Tx pin of the Driver to the scope.
3.Send serial commands via the propeller. 4.NO return signals seen - I should have
So the driver receives the signals(Monitored via scope and debug module).
Is the Driver bad or what I am i doing wrong?
The propeller code works well as I double cheked with a debug program and monitor.
It’s good to know you have verified that transmissions are taking place, but there could be a problem with the values you are sending. The qik is in auto-baud-detect mode by default, so the first byte you send to the board must be 0xAA, which it uses to detect the baud rate. Are you sending this as your first byte? When the qik has not detected the baud rate, the green LED flashes on and off evenly every 0.4s. Once it has learned the baud rate (or if it is in fixed-baud mode), the green LED flashes a quick heartbeat once every two seconds. This latter mode is the one you need the qik to be in before it will respond to your serial commands.
What are you sending to the qik and what baud rate are you using? Can you verify using your oscilloscope that you are sending the values you think you are at the baud rate you think you’re using? If you keep having trouble, you should try communicating with the qik in fixed-baud mode (i.e. add jumper A and transmit with a baud rate of 38.4 kbps).
I just realized that I neglected to address the serial test you performed while in demo mode. In demo mode, the transmit pin just outputs the input value of the RX pin, so if you’re not seeing anything echoed back, that indicates a potentially different problem that could be caused by several things:
Your serial voltage from the propeller is too low (What is the maximum voltage you see for your serial signals, and what are you using to supply the qik’s logic voltge?).
You don’t have a common ground connected between your propeller and the qik.
Your baud rate is too high (though I would expect you to see something echoed in this case, even if the output byte doesn’t match the input byte).
If you hold the RX pin high while in demo mode, you should see TX pin output high, and if you hold the RX pin low while in demo mode, you should see the TX pin output low. Do you get this behavior?
Did you try my suggestion above? Specifically, if you put the qik into demo mode and ground the RX pin, does the TX pin output 0V? If so, you know the serial pins are functional. If not, we need to figure out why. Is the qik’s logic voltage coming from the propeller’s 3.3V rail?
Also, if you have a motor connected to the qik, please disconnect it until we can verify that serial communication is working. If the qik successfully learns the baud rate from the initial 0xAA byte, you will see the behavior of the green LED change. If you just send 0xAA, do you see the blinking pattern change as I described in my initial post?
I took your sugesstion and tried with the fixed baud rate.
Now The greed LED blinks ?about every 2 sec.
So sent serial commands about 5sec apart and now I see the green LED bliks with every serial
command and also blike once about every 2 sec as it is suppose to - but I have no motion from the
The logic voltage coming to the Motor controller is 3.3v.
I will try this next ["If you hold the RX pin high while in demo mode, you should see TX pin output high, and if you hold the RX pin low while in demo mode, you should see the TX pin output low. Do you get this behavior?]
as you sugessted.
Do I require resistor ?10k or so to pull it high/low to 3.3+ and -ve.
The LED behavior you’re describing indicates that the serial recieve line is detecting input, which is a good sign. The lack of response from the motors makes it seem like you might not be sending what you think you’re sending. Is your propeller outputing non-inverted, 8-bit characters (8-N-1)? Are you sure you’re setting the baud rate correctly?
If you have access to a USB-to-TTL-serial adapter, I recommend using our Serial Transmitter utility to send commands from your computer to the qik. If the motor controller functions properly when using the transmitter utility, you know that there is something wrong with the bytes your propeller is sending, and you can use your oscilloscope to compare the serial signals that work to those that do not to get a sense for what is wrong. Also, you could post a picture here of an oscilloscope capture of the serial signals your propeller is sending the qik and I can see if I notice anything that would explain your problems.
For the other test I was mentioning, you can just put the board into demo mode and directly connect the RX pin to ground (it’s an input, that is pulled up internally by default). If the TX pin goes from high to low when you ground RX, you have verified that both RX and TX are functional pins on the board. Note that TX is an output, so you should never connect that pin directly to VCC or GND.
I figured out what I was doing wrong.
You were wright I was not sending a valid serial signal.What I was sending via the
propeller was NOT a byte but number of characters like 1,4,1 etc intatead of
141 as a byte.The motor driver was expecting to receive bytes of info.