ステッピングモーター制御回路のプログラムコード
1章:MPLABR X IDE v2.25開発環境の構築、「newmain18.cの内容変更ファイル」をベースに修正しました。
(1)主要コード
*SW1でカウントアップ、SW2でカウントダウンします。
*カウント値の変化に応じて回転します。
*単純な1相励磁としました。
unsigned short n;
unsigned char CH[4] = { 0x01,0x02,0x04,0x08};
void init(void)
{
ADCON1 = 0b00001111; //全チャンネルがデジタルに設定され、VDDとVSSが選択
TRISA = 0b00011100; //A0〜A4を入力に設定
TRISB = 0b00000000; //出力に設
TRISC = 0b00110000; //D-,D+(USB用)RC4とRC5を入力に設定
TRISD = 0b00000000; //D0〜D7を出力に設定
TRISE = 0b00000011; //SW1,2=INPUT LED=OUTPUT
LATA = 0b00000000;
LATB = 0b00000000;
LATC = 0b00000000;
LATD = 0b00000000;
LATE = 0b00000000;
}
void main(void)
{
int i;
init();
n = 1000;
while(1)
{
for(i=0;i<10;i++){__delay_ms( 2 );} //20mS
LED = !LED;
if(SW1 == 0)
{
n = n+1;
}
if(SW2 == 0)
{
n = n-1;
}
PORTD=CH[n % 4];
}
}