I have purchase a Sabertooth 2x32 motor controller, a LCD with serial interface, and an Arduino Uno, with the hopes of using them together. However, I am now a little concerned that the arrangement will not work as I had hoped.
Specifically, I want bi-directional communication between the Uno and the Sabertooth so that I can display information about the motor system onto a serial LCD panel. Also, I would love to be able to type and view data via the Serial Console on the Arduino.
This means 3 serial connections. I was perhaps incorrectly under the impression that the Arduino can use several pins for input and output and I though this included serial. The Perhaps the Uno was the wrong choice, and I needed one of the Arudinos that have multiple serial ports. An alternative, is if my motor controller would accept SPI data.
I also know that the Uno shares its serial port with the USB port. Does that mean that as I am saving new programs to the Uno, anything else on the serial port is listening?
If I want to have these multiple devices talking with the Arduino, how might you recommend I proceed?
-Joe
Hey Joe,
I don’t personally have experience with Sabertooth and LCD, but I do have plenty of experience with networking many devices that need to talk with one another - specifically using Arduinos. There are links in my signature to a YouTube channel where you can browse some videos, but I’ve got an Arduino Mega talking to an Arduino UNO that in turn talks to 2 motor controllers (back and forth) as well as to a Servo Motor controller board… along with many different sensors. I don’t think you’ll have any problem with the Arduino.
What’s your project about, by the way?
Cheers,
Nick.
Joe - one more thing… in my ROVer project I don’t use a LCD because I actually have my project running off of a Android tablet as the primary computer/brain of the robot. It’s my LCD, I guess, but it’s also another device with bi-directional communication… further to your question.
Cheers,
Nick.
Nick, It is not clear to me how your Arduino is communicating with the other devices. I realize it is a serial protocol of some sort. But, there is also SPI and I2C in that generic category. I think the kind of serial I need is the RS232 type, though at 5v rather than +/-12v.
But, I got to speak to the makers of the Sabertooth, and spoke to one of their support staff. She commented that she has had a little experience with a software serial ports. So, I may use that method. The biggest draw back to that approach for me, is that my Arduino experience is limited. So, it is another thing to learn about.
I also learned that it takes 2 serial connections to do everything with the Sabertooth, if you have the Kangaroo Quadrature encoder interface installed. One serial connection sends the motor commands directly to the Kangaroo, and then the second serial connection is used for 2-way communication with the Sabertooth, which is necessary if you want things like reading the current draw.
So, if I also want to talk with my computer while it is working during development, I will need a total of 4 serial ports. I might go to the Mega, since I now know that this one has 4 serial ports.
-Joe
Hey Joe,
Very interesting and thanks for elaborating - I certainly wasn’t aware… though it’s all a learning process for me on ROVer as well
ROVer uses the RoboClaw motor controllers (2 of them) and communication is via Packet Serial in a daisy-chained configuration that allows me to communicate (back and forth) with both of them using just two pins on the Arduino UNO. My MEGA ADK board communicates with the UNO over I2C and communicates with the Android via a dedicated USB port there. The UNO communicators with the SSC-32 board (for servos) over its Rx pin, but that’s just one-way out to the servo board, of course.
Good luck with the new-learning stuff and post updates! Cheers,
Nick.