ステッピングモーター制御

概要

多摩川精機製のステッピングモーター「TS3103N124」を秋月電子通商で購入いたしました。 早速、これをPICで制御してみました。 TS3103N124の規格は、以下のとおりです。

2相ユニポーラ型

ステップ数200(1.8度)

駆動電圧(12V)

コイル電流140mA

コイル抵抗86Ω/相

本来なら、12Vが必要なのですが、今回は、PICの電圧(+5V)をそのまま使ってみました。

動作原理

今回は、正転と逆転を360°繰り返すだけのものです。 TS3103N124では、正転と逆転に対して各々200パルス加えるだけの単純なものです。

回路図

ソースコード

//********************************************************************** /* ＜ステッピングモーター制御＞ TS3103N124 白： 電源（９～１５V） 緑： X1：PORTB.F2 0 1 1 0 赤： Y1：PORTB.F4 0 0 1 1 黄： X2：PORTB.F5 1 0 0 1 青： Y2：PORTB.F3 1 1 0 0 */ //********************************************************************** void interrupt() { if (INTCON.T0IF == 1) { INTCON.T0IF = 0; } if (PIR1.TMR1IF == 1) { PIR1.TMR1IF = 0; } if (INTCON.INTF == 1) { INTCON.INTF = 0; PORTB.F1 = ~PORTB.F1; } } //********************************************************************** void Pwm_Change_DutyEx(unsigned int duty_ratio) { CCPR1L = duty_ratio >> 2; CCP1CON.F6 = duty_ratio & 0b00000001; CCP1CON.F7 = (duty_ratio & 0b00000010) >> 1; } //********************************************************************** void main() { unsigned int ad1, cnt; unsigned char table[] = { 0b00101000, 0b00001100, 0b00010100, 0b00110000 }; unsigned int i, j; // CMCON = 0b00000111; // コンパレータは使用しない。 ANSEL = 0b00000010; // AN1を使用する。 TRISA = 0b11111111; // ポートAを設定する。 TRISB = 0b00000001; // ポートBを設定する。 OSCCON = 0b01110000; // クッロクを8Mhzに設定する。 OPTION_REG = 0b00000111; // ポートBをプルアップする。Timer0のプリスケーラは1/256に設定する。 T1CON = 0b00110001; // Timer1のプリスケーラは1/8に設定する。 OPTION_REG.INTEDG = 1; // INTピン（PORTB.F0）の立ち上がりエッジで割り込みをかける。 INTCON.GIE = 0; // 割り込みを無効にする。 INTCON.PEIE = 1; // Peripheral Interrupt Enable INTCON.TMR0IE = 1; // TMR0 Overflow Interrupt Enable INTCON.TMR0IF = 0; // TMR0 Overflow Interrupt Flag INTCON.INTE = 1; // RB0/INT External Interrupt Enable PIE1.TMR1IE = 1; // TMR1 Overflow Interrupt Enable PIR1.TMR1IF = 0; // TMR1 Overflow Interrupt Flag // Pwm_Init(3000); // 3Khz Pwm_Change_DutyEx(1024 / 2); // // INTCON.GIE = 1; // これ以降の処理で割り込みを許可する。 // while (1) { for (i = 0; i < 50; i++) { // 正転 for (j = 0; j < 4; j++) { PORTB = table[j]; Delay_ms(50); } } for (i = 0; i < 50; i++) { // 逆転 for (j = 0; j < 4; j++) { PORTB = table[3 - j]; Delay_ms(50); } } } } //**********************************************************************

動作確認

PICとFETと抵抗が少々のとても簡単な構成です。

ステッピングモーターを接続してみました。

ステッピングモーターの電源は、PICに供給している+5Vをそのまま使用しました。 赤色のミノムシクリップがステッピングモーターの電源です。本来は、ここに+12Vを加えます。

これでも正常に動作するものですね。 将来的にはこれでバリコンやボリュームを廻すのも一興かなと考えております。 オートアンテナチューナとか…

このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。詳細 This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.Details