2013/12/11

今日の活動報告

Kです。今日は、いろいろテストしてみました。

 1. 手持ちのフォトカプラTLP521の周波数特性を実測。5kHzくらいから使い物にならなかった。回路を工夫すれば解消されると思われる。
2. 先輩の作ったモータードライバーの解析。Hブリッジの電源部分をFETでPWM駆動していて、その部分にふぉとかぷらが1つ、またゲートにフォトカプラ2つが使われていた。PWMの入力部分と制御しているマイコンは同電位だった。
3. 同調回路の実験。手持ちのマイクロインダクターで同調回路を作った。555で矩形波を作って同調させたところ、15kHz (1mH, 1μF)では同調された。ただし、500Hzではできなかった。
4. ステッピングモーターを2相励磁式で動かしてみました。PICから4ポートで制御します。各端子を2SC1825(小信号用だけど使ってしまった)
のベースに1kΩを介して接続。エミッタはGNDにして、コレクタとステッピングモーターのφ1, 2, _1, _2と接続。φ1, φ2, φ_1, φ_2の順番で動かす1相励磁式及びφ1φ2, φ2φ_1, φ_1φ_2, φ_2φ1と動かす2相励磁式を試した。以下ソースだがただタイマで回しているだけ。

初めPR2 = 128でやってみたら、1.35Hzだったので、PR2 * 1.35して172にしたところ1Hz=60rpmで回転するようになった。実験したところPR2 = 64では回転できなかった。
トランジスタに小信号用を使っていたり、電源はMAX1Aのレギュレータだったりとひどいので実用を考えると改良が必要。オシロスコープでトランジスタのベースを調べると、-26Vくらいの瞬間的な電圧がかかっていた。(コイルだからな……)当然、逆起電力を短絡するためのダイオードで除去できた。

#include <xc.h>

#define _XTAL_FREQ 16000000

#pragma config WDTE = OFF
#pragma config FOSC = 4
#pragma config MCLRE = 1
#pragma config LVP = OFF
#pragma config PLLEN = OFF

void main(void){
    OSCCON = 0b01101000;

    PORTA = 0x00;
    LATA = 0x00;
    TRISA = 0b00000000;
    ANSELA = 0b00000000;

    PORTB = 0x00;
    LATB = 0x00;
    TRISB = 0b00000000;
    ANSELB = 0b00000000;

    T2CON = 0b00000110;
    PR2 = 172;
    TMR2IE = 1;
   
    PEIE = 1;
    GIE = 1;
   
    while(1){
        __delay_ms(1000);
        LATA7 ^= 1;
    }
}

void interrupt INTERRUPT(){
    static char n1 = 0, n2 = 1, bn1, bn2;

    if(TMR2IF){
        LATA &= ~(0x01 << bn1); // bn1ビット目をクリア
        LATA &= ~(0x01 << bn2); // bn2ビット目をクリア
        LATA |= 0x01 << n1; // n1ビット目をセット
        LATA |= 0x01 << n2; // n2ビット目をセット
        bn1 = n1;
        bn2 = n2;
        n1++;
        n2++;
        if(n1 >= 4) {
            n1 = 0;
        }
        if(n2 >= 4) {
            n2 = 0;
        }
        TMR2IF = 0;
    }
}

5. 初代ポケモンの「じてんしゃ」の曲が完成した。PICで作った矩形波によって再生される。

0 件のコメント:

コメントを投稿