![]() |
Arduino Micro with Talon SR
Hey all, (This is not for our robot but for a personal project)
So I am trying to connect a Talon SR to an Arduino Micro (With the Leonardo Processor) to power a Mini-Cim. I think I have all the electrical down but I'm not sure how to connect the PWM from the talon to the Arduino. My guess is that I cut the pos and neg wires on the PWM and just connect the white wire (since I already have 12 volts going through the talon). If this isn't how to do it, where should I connect the pos and neg terminal to on the Arduino (or in my circuit)? Thanks! |
Re: Arduino Micro with Talon SR
You do want to connect the positive and negative to the Arduino - negative to a ground pin, positive to (I believe) a 5V pin.
|
Re: Arduino Micro with Talon SR
Quote:
And I'm guessing the White Wire goes to a PWM pin right? I found this image like ten minutes ago |
Re: Arduino Micro with Talon SR
you don't need the red wire, its not connected to anything inside the talon :)
|
Re: Arduino Micro with Talon SR
Connect PWM output od Arduino to PWM input of Talon, and connect the twos' grounds.
Not sure about the power wires. |
Re: Arduino Micro with Talon SR
There are a myriad of other threads out there that go into detail about connecting motor controllers to Arduinos.
But to get you started, read up on servo PWM, it's not the same thing as the pseudo analogue PWM you get from the PWM pins (with analogueWrite()). You'll probably need the Arduino Servo library to create the appropriate signals for the Talon. |
Re: Arduino Micro with Talon SR
When you are writing the pwm signal make sure neutral = 47, 74 = full forward, 20 = full reverse. These are the correct values the controllers expect, otherwise you will have to re-calibrate the controllers for them to work properly.
|
Re: Arduino Micro with Talon SR
Thanks All, I figured it out, you have to connect the red to the VCC (5V or 3.3V depending on the board) black to ground and then the white one to a PWM pin. I used the Servo library and read the vals from a potentiameter and fed them to the talon during calibration. Now if i could get the underglow working...
|
Re: Arduino Micro with Talon SR
I'd skip the servo function and instead use servo.writeMicroseconds.
Cleaner control numerically. 1000 is rev, 1500 neutral, 2000 forward. |
Re: Arduino Micro with Talon SR
Quote:
Servo.writeMicroseconds() is a function in the Servo library, and not a substitute for that library. And, I think the Talon has a max/min pulse range larger than 1500+/-500. Read the Talon's fine manuals (easily found using a Google search) to see wiring and pulse range information. FYI: I'm using an Edison Arduino in a project, and having pretty good luck so far. I have worked around the one WiFi bug that was giving me trouble, and I don't have any other show-stoppers on the horizon (yet). At about $100, it gives you built-in WiFi, and a lot of computing bang for your buck, in situations where Arduino-style I/O is useful. Consider using one in your next project.... Blake |
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
Does anyone know how to calibrate the SR so it doesn't go reverse, I'm making an electric skateboard and don't plan to parallel park.
|
Re: Arduino Micro with Talon SR
Here are the calibration instructions from per 7 of this document.
6) Calibration The calibration procedure takes the minimum, maximum and center values of the PWM input signal and scales the output based on these values. Calibrating the Talon will allow full range of control with PWM signals that are not within the default range. Calibrating will also correct any non-center issues with input devices such as gamepads or joysticks. To calibrate the Talon: 1. Press and hold the button labeled “CAL” with a paper clip. The LED should begin to blink red/green. 2. Continue to keep the button pressed while moving the joystick full forward and full reverse. You may do this as many times as you like. 3. Center the joystick and then release the CAL button. 4. If calibration was successful, the LED will blink green several times. If the LED blinks red several times, the calibration was not valid. If this happens, the Talon will use the last valid calibration values. All calibration values are retained after power cycle or reset. |
Re: Arduino Micro with Talon SR
Quote:
Quote:
|
Re: Arduino Micro with Talon SR
Quote:
The obvious answer is just to only send it "forward" commands, using pulse widths between 1.5 and 2.0 milliseconds. Never give it anything less than 1.5 milliseconds, and it will never go in reverse. |
Re: Arduino Micro with Talon SR
Quote:
Quote:
Now, if you only need +/- 90 steps instead of +/- 500, then using servo.writeMicroseconds has no advantage. |
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
You can also specify the servo min and max pulse widths in the attach call:
Servo driveServo; driveServo.attach(3, 1000, 2000); // TALON // widths are in micro-seconds Then use servo.Write() 0 is reverse, 90 is stop, and 180 is full forward. I would still calibrate the Talon (or other motor controller) to ensure it goes full speed. Write an arduino sketch that starts at neutral and waits for a character to arrive from the serial port. Then have it switch to servo to full speed forward, wait for another character and then go full reverse. After waiting for another character, go to neutral. Use Serial.Print to tell the user whats going on and prompt for a character. If you use the serial port monitor in the arduino IDE, you will have to click the "Send" button after each key. One other thing: I put a 330 ohm resistor in series with the white wire driving the PWM input on the Talon so it doesn't try to drive too much current through its input opto-isolator. |
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
Quote:
Code:
driveServo.attach(3, 670, 2330); // Jaguar |
Re: Arduino Micro with Talon SR
Quote:
Thanks! |
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
Quote:
I'm fully aware of the need to program for integers in some cases. I even wrote a fully integer semi-swerve drive inverse kinematics a few years ago. My semi-swerve platform was about 1/3 FRC scale, with a 0-180 degree maximum steering angle steered by servos, and 25mm 1000rpm gear motors for drive, and yes, it was controlled with an Arduino. Unfortunately, the only hard drive that the code was on has since died. The key was that I wrote a hypoti(x,y) subroutine that calculated an integer hypotenuse using max(x, y) and the ratio 256 * min(x,y) / max(x,y) (where x and y were preprocessed to be non-negative), and an atan2id(y,x) that returned atan2(y,x) in degrees based on the same ratio, whether abs(x) or abs(y) was larger, and the two input signs. IIRC, the atan2id() routine had two separate cubic fits to cover the span from 0 to 45 degrees, that broke based on whether 2*min(x,y)/max(x,y) was 0 or 1 (that is, at about 28.8 degrees). |
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
Quote:
|
Re: Arduino Micro with Talon SR
1 Attachment(s)
This is a snip from the schematic of a jaguar motor controller, notice pin two :)
|
| All times are GMT -5. The time now is 02:13. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi