![robotstudio target external axis robotstudio target external axis](https://doctorlib.info/medical/biochemistry/biochemistry.files/image568.jpg)
If there was a rush to get it out there on the floor working, then perhaps not as much attention was paid to this aspect of the design as (retrospectively) should have been.įor example, focusing on the position encoder again, is there one or two position encoders? How much time and effort was spent on adding limit checks and error checks to the code? Is the power supply super-duper over-protected from noise? Long wires will act like great antennas to pick up electrical noise.Īre all of the I/O signals filtered at the micro? That means that your micro's power supply, PCB layout, and all the inputs and outputs need to have very good filtering.įor example, how is the position encoder data getting to the micro? I'm guessing that there is a lot of electrical noise in the vicinity of the micro, both radiated from the welder and big motors, etc., and that induced in the Mains power grid from the same items. Is this a gas welder or an electric arc welder? New machine installed next to the welder?
![robotstudio target external axis robotstudio target external axis](https://p3-tt.byteimg.com/origin/pgc-image/3a3998dabc444d0bae084dc946140896.jpg)
Perhaps the errors are occurring more frequently now? Next, it sounds like the project has always had problems, even from the beginning? The only comment that I'd make in that regard is to make sure that all of you ISR variables are declared volatile.
#Robotstudio target external axis code#
If(RotateCheckCount>4500) // this stops the motor if the rotator gets jammed and cannot moveĭisclaimer, I don't read C, so others will have to look at the code for you. _delay_ms(10) // just in case the robo processor is faster than this one
#Robotstudio target external axis driver#
If ((StartAngle - EndAngle) 10000) // this turns on motor driver relay Void GetDirection(uint16_t StartAngle,uint16_t EndAngle) // determine which direction to go Uint8_t RotateOnce = 0 // so it can only be told to rotate once Unsigned short result = 0 // was unsigned short Void GetDirection(uint16_t StartAngle,uint16_t EndAngle) Micro counts to 6400 before it turns the step on or off 800 steps per rev because motor is 200 steps per rev, but using half stepping, and timer toggles on then off when output on compare If someone could have a look I would be very grateful, I've been staring at this on and off for weeks and testing, and not sure what else to do.Īlso, I tried to post this using Chrome, and the code editor didn't work, using MS Edge :P I'm assuming that someone will just be able to read through the code quick? and point out several basic issues with it that will likely solve my problems, hopefully don't have to get into the logic of it. Sorry for the novel and the vagueness of my issues, I'm guessing that it is as much syntax issues as logic.
![robotstudio target external axis robotstudio target external axis](https://www.researchgate.net/profile/Manuel-Silva-8/publication/325049552/figure/fig3/AS:624448830984192@1525891611773/Figura-8-Robot-with-the-path-already-sequenced_Q320.jpg)
I can manipulate output bits from the robot for testing the board and uC and I never get any issues, it is only in Auto mode for the robot when it is welding that it has issues. Other odd behavior is that the uC becomes unresponsive, and a couple of times it just rotates forever while being unresponsive to the output bits from the robot. I'm pretty sure that I have ruled out the uC being reset because for testing purposes when rotation degrees is set to 1, then it turns on output B3, which I had a relay on that output, and if the relay stayed on while experiencing the error, then it wasn't resetting, and it stays on. Upon investigation, the LED's on the board indicate that either the uC has reset, or for some reason the stepper motor has been disabled in the middle of a rotation(motor driver still has power, but enable pin on motor driver has been disabled). I can't exactly pinpoint my issue, but what is happening is that during a rotation, and not necessarily the first rotation, sometimes 2nd, sometimes 8th, it just doesn't rotate. The program start bit is turned on every time the robot starts a job, and stays on until the job is finished. I was trying to make some changes to the program, since from time to time we experience issues with the rotator, but the uC didn't have issues like the ones I am having now. The robot sends an 6 bit # to the AVR for the angle to rotate to, then strobes a bit to start rotate (stepper motor), and the AVR takes care of the rest then sets a rotate complete bit for the robot to continue welding, it also utilizes an encoder to read the position (grey code). I am using an Atmega32a, and I am quite the newbie when it comes to electronics and uC's, using Atmel Studio 7.Ī couple years ago I made an additional rotation axis for our robotic welder. Due to space and weight constraints, off the shelf wasn't going to work for us. Hi Everyone, thanks for taking the time to look into my issue.