Hey all, I'm working on a project i posted about a long time ago (probably over a year) that I had to put on hiatus, but am picking it back up.
Long story short, I'm building an analog clock as a gift for my dad using an Arduino Uno. It'll have minute and hour hands only. I will use a stepper with gears to drive these hands. However, I am concerned about prolonged heat that the stepper and its driver will generate.
Here are links to what I am using: Stepper link, Driver link
I am using a power supply with 12VDC, with 1.67A max. The potentiometer on the driver is set to the lowest setting of 150 mA.
Also, I am not sure how much torque I'll actually need from a stepper: I imagine not a lot, but the hands will be made of acrylic rod and the gears and shafts will be metal, bought from http://www.sdp-si.com/products/Gears/Index.php.
Here is the stepper configuration I'm using, though I have pins 4 and 5 swapped. Doesn't matter in this case though as they're both LOW.
I ran some preliminary tests using a simple code to see how much it would heat up. Basically, I had it do 40 full steps every second. I tried to minimize the time that the stepper was energized to 1ms, and deenergized for 1499ms. Overall, this is much faster than what I plan on actually running it, but I was surprised on how hot it got... I let it run for about 20 minutes or so, and the stepper rose to about 50 deg C, and the IC on the driver got to about 65 deg C!
Now currently I'm running a similar test at a more realistic step pace, 0.66 steps every second, or 1 step every 1.5 seconds. This would mimic what would happen in the final product, albeit a different code to run it. The time execution should be similar though;
I thought with the code executing 60x less per second, it would mitigate the heat generated... alas that is not the case. The stepper is still 50 deg C, the IC on the driver at 64 deg C.
Overall, is there anything I can do to mitigate the heat these generate? Since this is for a wall clock, it'll be on 24/7, and I'm afraid of a prolonged burnout. I've thought about heat sinks of some kind, but would like to know the theory of why it's getting so hot and see if I can change the configuration or code before I jump into that. Perhaps I need to look into buying a smaller stepper, or maybe approach this differently altogether. Thoughts?
Long story short, I'm building an analog clock as a gift for my dad using an Arduino Uno. It'll have minute and hour hands only. I will use a stepper with gears to drive these hands. However, I am concerned about prolonged heat that the stepper and its driver will generate.
Here are links to what I am using: Stepper link, Driver link
I am using a power supply with 12VDC, with 1.67A max. The potentiometer on the driver is set to the lowest setting of 150 mA.
Also, I am not sure how much torque I'll actually need from a stepper: I imagine not a lot, but the hands will be made of acrylic rod and the gears and shafts will be metal, bought from http://www.sdp-si.com/products/Gears/Index.php.
Here is the stepper configuration I'm using, though I have pins 4 and 5 swapped. Doesn't matter in this case though as they're both LOW.
I ran some preliminary tests using a simple code to see how much it would heat up. Basically, I had it do 40 full steps every second. I tried to minimize the time that the stepper was energized to 1ms, and deenergized for 1499ms. Overall, this is much faster than what I plan on actually running it, but I was surprised on how hot it got... I let it run for about 20 minutes or so, and the stepper rose to about 50 deg C, and the IC on the driver got to about 65 deg C!
Code:
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(2, HIGH);
delay(1);
digitalWrite(2, LOW);
delay(24);
}
Code:
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(2, HIGH);
delay(1);
digitalWrite(2, LOW);
delay(1499);
}
Overall, is there anything I can do to mitigate the heat these generate? Since this is for a wall clock, it'll be on 24/7, and I'm afraid of a prolonged burnout. I've thought about heat sinks of some kind, but would like to know the theory of why it's getting so hot and see if I can change the configuration or code before I jump into that. Perhaps I need to look into buying a smaller stepper, or maybe approach this differently altogether. Thoughts?