PDF BA5845FS
Zasilam go z napięcia 7,5V (napięcie nie zależne od silnika)
Podpięty jest do Atmega162(lub Atmega32)
Efekt jest taki że rzuca silnikiem, a jeżeli już załapie to kręci się albo przypadkowo albo w złą stronę.
Kod: Zaznacz cały
uint8_t step = 0;
#define MPort PORTC
#define IN11 2
#define IN21 1
#define IN12 3
#define IN22 4
...
void nextstep(uint8_t dir)
{
if(step==0)
{
MPort &= ~((1<<IN11)|(1<<IN21));
}
if(step==1)
{
MPort &= ~((1<<IN11));
MPort |= (1<<IN21);
}
if(step==2)
{
MPort |= (1<<IN11)|(1<<IN21);
}
if(step==3)
{
MPort |= (1<<IN11);
MPort &= ~((1<<IN21));
}
step++;
if(step>3)step=0;
}
int main (void)
{
//Inicjacja Silnika
DDRC = ((1<<IN11)|(1<<IN21)|(1<<IN12)|(1<<IN22));
MPort = (1<<IN11)|(1<<IN21)|(1<<IN12)|(1<<IN22);
MPort |= (1<<IN12)|(1<<IN22);
...
}
Jak prawidłowo powinno się nim sterować?