【基礎電子工学ⅡENG】030-3:マイコン制御Ⅱ[ステッピングモーターの駆動/ステッピングモーター・角度を指定した回転/PIC16F84A/C言語プログラミング]

Поділитися
Вставка
  • Опубліковано 12 січ 2025
  • 【ステッピングモーター技術資料】
    オリエンタルモーター(株):
    www.orientalmo...
    --------------------------------------------------------------------------------------------------------------------
    *プログラムリストは、下記にあります↓
    #C言語マイコン制御#ステッピングモーター
    【学習内容】
    1:ステッピングモーターの駆動1
    2:ステッピングモーターの駆動2
    -----------------------------------------------------------------------------------
    <プログラムリスト>(MPLABX Ver6.2)
    コピー&ペーストでお使い下さい。
    *”TABキー”でスペースの間隔の体裁を整えて下さい。
    (プログラムの記述画面に”全角”のスペースが
     含まれていると、ビルドに失敗します。)
    -----------------------------------------------------------------------------------
    [SW2=ON → ステッピングモーター右90°→左180°→右90°]
    -----------------------------------------------------------------------------------
    //**の部分の<,>を半角文字に書き換えて下さい。
    //PIC16F84A
    #include "pic.h"
    #pragma config FOSC=HS, WDTE=OFF, PWRTE=ON, CP=OFF
    #define _XTAL_FREQ 10000000
    volatile int exc;
    void drive_R(void)
    {
    PORTB = exc;
    exc = exc >> 1; //**
    __delay_ms(10);
    if(exc == 0x08 ) exc = 0x80;
    }
    void drive_L(void)
    {
    PORTB = exc;
    exc = exc << 1; //**
    __delay_ms(10);
    if(exc == 0x100 ) exc = 0x10;
    }
    //メイン関数
    void main (void)
    {
    TRISB = 0x00;
    TRISA = 0b00100;
    int i;
    exc = 0x80;
    PORTB = exc;
    while(1)
    {
    do{ ; }while(RA2 == 0); //SW2 = ON?
    for(i = 0 ;i < 50 ; i++ ) drive_R(); //**
    __delay_ms(500);
    for(i = 0 ;i < 100 ; i++ ) drive_L(); //**
    __delay_ms(500);
    for(i = 0 ;i < 50 ; i++ ) drive_R(); //**
    }
    }

КОМЕНТАРІ •