When I opened the case. I found a PCB which is screwed to a big heatsink. I unscrewed the bolts and saw that there is S109AFTG. The IC is sandwiched between the PCB and the heatsink. A small aluminum block is also used for heat transfer between the IC and the heatsink.
It has a different step size which can be selected by the DIP switches.
The motor driver has a maximum of 1/32 step size.
which means 1.8°/ 32 = 0.05625°
360°/ 0.05625° = 6400 steps
So a full rotation will be in 6400 steps.
You will need a power source such as a Switched Mode Power Supply which can supply at least 2 Amps.
If your application needs more torque you will need a power source that can provide a high current without dropping the voltage.
Or you can use the battery for a short duration.
Schematic Diagram
Code
/*
* main.c
*
* Created: 7/4/2023 5:51:21 PM
* Author: abhay
*/
#define F_CPU 16000000
#include <xc.h>
#include <util/delay.h>
int PUL=PIND6; //define Pulse pin
int DIR=PINB1; //define Direction pin
int ENA=PIND2; //define Enable Pin
#define DirLow PORTB &= ~(1<<DIR)
#define DirHigh PORTB |= (1<<DIR)
#define PulLow PORTD &= ~(1<<PUL)
#define PulHigh PORTD |= (1<<PUL)
#define EnaLow PORTD &= ~(1<<ENA)
#define EnaHigh PORTD |= (1<<ENA)
#define delayus50 _delay_us(50)
int main(void)
{
DDRB |= (1<<DIR);
DDRD |= (1<<PUL)|(1<<ENA);
while(1)
{
//TODO:: Please write your application code
for (int i=0; i<6400; i++) //Forward 6400 steps
{
DirLow;
EnaHigh;
PulHigh;
delayus50;
PulLow;
delayus50;
}
_delay_ms(5000);
for (int i=0; i<6400; i++) //Backward 6400 steps
{
DirHigh;
EnaHigh;
PulHigh;
delayus50;
PulLow;
delayus50;
}
_delay_ms(2000);
}
}
Leave a Reply